一、重定向
Linux 重定向分为两种,一种输入重定向,一种是输出重定向;从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思。
- 标准输入(STDIN),文件描述符号为:0,默认从键盘获取输入 <0
- 标准输出(STDOUT),文件描述符号位:1,默认输出到显示终端 1> 1 >>
- 标准错误(STDERR),文件描述符号为:2,默认输出到显示终端 2> 2>>
1.标准输出重定向
-
输入date命令,结果被显示在桌面上
输入命令 [root@localhost ~]# date 1> file1
-
将date 输出结果 重新定位到一个文件中,此时发现结果并没有像上面一样被显示出来
-
那么我们打开 文件file1查看
-
结果被重新定向到了 文件file1中
-
当我们进行多次重定向操作时,查看结果 发现依然只有 一次 结果被覆盖了
-
所以我们要在此处进行追加重定向操作
输入命令 [root@localhost ~]# date 1>> file1
2.错误输出重定向
用ls命令查询目录下文件,并试着将结果定向到文件 file2,结果发现结果还是被输出了出来,文件file2中没有内容。
注意:(错误输出重定向 是只能将错误的命令重定向到一个地方 正确的命令是不会被识别的)
正确示范:
将正确和错误的指令同时输出到一个文件中
3.输入重定向
< 等价于0<
二、管道
管道是两个头或三个头的东西,每个头各连接一个进程或者同一个进程的不同代码,按照管道的类别分有两种管道,匿名的和命名的;按照管道的传输方向分也可以分成两种,单向的双向的。根据管道的特点,命名管道通常用在网络环境下不同计算机上运行的进程之间的通信(当然也可以用在同一台机的不同进程中)它可以是单向或双向的;而匿名管道只能用在同一台计算机中,它只能是单向的。匿名管道其实是通过用给了一个指定名字的有名管道来实现的。
piping
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。
tee
三通管道,即交给另一个程序处理。又保存一份副本
查看副本 file3 结果发现 结果非常的多
为什么会出现这个结果呢 因为 我们的命令
[root@localhost ~]# ps aux |tee file3 |grep s| head -3
tee管道程序 在ps aux 之后 所以保存显示的为 ps aux的副本
xargs(参数传递)
输入命令
[root@localhost ~]# touch {1..5}
创建5个文件
在文件file4 中输入内容
然后 想利用Xargs参数传递功能 来对 文件进行删除
输入命令
[root@localhost ~]# cat file4 |xargs rm -rvf
然后进行查看