一、管道命令

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变量内容

管道grep 前缀匹配 linux管道grep命令_数据

以':'位分隔符,截取PATH变量中的第2部分

管道grep 前缀匹配 linux管道grep命令_查找字符_02

如果想要截取PATH变量中的第2,3段:-f  2,3就行了

②截取变量内容

管道grep 前缀匹配 linux管道grep命令_分隔符_03

去除前面的declare -x

管道grep 前缀匹配 linux管道grep命令_查找字符_04

如果想要截取12-20之间的字符,-c 12-20就可以了

③截取用户名

管道grep 前缀匹配 linux管道grep命令_linux管道命令和grep命令_05

以空格为分隔符,得到第一部分

管道grep 前缀匹配 linux管道grep命令_数据_06

三、选取命令:grep

1.功能

cut是对一行进行切割,然后去除其中一部分。

grep是对一行进行分析,若有我们想要的,就将该行取出来。也可以得到去除我们想要的内容的其它内容

2.命令格式

grep  [参数]  [--color=auto]  '查找字符'  文件名

相关参数与选项

-a:将二进制文件以文本文件的形式查看

-c:计算出找到的'查找字符'的个数,总共有多少行(是行数,不是个数)

-i:忽略文件中的大小写

-n:顺便输出行号

-v:反向选择,即输出没有‘查找字符’的那一行

--color=auto:可以将找到的关键字部分加上颜色显示,默认的参数

3.注意事项

在正则表达式中用到很多

查找字符不是全字匹配

4.演示案例

查找含有'boot'的行

管道grep 前缀匹配 linux管道grep命令_linux管道命令和grep命令_07

取出不包含'boot'的行

管道grep 前缀匹配 linux管道grep命令_管道grep 前缀匹配_08

取出'boot'的行并分割取出第一部分

管道grep 前缀匹配 linux管道grep命令_数据_09

四、排序命令: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记录了个人账号信息。默认以开头字母排序

管道grep 前缀匹配 linux管道grep命令_管道grep 前缀匹配_10

/etc/passwd内容是以:隔开的,我们以:分割每一行,然后取第三段进行排序

管道grep 前缀匹配 linux管道grep命令_管道grep 前缀匹配_11

五、排序命令:uniq

1.功能

以整行单位,先进行排序,排序之后,重复的行只显示行

可以配合last命令查看登陆你记住的是哪些用户,登陆了多少次等...

2.命令格式

uniq  [参数]

相关参数

-i:排序忽略大小写

-c:显示次数。重复的显示总共有多少次(是行数不是个数)

3.注意事项

4.演示案例

使用last将账号信息列出来,然后cut截取第一列并排序,每个账号只显示一种

管道grep 前缀匹配 linux管道grep命令_管道grep 前缀匹配_12

承上,我们想知道每个账号有几行(出现了几次),使用-c参数

管道grep 前缀匹配 linux管道grep命令_linux管道命令和grep命令_13

六、显示行数、字数、字符数命令:wc

1.功能

可以显示文件的行数、字数、字符数

2.命令格式

wc  [参数]

相关参数

-l:仅列出行数

-w:仅列出多少字数

-m:仅列出多少字符

3.注意事项

不加任何参数时,行数、字数、字符数都列出来。顺序依次为:行数、字数、字符数

4.演示案例

列出行数、字数、字符数

管道grep 前缀匹配 linux管道grep命令_分隔符_14

列出行数、字数

管道grep 前缀匹配 linux管道grep命令_linux管道命令和grep命令_15

last中有很多与账户无关的行。我们指向要有账号信息的那几行,并列出有多少行

管道grep 前缀匹配 linux管道grep命令_数据_16

管道grep 前缀匹配 linux管道grep命令_linux管道命令和grep命令_17