linux命令行中管道例子
linux命令行中管道例子详细介绍
在 Linux 命令行中,管道(|) 用于将前一个命令的输出作为后一个命令的输入,实现多个命令的组合操作。以下是一些常用的管道示例,涵盖文本处理、文件操作、进程管理等场景:
1. 基础文本过滤与统计
示例 1:筛选包含特定字符串的行
bash
示例 2:统计日志文件中包含 "ERROR" 的行数
bash
app.log
示例 3:按关键词排序并去重
bash
words.txt
2. 处理文件与目录
示例 4:查找特定类型文件并统计数量
bash
f
示例 5:压缩目录并通过管道传输(无需临时文件)
bash
czvf - /data user@remote
3. 进程管理与系统监控
示例 6:杀死特定进程(避免包含
grep 自身)
bash
aux
示例 7:实时监控日志并高亮关键信息
bash
app.log always
4. 数据流处理与转换
示例 8:将命令输出分页显示(替代直接刷屏)
bash
/usr
示例 9:同时输出到终端和文件(
tee 命令)
bash
https://example.com response.html
示例 10:提取日志中的 IP 地址并去重统计
bash
access.log
grep -Eo:提取正则匹配的 IP 地址uniq -c:统计重复次数sort -nr:按次数降序排列
5. 高级组合:多阶段管道
示例 11:处理 CSV 文件(提取特定列并排序)
bash
users.csv
示例 12:压缩并传输目录(无需临时文件)
bash
user@remote xzvf -
管道核心概念总结
- 输入输出流:管道传递的是前一个命令的 标准输出(stdout),作为后一个命令的 标准输入(stdin)。
- 常用工具:结合
grep(过滤)、awk(文本处理)、sed(流编辑)、sort(排序)、uniq(去重)、wc(统计)等工具实现复杂逻辑。 - 注意事项:
- 管道会忽略前一个命令的 错误输出(stderr),如需处理错误,可使用
2>&1重定向错误流(如command 2>&1 | grep error)。 xargs用于将管道中的多行输入转换为命令参数(避免空格 / 换行导致的参数分割问题)。
- 管道会忽略前一个命令的 错误输出(stderr),如需处理错误,可使用
通过管道,可将多个简单命令组合成强大的工作流,高效处理文本、文件、进程等任务。实际使用时,可根据需求灵活搭配工具,实现 “流式处理”。