美文网首页
shell常用命令符总结

shell常用命令符总结

作者: Brucezhang1 | 来源:发表于2016-07-30 10:18 被阅读60次

    1:记录历史命令

    命令 说明 备注
    !! 执行上一条命令
    !n 执行历史中的第n调命令
    ! 执行命令历史中最近一次以字符串开头的命令 如 !pw 可能会是执行pwd

    2:指令个文件不全命令

    单个tab补全,双击显示所有重复开头的文件

    3:别名

    命令 说明 备注
    alias 设置别名 alias up='cd ../'
    unalias 取消别名

    4:重定向

    命令 说明 备注
    > 输出重定向
    < 输入重定向
    2> 错误重定向
    >> 追加重定向
    > 2>&1 正确,错误混合追加
    &> 正确,错误合并追加— 同> 2>&1

    5:管道符 |

    1)前一个命令的输出作为第二个命令的输入 command1 | command2


    操作示例

    注:管道连接起来的命令实际上并不会一个一个的顺序执行,系统会同时运行这些命令,将他们连接起来,在第一个命令输出之后,输出会被立刻送往第二个命令

    6:特殊字符

    命令 说明 备注
    evn 查看系统变量
    set 查看系统和用户定义的变量
    export 变量的声明 在子shell中可以使用
    * 代表零个和多个任意字符 ls *.sh
    ? 仅代表一个任意字符
    # 注释说明
    #! 特殊的注释形式 告诉系统同一行上紧跟在她后面的那个参数是用来执行本文件的程序
    \ 脱意字符,将后面的特殊符号(例如”*” )还原为普通字符
    exit 确保程序能够返回一个有意义的退出码 exit n命令是脚本程序已退出码n结束运行,0表示成功
    file filename 查看文件类型

    6.1:exit

    确保程序能够返回一个有意义的退出码 系统提供了一些可参考状态码;如列表所示:

    状态吗 说明 备注
    0 命令成功结束
    1 通用未知错误
    2 吴用shell命令
    126 命令不可执行
    127 没有找到命令
    128 无效退出参数
    130 命令通过Ctrl+c结束
    255 退出状态码越界

    注:

    1. 在命令结束执行后,可以使用echo $?命令来查看命令结束的状态码 ,例如 ```
      zhangshuisheng:shell zhangshuisheng$ scdscs
      -bash: scdscs: command not found
      zhangshuisheng:shell zhangshuisheng$ echo $?
      127 (即:没有找到命令)
    2. 在脚本文件中,exit允许来改变脚本执退出的状态码
    
    
    
    ####6.2:cut 
    用来截取某一个字段 cut -d '分隔字符' [-cf] n 这里的n是数字
    
    参数|说明|备注
    ----|---|----
    -d |后面跟分隔字符,分隔字符要用单引号括起来|
    -c | 后面接的是第几个字符 |
    -f  | 后面接的是第几个区块 |
    
    #### 6.3:sort
    用来排序  sort [-t 分隔符] [-kn1,n2] [-nru] 这里的n1 < n2
    
    参数|说明|备注
    ----|---|----
    -t 分隔符 |作用跟cut的-d一个意思|
    -n | 使用纯数字排序 | 
    -r  | 反向排序 |
    -u | 去重复 |
    >注:-kn1,n2 :由n1区间排序到n2区间,可以只写-kn1即对n1字段排序
    >(1)如果sort不加任何选项,则从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
    >(2)-t 后面跟分隔符,-k后面跟数字,表示对第几个区域的字符串排序,-n 则表示使用纯数字排序
    
     ####6.4:wc
    用于统计文档的行数、字符数、词数,常用的选项为:
    
    参数|说明|备注
    ----|---|----
    -l |统计行数|
    -m |统计字符数|
    -w |统计词数|
    >注:如三个一起用显示顺序保持行,词,字
    

    zhangshengdeMBP:shellexercis Bruce$ wc -wlm 3.sh
    17 43 215 3.sh
    zhangshengdeMBP:shellexercis Bruce$ wc -mlw 3.sh
    17 43 215 3.sh

    
    ####6.5:uniq
    去重复的行,最常用的参数选项:-c 使用前提是先使用sort给内容先排序
    

    (1) sort number.txt |uniq
    111
    333
    444
    555
    666
    777
    888
    999
    (2)sort number.txt |uniq -c 去重并显示每一项的重复次数
    2 111
    2 333
    2 444
    2 555
    1 666
    1 777
    2 888
    1 999

    ####6.6:tee
    类似与重定向 “>”, 但是比重定向多了一个功能,在把文件写入后面所跟的文件中的同时,还显示在屏幕上。
    

    (1)echo "tee is a usable order" |tee tee.txt
    tee is a usable order

    ####6.7:split
    切割文档
    
    参数|说明|备注
    ----|---|----
    -b | 依据大小来分割文档,单位为byte| split -b 20 tee.txt
    -l | 依据行来分割文档 |split -l 1 number.txt
    
    ####6.8:awk
    处理文本文件语言
    
    参数|说明|备注
    ----|---|----
    -F fs or --field-separator fs|指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:|
    -v var=value or --asign var=value | 赋值一个用户定义变量|
    -f scripfile or --file script file | 从脚本文件中读取awk命令|

    相关文章

      网友评论

          本文标题:shell常用命令符总结

          本文链接:https://www.haomeiwen.com/subject/qybajttx.html