Linux管道符详细介绍

图片[1]-Linux管道符详细介绍-不念博客
Linux管道符详细介绍

管道符介绍

管道操作符号 "|" 连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入。


# 格式:
cmd1 | cmd2 [...|cmdn]


# 注意事项
1.在管道后面的命令,都不应该在写文件名
2.在管道中只有标准输出才可以传递下一个命令, 标准错误输出会直接输出终端显示, 建议在使用管道前将标准错误输出重定向。
例如: find /etc -name "*.conf" 2>/dev/null | grep rc
3.有些命令不支持管道技术, 但是可以通过xargs来实现管道传递。

应用1 统计出最占CPU的5个进程


ps aux --sort=-%cpu |head -6

2.请统计出下面文件中,域名被访问的次数

https://blog.driverzeng.com/index.html
https://blog.driverzeng.com/1.html
http://post.driverzeng.com/index.html
http://mp3.driverzeng.com/index.html
https://blog.driverzeng.com/3.html
http://post.driverzeng.com/2.html

排序:sort
去重:uniq
截取出域名:cut

先把这些放进yuming.txt
以/截取
命令:cut -d '/' -f 3 yuming.txt | sort |uniq -c
3 blog.driverzeng.com
1 mp3。。。
2 post。。。

**xargs(英文全拼:eXtended ARGuments)**

xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

#  xargs 一般是和管道一起使用,可以让一些不支持管道的命令比如前面讲的find命令可以使用管道
格式:somecommand |xargs -item  command

加与不加xargs的区别:

[root@localhost ~]# find /run -type s | ls -l           前面的废掉了,流不过去,直接相当于# ls -l 


total 20
-rw-r--r--. 1 root root   23 Aug 25 09:24 001
-rw-r--r--. 1 root root    0 Aug 24 17:20 123
-rw-r---w-. 1 root root  877 Aug 25 08:28 abc
-rw-------. 1 root root 1447 Aug 17 15:28 anaconda-ks.cfg
-rw-r---w-. 1 root root    0 Aug 24 21:00 demo.txt
...
[root@localhost ~]# find /run -type s |xargs ls -l       加个xargs 可以了 所有s属性的文件


srw-rw-rw-. 1 root root 0 Aug 24 15:41 /run/dbus/system_bus_socket
srwx------. 1 root root 0 Aug 24 15:41 /run/systemd/cgroups-agent
srw-rw-rw-. 1 root root 0 Aug 24 15:41 /run/systemd/journal/socket
srw-rw-rw-. 1 root root 0 Aug 24 15:41 /run/systemd/journal/stdout
srwxrwxrwx. 1 root root 0 Aug 24 15:41 /run/systemd/notify
srwxrwxrwx. 1 root root 0 Aug 24 15:41 /run/systemd/private
srw-------. 1 root root 0 Aug 24 15:41 /run/systemd/shutdownd
srw-------. 1 root root 0 Aug 24 15:41 /run/udev/control
srw-rw-rw-. 1 root root 0 Aug 24 15:41 /run/vmware/guestServicePipe
© 版权声明
THE END