which
javascript
&&
就是用来实现选择性执行的,它表示若是前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,不然不执行java
在这里就是与
&&
相反的控制效果,当上一条命令执行结果为≠0($?≠0)时则执行它后面的命令linux
which cowsay>/dev/null && cowsay -f head-in ohch~
ruby
which cowsay>/dev/null && echo "exist" || echo "not exist"
bash
管道是什么,管道是一种通讯机制,一般用于进程间的通讯(也可经过socket进行网络通讯),它表现出来的形式就是将前面每个进程的输出(stdout)直接做为下一个进程的输入(stdin)。网络
管道又分为匿名管道和具名管道,咱们在使用一些过滤程序时常常会用到的就是匿名管道,在命令行中由|
分隔符表示,|
在前面的内容中咱们已经屡次使用到了。具名管道简单的说就是有名字的管道,一般只会在源程序中用到具名管道。socket
-d :后面接分隔字符。与 -f 一块儿使用; -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思; -c :以字符 (characters) 的单位取出固定字符区间;
$ cut /etc/passwd -d ':' -f 1,6 (打印/etc/passwd
文件中以:
为分隔符的第1个字段和第6个字段分别表示用户名和其家目录)/etc/passwd:# 前五个(包含第五个) $ cut /etc/passwd -c -5 # 前五个以后的(包含第五个) $ cut /etc/passwd -c 5- # 第五个 $ cut /etc/passwd -c 5 # 2到5之间的(包含第五个) $ cut /etc/passwd -c 2-5
-r
参数表示递归搜索子目录中的文件工具
-n
表示打印匹配项行号ui
-I
表示忽略二进制文件spa
用于统计并输出一个文件中行、单词和字节的数目
# 行数 $ wc -l /etc/passwd # 单词数 $ wc -w /etc/passwd # 字节数 $ wc -c /etc/passwd # 字符数 $ wc -m /etc/passwd # 最长行字节数 $ wc -L /etc/passwd
默认为字典排序:
$ cat /etc/passswd | sort
反转排序:
$ cat /etc/passwd | sort -r
按特定字段排序:
面的参数用于指定字段的分隔符,这里是以":"做为分隔符;用于指定对哪个字段进行排序。这里文件的第三个字段为数字,默认状况下是以字典序排序的,若是要按照数字排序就要加上参数$ cat /etc/passwd | sort -t':' -k 3 -t-k 字段号/etc/passwd-n
uniq
命令能够用于过滤或者输出重复行。
uniq
命令只能去连续重复的行,不是全文去重
输出重复过的行(重复的只输出一个)及重复次数 $ history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq -dc -c统计次数 -d显示重复出现的行 # 输出全部重复的行 $ history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq -D