管道的作用是将前一个命令输出作为后一个命令的输入,实现多个命令的 “串联执行”。
示例:
# 1. 查看当前目录下文件数量ls -l | wc -l# 2. 查找包含 "root" 的进程并按 CPU 排序ps aux | grep "root" | sort -k 3 -r
特点:
单向性:数据只能从左往右流动
实时性:前一个命令产生数据后,后一个命令立即处理
组合:可以串联多个命令,形成管道线
过滤器:通常与 grep, sort, sed等命令配合使用
2.重定向(>, >>, <, 2>, &>)
Linux 默认的数据流:
0 (stdin):标准输入,默认从键盘读取。
1 (stdout):标准输出,默认打印到屏幕。
2 (stderr):标准错误,用于输出错误信息。
重定向的作用是改变命令的默认输入 / 输出目标。
1)标准输出覆盖重定向 (>)
将命令输出写入指定文件,覆盖文件原有内容。
语法:command > file
# 将 ls 结果覆盖写入 file_list.txtls -l > file_list.txt
2)标准输出追加重定向 (>>)
将命令输出追加到指定文件末尾,不覆盖原有内容。
语法:command >> file
# 将当前日期追加到 log.txt 末尾date >> log.txt
3)输入重定向 (<)
让命令从指定文件输入,而非键盘输入。
语法:command < file
# 从 file.txt 读取内容作为 cat 的输入cat < file.txt
4)标准错误重定向 (2>)
将命令错误信息单独重定向到文件,避免干扰正常输出。
语法:command 2> error_file
# 正常输出到 output.log,错误输出到 error.logcommand > output.log 2> error.log
5)标准输出和错误同时重定向,合并重定向到同一文件(&>)
# &> 等价于 1> file 2>&1command &> all.log