一、管道命令
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:可以将找到的关键字部分加上颜色显示,默认的参数
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参数
六、显示行数、字数、字符数命令:wc
1.功能
可以显示文件的行数、字数、字符数
2.命令格式
wc [参数]
相关参数
-l:仅列出行数
-w:仅列出多少字数
-m:仅列出多少字符
3.注意事项
不加任何参数时,行数、字数、字符数都列出来。顺序依次为:行数、字数、字符数
4.演示案例
列出行数、字数、字符数
列出行数、字数
last中有很多与账户无关的行。我们指向要有账号信息的那几行,并列出有多少行