美文网首页
命令执行顺序 && 管道

命令执行顺序 && 管道

作者: inverseli | 来源:发表于2018-09-28 13:17 被阅读0次

    命令的执行顺序

    linux命令的执行一般是,在终端中输入一行命令,执行完成,再继续输入下一命令。

    顺序执行多条命令

    简单顺序命令加 ; 完成

    # some-tool代指安装的软件
    $ sudo apt-get update;sudo apt-get install some-tool;some-tool
    
    选择性的命令

    顺序执行的命令有个问题,就是说多个顺序执行的命令可能存在依赖性,后一个命令需要前一个命令的结果,或者说是前一个命令正确无误的执行之后,后一个命令才能执行。

    $ which cowsay>/var/null && cowsay -f head-in ohch~
    

    && 简单进行选择性的执行命令,如果前面命令的结果返回0就执行后边的命令否则不执行

    image
    上一个命令的状态码可以用$?进行查看
    图片.png
    ||&&起着相反的效果
    wm.png
    $ which cowsay>/dev/null && echo "exist" || echo "not exist
    

    or

    $ which cowsay>/dev/null || echo "exist" && echo "not exist"
    

    第二种会出现一个问题,就是 || 会执行后边的echo "exist",这步没有问题。但是往下执行的话会出现 $?=0和$?!=0都可以的两种情况,因为&&既可以认为上边的命令返回的是$?=0,也可以认为返回的是$?!=0,有这种歧义会出现。

    管道

    管道通常指的是进程间的管道通信,前一个进程的输出直接作为下一个进程的输入。管道分为匿名管道和具名管道,匿名管道在命令行中用 | 表示,管道没有名称。

    # 查看/etc目录有哪些文件和目录
    $ ls -al /etc
    # 屏幕不能显示完全,这时候可以用滚动条或快捷键滚动窗口来查看
    # 使用管道ls的输出作为下一个命令(less)的输入,一行一行的看
    $ ls -al /etc | less
    
    cut命令

    打印每一行的某个字段

    # 打印目录下的以":"为分隔符的第一个字段和第六个字段
    $ cut /etc/passwd -d ':' -f 1,6
    # 前5个
    $ cut /etc/passwd -c -5
    # 前5个之后的(包含第5个)
    $ cut /etc/passwd -c 5-
    # 第5个
    $ cut /etc/passwd -c 5
    # 2~5包含第5个
    $ cut /etc/passwd -c 2-5
    
    grep命令
    grep [命令选项]... 匹配的表达式 [文件]...
    grep -rnI "shiyanlou" ~
    # -r 递归搜索子目录的文件,-n表示打印匹配项行号,-I表示忽略二进制文件
    
    # 查看环境变量中以"yanlou"结尾的字符串
    $ export | grep ".*shiyanlou$"
    
    wc命令
    # 输出文件统计信息
    $ wc /etc/passwd
    # 行数
    $ wc -l /etc/passwd
    # 单词数
    $ wc -w /etc/passwd
    # 字节数
    $ wc -c /etc/passwd
    # 字符数
    $ wc -m /etc/passwd
    # 最长行字节数
    $ wc -L /etc/passws
    
    sort排序命令
    # 默认字典排序
    $ cat /etc/passwd | sort
    # 反转排序
    $ cat /etc/passwd | sort -r
    # 按特定字段排序
    $ cat /etc/passws | sort -t ':' -k 3
    
    uniq去重复命令

    相关文章

      网友评论

          本文标题:命令执行顺序 && 管道

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