重定向
重定向 > 重定向追加输入 >> 正确错误都会重定向 &>
标准输入 0
标准输出 1> 或 > (简写)
标准错误 2>
FD 文件描述符,进程使用文件描述符来管理打开的文件
打开一个进程文件观察 例如 vim
首先产看vim的pid
![4cf19b9704c9b0443ecc4b4cc7681e08.png](https://i-blog.csdnimg.cn/blog_migrate/eae94a92b5948bf3494df5d1f65a50ec.png)
由图可看出vim pid是6387
查看/proc/6387/fd 目录下的内容
![0e57585259c55aa245f37728977f1c8b.png](https://i-blog.csdnimg.cn/blog_migrate/7b541824910025a928d9b8d737768716.png)
由图可以看出vim这个进程默认的标准输入,标准输出,标准错误,会显示在/dev/pts/1
标准正确输出
我们打开两个终端分别输入tty
![6a9e626a3016de126432273a03f2e980.png](https://i-blog.csdnimg.cn/blog_migrate/3c3d83c627f71a983fcc7430f4be1d86.png)
左边是/dev/pts/2号终端 右边是/dev/pts/3号终端
向左边窗口输入指令echo 嗨,靓仔
![031c283ed93e7bd1d24ecd85392f13c9.png](https://i-blog.csdnimg.cn/blog_migrate/8f8895f6e4bc10badc18075dc5a2738e.png)
在左边终端会显示出我们所输入的信息
使用重定向输入指令 echo 嗨,靓仔 > /dev/pts/3
![f6ed86b8918a93a0005c598583d03623.png](https://i-blog.csdnimg.cn/blog_migrate/5467d3081b36bc452af6f1c548afe9ef.jpeg)
发现左边终端指令输入的信息显示到了右边终端
标准错误输出
向左边窗口输入指令excho 嗨,靓仔 (注意这是一个错误的指令)
![20ec6f35978b6fe3375909418aa734dd.png](https://i-blog.csdnimg.cn/blog_migrate/575869b414f23c31bedda9953ad4ee6c.jpeg)
可以看到错误的信息显示在有右边终端
管道
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。
![57ff8659e521ef71f94be9e6d77fcd3b.png](https://i-blog.csdnimg.cn/blog_migrate/d67d353ddaa9c10cfdd52f61abe90f8c.png)
利用管道可以筛选处进程管理前5行的与root有关的信息
tee 三通管道加在管道中可以把tee之前的管道信息保存下来
![c97aee9c080198dd6a5795206f70cbd4.png](https://i-blog.csdnimg.cn/blog_migrate/ce8adf92e1ba28db912f5cbe61626128.png)
加入三通管道后我们可以在 /1.txt 中查看到ps aux 显示的所有信息
![85c1643276367c19d5364ddb1143ab4a.png](https://i-blog.csdnimg.cn/blog_migrate/ae6f7f8fcfbdba7dada0fc502e3f2040.jpeg)
特殊参数 xargs 例如 cp rm -rf 需要加特殊参数
首先创建一个文件夹和5个文件
![8151949d4536e7fb9290c3a4d99f538b.png](https://i-blog.csdnimg.cn/blog_migrate/ec7a3e9a044cd069c66b4ede3454ee52.png)
管道删除指令
打开 /xx 文件 写入文字后保存退出
![582ba4b6083335247a24d77e549763b6.png](https://i-blog.csdnimg.cn/blog_migrate/92e905b6f24e6b4be91e4676145bf39b.png)
输入指令 cat /xx |xargs rm -rf 然后查看 / 下文件信息
![5f0087688a94f7ac6a4b2dcfd4914281.png](https://i-blog.csdnimg.cn/blog_migrate/2a1e0c81a1402bbdfe2a1a0861fe705c.png)
发现文本中写的1.txt和2.txt已经被删除
管道复制指令
再次打开 /xx 写入文字保存退出
![349cb238072692c01ab31abf59a90749.png](https://i-blog.csdnimg.cn/blog_migrate/5359cee559bec998c4cb41e16b6d147f.png)
输入指令 cat /xx |xargs cp /3.txt /4.txt 然后查看 /nn下文件信息
![9d8326af0866dd551e6bcfa7f0685198.png](https://i-blog.csdnimg.cn/blog_migrate/f3224d928f835f3267ece6c9c7cbc439.png)
发现文本中写的/nn已经复制了2个文件进去