您的位置:首页 > 运维架构 > Shell

Shell 脚本学习笔记-常用命令

2015-09-13 21:27 756 查看

Shell 脚本学习笔记-常用命令

输入输出

算数运算

文本处理

awk

主要用于文本的分割和处理

格式:

awk ‘{pattern+action}’ file/input stream

eg: awk ‘{print $2}’

awk 默认使用“空格”作为分隔符,使用参数 -F 可以自定义分隔符

详见:linux awk命令详解

tr

命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符

来自: http://man.linuxde.net/tr

格式:

tr(选项)(参数)

eg:

echo hehe | tr -d e
hh

echo hehe | e a
haha


详见:tr 命令

其他工具

xargs

ls -a | grep name.extension。管道命令极大的方便了脚本使用。但是并不是所有的工具都支持管道命令比如“ls”命令。而xargs就可以打破这种限制。

格式:

commend1 | xargs [option] commend2

eg:

pwd | xargs ls

常用参数

参数含义示例释义
-i可以将左侧输出的参数逐条作为右侧的参数。位置由“{}”指定ls | xargs -i cp {} {}.bak将当前路径下的可见文件赋值一份,并且加上“.bak”后缀
-0(零)当sdtin含有特殊字元时候,将其当成一般字符,如/’空格等
(没有参数)将左侧输出作为右侧命令的参数pwd | xargs echo “haha”输出为:haha “路径”

环境设置

set

set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。使用set更改shell特性时,符号”+”和”-“的作用分别是打开和关闭指定的模式。 set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以“变量名=值”的格式进行定义即可。

语法

set(选项)(参数)

参数

参数含义
-a标示已修改的变量,以供输出至环境变量。
-b使被中止的后台程序立刻回报执行状态。
-C转向所产生的文件无法覆盖已存在的文件。
-dShell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
-e若指令传回值不等于0,则立即退出shell。
-f取消使用通配符。
-h自动记录函数的所在位置。
-HShell:可利用”!”加<指令编号>的方式来执行history中记录的指令。
-k指令所给的参数都会被视为此指令的环境变量。
-l记录for循环的变量名称。
-m使用监视模式。
-n只读取指令,而不实际执行。
-p启动优先顺序模式。
-P启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
-t执行完随后的指令,即退出shell。
-u当执行时使用到未定义过的变量,则显示错误信息。
-v显示shell所读取的输入值。
-x执行指令后,会先显示该指令及所下的参数
example:

使用declare命令定义一个新的环境变量”mylove”,并且将其值设置为”Visual C++”,输入如下命令:

declare mylove='Visual C++' #定义新环境变量


再使用set命令将新定义的变量输出为环境变量,输入如下命令:

set -a mylove #设置为环境变量


执行该命令后,将会新添加对应的环境变量。

用户可以使用env命令和grep命令分别显示和搜索环境变量”mylove”,输入命令如下:

env | grep mylove #显示环境变量值


此时,该命令执行后,将输出查询到的环境变量值。

ditto (Mac OS)

详见Ditto玩转 Mac 命令行

更多文章

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 脚本