SHELL脚本思维导图
变量
内置变量
HOME:当前用户主目录
LOGNAME:当前用户登录名
LANG:LANG语言相关环境变量
PWD:当前目录
特殊符号
*:代表零个或多个任意字符
?:只代表一个任意的字符
#:注释符号
\:拖尾字符
|:管道符
$:变量前面的标识符
;:运行多个命令
~:用户的家目录
&:后台执行
> >>:重定向
^#:以#开头的行
^$:空行
[]:字符组合,代表中间字符中的任意一个
命令
cut
分隔字符
-d:后面指定分隔符,用单引号引起来
-f:指定第几段
-c:后面只有一个数字表示截取第几个字符,数字区域代表几到几
sort
排序
-t:分隔符
-n:使用纯数字排序
-r:反向排序
-u:去重复
uniq
去重复的行
-c:统计重复的行数,并把行数写到前面(结合sort使用)
tr
替换字符
tr '[a-z]' '[A-Z]':把小写字符替换为大写
-d:删除某个字符
-s:把重复的字符去掉
split
切割文档
-b:根据大小来切割,单位为byte
-l:根据行数来分割
连接符
;:不管前面是否成功都会依次执行后面的语句
&&:只有前面的语句执行成功后才会执行后面的语句,否则后面的不执行
||:第一条语句成功执行后后面的不执行,否则才会去执行后面的语句
四剑客
find
-name:文件名字
-type
b:块设备
d:目录
c:字符设备
p:管道
l:符号链接
f:普通文件
-size:长度
-perm:执行权限
-user:文件属组
-group:按组查找
-mtime
+n:n天以前
-n:n天以内
-atime:文件访问时间
-ctime:按文件创建时间
-mmin:按文件更改分钟时间
-amin:按文件更访问分钟时间
-cmin:按文件创建分钟时间
-maxdepth:目录级别深度
sed
查找替换
-e:可以实现同时进行多个任务
-n:打印符合规则的行
grep
egrep
扩展grep,grep-E
.:标示任意一个字符
+:标示1个或多个+前面的字符
?:标示0各或1个?前面的字符
-c:打印符合要求的行
-n:在输出符号要求的行的同时连同行号一起输出
-v:打印不f符合要求的行
-A:打印符号要求的行及下面的行数
-B:打印符合要求的行以及上面的行数
-C:打印符合要求的行以及上下各行数
--color:把匹配的关键词用红色标示
-r:会把目录下面所有的文件全部遍历
awk
内置变量
FS:分隔符,默认是空格
OFS:输出分隔符
NR:当前行数,从1开始
$0:当前记录
$1~$n:当前记录第n个字段(列)
NF:当前记录字段个数
内置函数
自由主题
自由主题
自由主题
自由主题
自由主题
操作符、运算符、判断符
++--:增加与减少
^**:指数
&&:逻辑and
||:逻辑or
=+=:赋值