0404 第十次课:shell基础(下)

原创
2019/04/07 21:55
阅读数 17

一、shell特殊符号

  • shell中的一些特殊符号:

    *:表示任意个任意字符

    ?:表示任意单个字符

    #:表示注释字符

    \ :表示脱义字符

    |:表示管道符

二、cut命令

  • cut命令是用来分割

    用法: cut -d 指定分隔符 -f 指定段号 -c 指定第几个字符

  • 示例:

    1、 以":"分割,截取passwd文件的第一段

    cat /etc/passwd |cut -d ":" -f 1

    2、截取pass文件第一行

三、sort命令

  • sort命令是用来进行排序

    用法:sort -n 以数字进行排序 -r 反序 ,-t 分隔符(一般不使用)

  • 注意点:

    sort默认的排序是按ascii码进行排序

    sort一般和uniq结合起来使用

    如何按照数字排序那么特殊符号和字母大小默认认为是0

  • 示例:

    1、不加参数,默认是ascii码进行排序

    2、以数字进行排序,字母和特殊符号会被认为是0,所以字母和特殊符号都在数字之上

    3、反序

四、wc命令

  • wc命令是用来统计

    用法:wc -l 统计行数 -m统计字符数 -w 统计词数

    示例:

    1、统计行数

    2、统计字符数

    3、统计词数

五、uniq命令

  • uniq命令是用来去重的,一般都是结合sort来进行使用。

    用法:uniq -c 统计重复行数

  • 示例:

    1、去重

    2、统计重复行数

六、tee_tr_split命令

  • tee命令

    tee命令和输出重定向(>)类似,不同的是tee会把重定向的内容打印到屏幕。tee也支持追加,加个-a参数即可。

    示例:

  • tr命令

    tr命令用于替换字符

    示例:

    1、替换字母

    2、替换所有的字母

  • split命令

    split命令用于切割,可以把一个大文件切割为小文件。

    用法:split -b 按照大小进行切割,默认单位为字节。 -l 指定行数进行切割

  • 示例

    首先生成一个大一点的文件

    find /etc -name "*.cnf" -exec cat {} >> 01.txt \;

    1、按照100k 大小进行分割,如果不指定名称系统会默认生成文件名。

    split -b 100k 01.txt

    2、指定文件名

    split -b 100k 01.txt wxy

    3、指定行数分割

    split -l 10000 01.txt

七、shell特殊符号下

  • $:变量前缀

  • !$:正则中表示行尾

  • ; :多条命令写到一行 用";"分割

    如下:同时执行ll和统计命令

  • ~:用户家目录,正则中表示匹配符

  • &:放在命令后门表示后台执行

  • ">":正确重定向

  • ">>":追加重定向

  • 2> :错误重定向

  • 2>> :错误追加重定向

  • &> : 正确错误同时重定向

  • []:指定字符中的一个,如[0-9],[a-zA-z]

  • || && 用在命令之间。||表示如果前面命令执行成功则不会执行后面的,&&表示前面的命令执行成功才会执行后面的命令

    示例:

    || 前面ll命令执行成功后,后面wc命令则不会执行

    判断一个目录是否存在,如果不存在则创建

    [ -d wxy ] || mkdir wxy

    -d 是判断一个目录是否存在

    改为&&就会报目录已存在

八、扩展内容

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部