1、简单的顺序执行可使用 ; 实现
sudo apt-get update;sudo apt-get install some-tool;some-tool
# 让它自己运行
2、有选择的执行命令
-
&&用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果,返回结果为0表示命令执行成功,不为0表示命令执行失败)返回 0
则执行后面的,否则不执行 -
||在这里就是与&&相反的控制效果,当上一条命令执行结果为 ≠0($?≠0)时则执行它后面的命令
which cowsay>/dev/null && echo "exist" || echo "not exist
3、管道
管道是一种通信机制,通常用于进程间的通信(也可通过 socket 进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
ls -al /etc | less
#管道将前一个命令(ls)的输出作为下一个命令(less)的输入,
#然后就可以一行一行地看
- cut 命令 打印每一行的某一字段
语法: cut(选项)(参数)
cut(选项) | 参数 |
---|---|
-b | 仅显示行中指定范围的字节数 |
-c | 仅显示行中指定范围的字符 |
-d | 指定字段的分隔符,默认的字段分隔符为“TAB” |
-f | 显示指定字段的内容 |
# 前五个(包含第五个)
cut /etc/passwd -c -5
#使用-d指定字段分隔符,使用-f获取指定字段
cut /etc/passwd -d ':' -f 1,6
- grep 命令,在文本中或 stdin 中查找匹配字符串
默认格式:grep [命令选项]… 用于匹配的表达式 [文件]…
#搜索目录下所有包含"abc"的文本文件
grep -rnI "abc" ~
#
-r 参数表示递归搜索子目录中的文件,
-n表示打印匹配项行号,
-I表示忽略二进制文件
- wc命令 计数工具
输出行数、单词数、字节数、输入文本中最长一行的字节数
wc /etc/passwd
行数
wc -l /etc/passwd
单词数
wc -w /etc/passwd
字节数
wc -c /etc/passwd
字符数
wc -m /etc/passwd
最长行字节数
$ wc -L /etc/passwd
- sort排序命令
这个命令功能很简单就是将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等,默认按字典排序。
参数说明:
选项 | 说明 |
---|---|
-b | 忽略每行前面开始出的空格字符 |
-c | 检查文件是否已经按照顺序排序 |
-d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符 |
-f | 排序时,将小写字母视为大写字母 |
-i | 排序时,除了040至176之间的ASCII字符外,忽略其他的字符 |
-m | 将几个排序好的文件进行合并 |
-M | 将前面3个字母依照月份的缩写进行排序 |
-n | 依照数值的大小排序 |
-u | 意味着是唯一的(unique),输出的结果是去完重了的 |
-o | <输出文件> 将排序后的结果存入指定的文件 |
-r | 以相反的顺序来排序 |
默认按字典排序
cat /etc/passwd | sort
反转排序
cat /etc/passwd | sort -r
-t参数用于指定字段的分隔符,这里是以":"作为分隔符;-k 字段号用于指定对哪一个字段进行排序
/etc/passwd文件的第三个字段为数字,默认情况下是以字典序排序的,如果要按照数字排序就要加上-n参数
cat /etc/passwd | sort -t ':' -k 3 -n
-
uniq 去重命令
对文本操作时,它一般会和sort命令进行组合使用,因为uniq 不会检查重复的行,除非它们是相邻的行。如果您想先对输入排序,使用sort
uniq参数说明
参数 | 说明 |
---|---|
-c | 在每行前加上表示相应行目出现次数的前缀编号 |
-d | 只输出重复的行 |
-D | 只输出重复的行,不过有几行输出几行 |
-f | 忽略的段数,-f 1 忽略第一段 |
-i | 不区分大小写 |
-s | 和-f有点像,不过-s是忽略,后面多少个字符 -s 5就忽略后面5个字符 |
-u | 去除重复的后,全部显示出来,根mysql的distinct功能上有点像 |
history命令查看最近执行过的命令,过滤重复出现的行
history | cut -c 8- | cut -d ' ' -f 1 | uniq
uniq命令只能去连续重复的行,不是全文去重,要达到预期效果,先排序:
history | cut -c 8- | cut -d ' ' -f 1 | sort | uniq