Linux系统的重定向管道。

重定向其中涉及到有:标准输入,标准输出,错误输出。
首先需要了解以下FD:
file descriptors 简称为FD 文件描述符号,是进程使用问使用文件描述符来管理打开的文件,链接文件。FD是访问文件的标识,即链接文件。其中fd文件中的:0 1 2 3 分别代表了:
0是键盘只读
1标准输出终端(屏幕)
2错误输出终端(屏幕)

首先通过我们非常熟悉的vi程序,来观察一个进程的FD信息:
vi 1.txt
ps aux | grep vi
通常在/proc/PID/fd 就能看到文件的FD调用情况。如图
Linux系统的重定向管道。
当输入 ll /proc/1918/fd 则会看到文件的属性 如图:Linux系统的重定向管道。
而这里的
lrwx------. 1 root root 64 7月 30 19:17 0 -> /dev/pts/1 标准输入
lrwx------. 1 root root 64 7月 30 19:17 1 -> /dev/pts/1 标准输出
lrwx------. 1 root root 64 7月 30 19:17 2 -> /dev/pts/1 标准错误输出
lrwx------. 1 root root 64 7月 30 19:17 3 -> /root/.1.txt.swp 常规文件
这里看到的0,1,2,3就是FD,程序通过描述符访问文件,可以是常规文件,也可以是设备文件。

二、输出重定向及综合案例
重定向分为:正确输出和错误输出
正确输出:1>等价于> 如命令 date >1.txt 则是覆盖 而 date >> 1.txt 则是追加
错误输出:2>或2>> 如命令 ls asdasdas 2>1.txt 则是覆盖 而 ls asdasdas 2>> 1.txt 则是追加
如图:Linux系统的重定向管道。
Linux系统的重定向管道。
而这里当正确和错误都输入到相同位置时:
ls /home/ /aaaaaaaa &> 1.txtLinux系统的重定向管道。
三、管道(|)
① 进程管道Piping:管道命令可以将多条命令组合起来,一次性完成复杂性的处理任务
如:cat /etc/passwd | tail -3 | head -1Linux系统的重定向管道。
② tee管道
相当于一个三通管道,即交给另一个程序处理。又保存一份副本。Linux系统的重定向管道。
如:cat /etc/passwd |tee 88.txt | tail -1Linux系统的重定向管道。
这边文本文件显示的全部内容,是因为命令cat /etc/passwd 为第一命令。