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

   =+=:赋值