zoukankan      html  css  js  c++  java
  • 命令执行顺序控制与管道

      顺序执行多条命令

     通常情况下我们每次只能在终端输入一条命令,按下回车执行,执行完成后,在输入第二条命令。

     $ sudo apt-get update;sudo apt-get install xx; xx  //按顺序一次性执行

      有选择的执行命令

     &&用来实现选择性执行的,表示若前面的命令执行结果(命令执行状态的结果)返回0则执行后面的,否则不执行,可以从$?环境变量中获取上一次命令的返回结果

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

     $ echo $?  //返回上一次命令的返回结果

     ||也用来实现选择性执行,若前面的执行命令不等于0,则执行他后面的命令。

     $ which cowsay>/dev/null || echo "cowsay has not been install"

     $ which cowasy>/dev/null && echo "exist" || echo "not exist"  //&&、||可以混合使用

      管道

     管道是一种通信机制,通常用于进程间的通信。表现的实行就是将前面的每一进程的输出直接作为下一个进程的输入。

     管道又分为匿名管道和具名管道。在过滤程序中经常使用的就是匿名管道。在命令行中由|分隔符表示。具名管道就是有名字的管道。

     $ ls -al /ect  //查看/etc下面有哪些文件和目录

     $ ls -al /etc | less //通过管道将其一个命令(ls)的输出作为下一个命令(less)的输入

      cut命令:打印每一行的某一字段

     $ cut /etc/passwd -d ':' -f 1,6  //为分隔符的第一个字段和第六个字段分别表示用户名和其目录

     $ cut /etc/passwd -c -5  #前五个

     $ cut /etc/passwd -c 5-  #前五个之后

     $ cut /etc/passwd -c 5  #第五个

     $ cut /ect/passwd -c 2-5  #2到5之间

      grep命令 在文本中或stdin中查找匹配字符串

     grep可以结合正则表达式实现很复杂却很高效的匹配和查找,grep命令的格式一般为 grep [命令选项]... 用于匹配的表达式 [文件]...

     $ grep -rnI "shiyanlou' #搜索/home/shiyanlou目录下所有包含shiyanlou的文本文件 -r表示递归搜索子目录中的文件,-n表示打印匹配项行号,-I表示忽略二进制文件。

     $ export | grep ".*yanlou$"  #以yanlou结尾的字符串  $表示一行的末尾

      ws命令,简单的技术工具

     ws命令用于统计并输出一个文件中行、单词和字节的数目

     $ wc /etc/passwd  #行。单词。字节的数目

       $ wc -l /ect/passwd #行数

     $ wc -w /ect/passwd #单词数

     $ wc -c /ect/passwd #字节数

     $ wc -m /ect/passwd # 字符数

     $ wc -L /etc/passwd #最长行的字节数

     $ ls -dl /etc/*/ | wc -l #统计/ect下面所有目录数

      sort排序命令

     sort的功能就是将输入按照一定方式排序,然后输出。它支持的排序有字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等。

     $ cat /etc/passwd | sort  #默认字典排序

     $ cat /etc/passwd | sort -r #反转排序

     $ cat /etc/passwd | sort -t':' -k 3  #按特定字段排序 -t用于指定字段的分隔符,-k 字段号用于指定对哪一个字段进行排序

     $ cat /etc/passwd | sort -t':' -k 3 -n  #按数字排序需加上-n

      uniq去重命令

     uniq可以用于过滤或者输出重复行,但只能去连续重复的行,不是全文去重。因此可以先进行排序,然后去重

     $ history | cut -c 8- | cut -d ' ' -f 1 |uniq  #查看最近执行过的命令

     $ history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq -dc #输出重复过的行及重复次数

     $ history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq -D #输出所重复的行 

     安装aview和imagemagick,然后可以使用asciiview命令图片。使用方法可以使用man命令查看。

  • 相关阅读:
    【刷题】BZOJ 4059 [Cerc2012]Non-boring sequences
    【刷题】BZOJ 3745 [Coci2015]Norma
    【刷题】BZOJ 2734 [HNOI2012]集合选数
    【刷题】BZOJ 2287 【POJ Challenge】消失之物
    【刷题】BZOJ 2151 种树
    【刷题】BZOJ 2134 单选错位
    【刷题】BZOJ 1924 [Sdoi2010]所驼门王的宝藏
    【刷题】BZOJ 1823 [JSOI2010]满汉全席
    【刷题】BZOJ 1124 [POI2008]枪战Maf
    编程之美 ---> 1.2中国象棋将帅问题
  • 原文地址:https://www.cnblogs.com/forerver-elf/p/4698977.html
Copyright © 2011-2022 走看看