shell
shell : 完成一些复杂的需求(靠linux命令解决不了),完成一些重复的操作。服务器巡检。。。。。写shell脚本,zabbix
shell: 脚本从上往下依次运行,
> 正确重定向覆盖
>> 正确重定向追加
2> 错误重定向覆盖
2>> 错误重定向追加
&> 混合重定向覆盖
&>> 混合重定向追加
$0
当前脚本的文件名
$n
传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
$#
传递给脚本或函数的参数个数。
$*
传递给脚本或函数的所有参数。
$@
传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
$?
上个命令的退出状态,或函数的返回值。
$$
当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
变量名 = 变量值
name = dgf
如果想要查看name的值:echo $name
双引号:弱引用,就是会将变量名所对应的值打印
单引号:强引号,单引号中的内容是什么,就打印什么
三个引号:批量写入文件内容。
cat <
read -p "输入名字" name 交互式输出内容
shell正表达式
sort 文件名 给文档内容排序
-
-b 忽略每行前面开始出的空格字符。
-
-c 检查文件是否已经按照顺序排序。
-
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-
-f 排序时,将小写字母视为大写字母。
-
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-
-m 将几个排序好的文件进行合并。
-
-M 将前面3个字母依照月份的缩写进行排序。
-
-n 依照数值的大小排序。
-
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-
-o<输出文件> 将排序后的结果存入指定的文件。
-
-r 以相反的顺序来排序。
-
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
-
--help 显示帮助。
-
--version 显示版本信息。
-
[-k field1[,field2]] 按指定的列进行排序。
uniq 可检查文本文件中重复出现的行列
-
-c或--count 在每列旁边显示该行重复出现的次数。
-
-d或--repeated 仅显示重复出现的行列。
-
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-
-u或--unique 仅显示出一次的行列。00
-
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
-
--help 显示帮助。
-
--version 显示版本信息。
-
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
-
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一
-
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-
-c :以字符为单位进行分割。
-
-d :自定义分隔符,默认为制表符。
-
-f :与-d一起使用,指定显示哪个区域。
-
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除
| ^ | 代表以谁开头 ^dgf |
| $ | 代表以谁开头 dgf$ |
| . | 代表任意一个单个字符 d. f |
| * | 重复前面的字符0次到多次 |
| .* | 所有字符串(任意长度、任意字符) |
| 转义符 . | |
| [n,] | 匹配前面的字符出现n次 gtep "do[3]g" hehe |
| [。n] | 匹配前面的字符最多出现n次 |
| [n,m] | 匹配前边的字符最少n次,最多m次 |
| 【】 | 匹配包含在其中的任意一个字符 |
| 【^】 | 不匹配包含在其中的任意一个字符 |
| + | 前面的字符最少出现1次 |
| ? | 前面的字符最多出现1次 |
| () | 匹配包含括号中的内容 |



