管道命令在Linux中十分有用,管道命令操作符是“|”,它能将经由前一个命令输出的标准输出,作为管道后一个命令的标准输入。
1、grep命令
grep是一个文本搜索工具,用于在文本或标准输入中查找指定的匹配,并输出到标准输出上。
一般格式:
grep [选项] 模式 [文件...]
常用选项:
-E, --extended-regexp :将查找模式解释成扩展的正则表达式。
-F, --fixed-strings :将查找模式解释成单纯的字符串。
-c, --count :只是输出文件中匹配的行的总数
-i, --ignore-case :忽略大小写。
-n, --line-number :输出时加上行号。
-r, --recursive :以递归方式查询目录下的所有子目录中的文件。
-v, --invert-match :只显示不包含匹配的行。
举例:
1)查找是否安装过httpd
rpm -qa | grep httpd
2)在hi.txt中查找字符串Hello
grep 'Hello' hi.txt
或
cat hi.txt | grep 'Hello'
2、cut命令
cut命令用于截取字符串,显示到标准输出上。
一般格式:
cut [选项]... [文件]...
常用选项:
-b, --bytes=LIST :以字节为单位。
-c, --characters=LIST :以字符为单位。
-d, --delimiter=DELIM :表示分隔符,默认情况下为TAB。
-f, --fields=LIST :以字段为单位。
截取范围:
N :只有第N项
N- :从第N项一直到行尾
N-M :从第N项到第M项(包括M)
-M :从一行的开始到第M项(包括M)
- :从一行的开始到结束的所有项
举例:
1)找出passwd中的所有用户名
cat /etc/passwd | cut -d ':' -f1
root
bin
daemon
adm
lp
...
smmsp
sshd
apache
rpc
pcap
nscd
rpm
named
或
cut -d ':' -f1 /etc/passwd 一样效果。
2)查看vps上有哪些IP ssh登陆失败,并计算次数
lastb | cut -c 23-38 | uniq -c
9 213.229.124.66
6 178.162.239.192
1 121.9.245.177
8 147.213.138.201
11 119.161.208.37
61 220.225.70.251
6 123.30.108.208
3 h-sys.biz
7 220.225.70.251
6 61.111.18.25
...