首页 帮助中心 常见问题 把命令串起来用,Linux 才算是真正顺手了
把命令串起来用,Linux 才算是真正顺手了
时间 : 2026-03-12 14:28:01 编辑 : 华纳云 阅读量 : 9

刚接触Linux大家最开始是记一大堆命令,然后用完一个再敲下一个。比如想看某个端口被谁占了,先ps aux找到一堆进程,然后瞪着屏幕找到那一行,再手动复制PID,接着敲 kill 加上去。那时候觉得这很正常,命令不就一条一条敲的吗?

接触久后会意识到:不可以直接用管道吗?从那之后,很多操作方式就变了。管道这个东西,可以说是Linux里最不起眼但最实用的设计之一。它的符号是 `|`,在键盘上一般在回车键附近。作用一句话就能说清:把左边命令的输出,当成右边命令的输入。

就这么简单的一个机制,能把零散的命令串起来,变成一条流水线。今天咱们就聊聊管道到底怎么用,以及那些真正能提升效率的常见组合。

先说个最基础的例子。你想看系统里有没有跑着 nginx 进程,直接 ps aux 会输出一大堆,翻半天才找得到。用管道加上 grep 过滤一下:

ps aux | grep nginx

ps aux 列出所有进程,输出传给 grepgrep 只保留包含 nginx 的那几行。结果清晰多了,不用在满屏列表里找。

再看另一个场景:你想知道某个日志文件里有多少行出现了 "error"。用 cat 读文件,然后传给 grep 计数:

cat /var/log/syslog | grep error | wc -l

这条命令分了三段:cat 把文件内容吐出来,grep 筛出含 error 的行,wc -l 统计行数。三个命令串在一起,一步到位。

管道还可以用来处理命令输出的排序和去重。比如你想看看谁在尝试登录你的服务器,可以看 `/var/log/auth.log`,但里面条目太多。先筛选出失败登录的 IP,再排序,再去重,最后按出现次数倒排:

grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

这里用到了 awk 提取第 11 列(就是 IP 地址),然后 sort 排序,uniq -c 合并相同 IP 并计数,最后 sort -nr 按数字倒排。一条命令下来,攻击最频繁的 IP 就排在最前面了。

有时候输出太长,一滚就过去了,可以结合 less 分页查看:

dmesg | less

dmesg 输出内核日志,信息量巨大,直接看根本看不清。加个 `| less` 就能翻页、搜索,舒服多了。

管道还能跟 xargs 配合,把输出作为参数传给另一个命令。比如你想删除当前目录下所有 .tmp 文件,find 找到它们,然后传给 rm

find . -name "*.tmp" | xargs rm

xargs 的作用是把前一条命令的输出,变成后一条命令的参数。这比用 `find . -name "*.tmp" -exec rm {} \;` 写起来简单些,但要注意文件名带空格的情况,稳妥点可以加 `-print0` `xargs -0`

还有种常见用法是筛选后统计。比如想看当前目录下各个子目录占了多少空间,用 du,但输出太多,只想看最大的几个:

du -sh * | sort -hr | head -10

du 列出大小,sort -hr 按人类可读的格式倒排,head 只取前十行。这样一眼就能看出哪些目录是磁盘空间大户。

管道也不是只能串两个命令,理论上可以串无数个,只要中间每一步的输出格式能被下一步接受就行。比如统计一个日志文件里出现最多的 IP 是哪个:

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

这就是经典的日志分析流水线:提取 IP、排序、合并计数、按次数倒排、取第一名。一行命令搞定,不用写脚本。

还有个小技巧:有时候你想把输出既传给下一个命令,又同时保存一份到文件,可以用 tee。比如看进程列表的同时存一份日志:

ps aux | tee process.txt | grep nginx

ps aux 的输出会同时流向两个地方:一个写到 process.txt,一个继续传给 grep。这样既能看到筛选结果,又把完整列表存了下来。

管道真正厉害的地方,不是单个命令多复杂,而是把那些简单到只有一件事的小工具组合起来,解决一个复杂的问题。grep 只管过滤,sort 只管排序,uniq 只管去重,wc 只管计数——它们各司其职,通过管道串成一条生产线,最后产出你想要的结果。

这种设计哲学,也是 Linux 让人上瘾的地方。你不是在学一堆孤立的功能,而是在学怎么把积木搭起来。一开始可能只会用 `| grep`,慢慢发现还能加 sort、加 uniq、加 awk,再后来遇到新问题,第一反应不是“用什么命令”,而是“用哪几个命令串起来”。

如果你现在还是一条命令敲完,盯着输出发呆,然后手动处理,不妨试着用管道把它串起来。省下的时间不多,但那种“让机器干活”的掌控感,很值。

华纳云 推荐文章
linux系统怎么用命令行查看服务器配置参数​? 云服务器建站用Linux还是Windows系统? Linux云服务器连接数限制优化思路与方案 Linux云服务器TCP优化:Window Size(窗口大小)调整全解析 Linux云服务器Swap优化方案 linux云服务器Nginx worker参数调优实战指南 Linux服务器中如何巧妙设置禁用关机和重启功能 为什么需要多个IP地址?Linux服务器上如何配置与切换IP linux云服务器MTU设置优化教程 从宝塔到cPanel:2026年主流Linux服务器控制面板全景解析与选型指南
活动
客服咨询
7*24小时技术支持
技术支持
渠道支持