插件窝 干货文章 Linux管道命令简介及基础用法

Linux管道命令简介及基础用法

管道 命令 文件 bash 429    来源:    2025-04-10

Linux管道命令简介及基础用法

什么是管道命令

管道(Pipe)是Linux/Unix系统中一个强大的特性,它允许将一个命令的输出作为另一个命令的输入。管道使用竖线符号|表示,可以将多个命令连接起来,形成数据处理流水线。

管道的基本语法

command1 | command2 | command3 ...

管道命令的优势

  1. 简化复杂操作:将多个简单命令组合完成复杂任务
  2. 节省内存:不需要中间文件存储临时结果
  3. 提高效率:数据流直接从一个程序传递到另一个程序

常用管道命令示例

1. 基本过滤

# 查看进程并过滤出包含"nginx"的进程
ps aux | grep nginx

# 查看日志文件最后100行并过滤错误信息
tail -n 100 /var/log/syslog | grep -i error

2. 数据统计

# 统计当前目录下文件数量
ls | wc -l

# 统计文件中单词出现频率
cat file.txt | tr ' ' '\n' | sort | uniq -c | sort -nr

3. 文本处理

# 提取文件的第5列数据并排序
cut -d',' -f5 data.csv | sort

# 将输出转换为大写
echo "hello world" | tr '[:lower:]' '[:upper:]'

4. 系统监控

# 查看内存使用情况并排序
free -h | grep Mem | awk '{print $3/$2 * 100.0}'

# 监控网络连接数
netstat -an | grep ESTABLISHED | wc -l

高级管道技巧

1. 使用tee命令同时输出到屏幕和文件

ls -l | tee filelist.txt | less

2. 使用xargs处理参数

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

3. 结合awk进行复杂处理

# 提取CPU使用率
top -b -n 1 | grep "Cpu(s)" | awk '{print $2 + $4 "%"}'

4. 使用sed进行流编辑

# 替换文本中的字符串
cat config.txt | sed 's/old/new/g' > newconfig.txt

注意事项

  1. 管道中的命令是从左到右顺序执行的
  2. 管道会创建子shell,某些情况下变量可能不会保留
  3. 错误输出(stderr)默认不会通过管道传递,可以使用2>&1重定向
  4. 管道命令的性能优于临时文件,但复杂管道可能难以调试

通过灵活组合这些管道命令,可以高效地完成各种数据处理和系统管理任务。