Day 07 重定向和管道

管道  |

进程间通信的手段,能够连接两条命令,前一条命令的结果交给后面一条命令使用

管道常用的处理指令

grep  过滤

后面跟需要过滤的内容

与过滤的内容取反:grep -v 过滤内容

sort  排序

默认从小到大

-r 反转排序

-n 按数值排序

-k 指定字段(-k1 按第一列字段排序,-k2 第二列.....)

uniq  去重

使用之前需要排序(uniq前必有sort),且保证只有一列字段

-c 统计字段重复的次数

awk  获取想要的数据

利用行和列获取数据

获取第n列数据

实例:

查看服务器所有的用户:cat /etc/passwd | awk -F: ‘{print $1}’

查看服务器的登录shell:cat /etc/passwd | awk -F: ‘{print $NF}’

系统中都用到的登录shell(去重):cat /etc/passwd | awk -F: '{print $NF}' |sort | uniq

统计一下每个登录shell被使用了几次:cat /etc/passwd | awk -F: '{print $NF}' |sort | uniq  -c

获取被使用次数最多的登录shell:cat /etc/passwd | awk -F: '{print $NF}' |sort | uniq  -c | sort -nr -k1 | head -1

-F可以指定分隔符,不加-F,默认分隔符为空格

$1 第一列

$10 第十列

$NF 最后一列

$(NF-1) 倒数第二列

查看第m行第n列的数据

实例:

查看当前的空闲内存:

free -m | awk ‘NR==2{print $4}’ (第二行第四列) 

df -Th  获取磁盘使用情况

只能看已经挂载的磁盘或分区

实例:

获取根目录使用百分比:df -Th | awk 'NR==6{print $(NF-1)}'

wc -l  统计行数

关于管道的综合实例

access.log是nginx访问日志文件,对其做以下操作:

1.获取到所有的IP地址

cat access.log | awk '{print $1}'

2.获取到所有IP的个数(统计某一网站访问次数;统计某一网站PV量)

cat access.log | awk '{print $1}' |wc -l

3.获取所有的IP地址(去重)(统计某一网站访问的人有那些)

cat access.log | awk '{print $1}' | sort -n |uniq 

4.统计某一网站访问人数(UV)

cat access.log | awk '{print $1}' | sort -n |uniq |wc -l

5.每个IP地址的个数(每个IP访问的次数)
cat access.log | awk '{print $1}' | sort | uniq -c 

6.获取访问次数前三的人/IP地址

cat access.log | awk '{print $1}' | sort | uniq -c |sort -rn -k1 | head -3
 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值