一、管道命令
1.概念
- 管道命令是以|符号连接的命令使用到的命令
- 格式:cmd1 | cmd2 | cmd3
2.注意事项
- 管道命令只能处理前面传来为标准输出的信息,对于标准错误输出和其他类型的信息不起作用
- |号前必须是可以产生标准输出数据的命令才行,|号后必须是可以接受标准输出的命令才行(less、more、head等都是)
- 标准错误输出如何可以被管道命令使用:使用2>&1转换,让2>变为1>
二、选取命令:cut
1.功能
- 先将数据进行分割,截取自己想要的数据
2.注意事项
- 选取信息只能一行一行的取,不能整篇的截取
- 常用在对一行数据进行分解的时候
3.格式
- cut -d '分隔符' -f 选取第几段
- cut -c 区间1-区间2
相关参数与选项
- -d:后面接分割字符(分隔符是截取的数据中存在的),用于把数据分离。与if配合使用
- -f:后面接数字。意思为获取-d参数分离出的数据的第几段.如果想要截取多段,每段数字用,隔开
- -c:后面接一个字符区间,区间2可省略(省略后截取到末尾)
4.演示案例
①截取PATH变量内容
- 以':'位分隔符,截取PATH变量中的第2部分
- 如果想要截取PATH变量中的第2,3段:-f 2,3就行了
②截取变量内容
- 去除前面的declare -x
- 如果想要截取12-20之间的字符,-c 12-20就可以了
③截取用户名
- 以空格为分隔符,得到第一部分
三、选取命令:grep
1.功能
- cut是对一行进行切割,然后去除其中一部分。
- grep是对一行进行分析,若有我们想要的,就将该行取出来。也可以得到去除我们想要的内容的其它内容
2.命令格式
- grep [参数] [--color=auto] '查找字符' 文件名
相关参数与选项
- -a:将二进制文件以文本文件的形式查看
- -c:计算出找到的'查找字符'的个数,总共有多少行(是行数,不是个数)
- -i:忽略文件中的大小写
- -n:顺便输出行号
- -v:反向选择,即输出没有‘查找字符’的那一行
- --color=auto:可以将找到的关键字部分加上颜色显示,这是默认的参数
- -A:后面接数字。代表除了有查找字符的那一行外,前面多少行也显示出来(after)
- -B:后面接数字。代表除了有查找字符的那一行外,后面多少行也显示出来(before)
3.注意事项
- 在正则表达式中用到很多
- 查找字符不是全字匹配
4.演示案例
- 查找含有'boot'的行
- 取出不包含'boot'的行
- 取出'boot'的行并分割取出第一部分
四、排序命令:sort
1.功能
- 对数据进行排序,以行为单位
2.命令格式
- sort [参数] [文件/标准输入]
相关参数与选项
- -f:忽略大小写的差异
- -b:忽略最前面的空格字符
- -M:以月份的名字来排序。例如:JAN、DEC等排序方法
- -n:使用纯数字进行排序(因为sort默认以文字形式排序)
- -r:反向排序
- -u:就是uniq,相同的数据中,只列出一行
- -t:后面跟分割字符,默认使用[Tab]来分割
- -k:-t分割之后,选取第几部分来进行排序
3.注意事项
- sort可以根据不同的数据形式来排序
- 排序的字符与语系有关,因此排序前建议使用LANG=C来让语系统一
4.演示案例
- /etc/passwd记录了个人账号信息。默认以开头字母排序
- /etc/passwd内容是以:隔开的,我们以:分割每一行,然后取第三段进行排序
五、排序命令:uniq
1.功能
- 以整行单位,先进行排序,排序之后,重复的行只显示行
- 可以配合last命令查看登陆你记住的是哪些用户,登陆了多少次等...
2.命令格式
- uniq [参数]
相关参数
- -i:排序忽略大小写
- -c:显示次数。重复的显示总共有多少次(是行数不是个数)
3.注意事项
4.演示案例
- 使用last将账号信息列出来,然后cut截取第一列并排序,每个账号只显示一种
- 承上,我们想知道每个账号有几行(出现了几次),使用-c参数