Linux系统管道与输入/输出重定向
- Linux系统FD
文件描述符(file descriptors ,FD)进程使用文件描述符来管理打开的文件,是内核为了高效管理已被打开的文件所创建的索引,用于指代被打开的文件,所有执行I/O操作的系统调用都通过文件描述符。0是标准输入,1是标准输出,2是标准错误。如果此时去打开一个新的文件,它的文件描述符会是3。
当进程运行时,在/proc/PID/fd (进程对应的PID)下就可以看到文件的FD调用情况。 - Linux系统输入/输出重定向
输出重定向:正常输出是把内容输出到显示器上,而输出重定向是把内容输出到文件中
1代表标准正确输出
| 1>等价于 > | 覆盖 |
| 1>> 等价于>> |追加 |
2代表标准错误输出。
| 2> | 覆盖 |
| 2>> |追加 |
同时将正确和错误信息输出时 &>。当信息不想需要时&> /dev/null
0代表标准输入
0<等价于 < - Linux系统管道
命令A | 命令B | 命令C| 命令D
Linux系统中同时按下键盘上的Shift+\键即可输入管道符,其执行格式为“命令A | 命令B”。管道命令符的作用也可以用一句话来概括“把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入”。管道命令可以多次使用,将多条命令组合起来,一次性完成复杂的处理任务。
tee管道
三通管道,即交给另一个程序处理的同时,保存一份副本
过滤器Xargs
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。xargs 一般是和管道一起使用。将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
命令 1 | xargs 命令2