1. 排序
1.1. sort
- 对文件或管道内容进行排序
sort | |
sort -n | 按数字排序,从小到大 |
sort -rn | 按数字排序,从大到小 |
sort -hr | 智能模式 |
sort -k2 | 按第2列排序 |
sort -k2,2 | 按从第2列到第2列进行排序 |
sort -t ':' | 按照:进行分割 |
sort -o | 排序后写入到源文件 |
# 取数字最大的前5行
sort -rn sort.txt | head -5
# 按第2列进行排序
sort -rnk2 sort.txt
# 取出/etc下ls -l文件内容最大的5个文件
ls /etc | sort -rnk5 |head -5
# 查找根目录下文件大小最大的5个文件
du -sh /* | sort -rhk1 | head -5
2. 去重
2.1. uniq
- 一般和sort搭配使用
# 去重显示次数
uniq -c uniq.txt
# 排序后去重
sort uniq.txt | uniq -c
3. awk
3.1. 取列
# 取出第1列,第3列,第4列
awk '{print $1,$3,$4}' awk.txt | column -t
# 取出倒数第2列
awk '{print $(NF-2)}' awk.txt
4. 日志分析
4.1. access.log文件
# lrzsz软件包(远程连接工具上传下载文件)
rz:上传
sz 文件名:下载
# unzip解压.zip结尾的文件
# 取出access.log的每个ip出现的次数前5个
awk '{print $1}' access.log | sort |uniq -c | sort -rnk1 |head -5
4.2. secure文件
# 分析破解你密码ip的次数
grep 'Failed' secure-20161219 | awk '{print $(NF-3)}' | sort | uniq -c | sort -rnk1 | head -5