管道符攻略(管道符介绍)(1)

管道符介绍

管道操作符号 "|" 连接左右两个命令, 将左侧的命令的标准输出, 交给右侧命令的标准输入。 # 格式: 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


,