1.文件或命令查找
which ls #查看ls命令的绝对路径
whereis ls #查看命令的路径,帮助手册等
whereis -b ls #仅查看命令所在的路径
type -a ls #查看命令的绝对路径
2.排序命令sort
#命令:sort
#选项:-r:倒叙 -n:按数字排序 -t:指定分隔符(默认空格) -k:指定第几列,指定几列几字符(指定1,1 3.1,3.3)
#编写一个txt文件然后排序
cat >>file.txt<<EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOF
sort -t ":" -k2 -nr file2.txt | head -3
#多行按先后顺序排序
wget http://fj.xuliangwei.com/public/ip.txt
sort -t "." -k3.1,3.3 -k4.1,4.3 -n ip.txt
#去重复命令uniq -c计数重复的并显示在行头
cat >>ip2.txt<<EOF
192.168.3.1
192.168.3.2
192.168.3.3
192.168.2.20
192.168.2.21
192.168.2.22
192.168.0.151
192.168.0.151
192.168.0.152
192.168.0.153
192.168.0.151
192.168.2.22
192.168.1.10
192.168.1.11
192.168.1.12
192.168.0.151
192.168.1.1
192.168.2.2
192.168.0.151
192.168.3.3
192.168.2.20
192.168.1.21
192.168.0.151
192.168.2.22
192.168.0.151
192.168.2.22
192.168.1.152
192.168.0.153
192.168.3.10
192.168.1.11
192.168.2.22
192.168.3.12
EOF
sort ip2.txt | uniq -c | sort -nr | head -3
3.命令cut;选项:-d:指定分隔符 -f:取第几列 -c按字符取(空格也算)
#产生一个文件
echo "Im oldxu, is QQ 552408925" > oldboy.txt
#方法一
cut -d " " -f 2,5 oldboy.txt
cut -d " " -f 2,5 oldboy.txt | sed 's#,##g'
4.命令:awk,选项:
#方法二
awk '{print $2,$5}' oldboy.txt
awk '{print $2,$5}' oldboy.txt | sed 's#,##g'
#方法三
awk -F "," '{print $1,$2}' oldboy.txt | awk '{print $2,$5}'
awk -F "[ ,]" '{print $2,$6}' oldboy.txt #一次匹配多个分隔符
#高级用法:[ ,]+ :表示括号中的字符匹配一次或多次,连在一起的算一个分隔符
awk -F "[, ]+" '{print $2,$5}' oldboy.txt
5.命令wc,选项:-l
cat -n /etc/srvices | tail -1 | awk '{print $1}'
grep -n /etc/services | tail -1 | awk -F "," '{print $1}'