Linux系统配置及服务管理_第05章_重定向管道

目录

 

Linux系统配置-重定向讲解

管道

1、管道 |

tee管道


Linux系统配置-重定向讲解

重定向

1、FD简介

file descriptors ,FD,文件描述符
进程使用文件描述符来管理打开的文件

图示
在这里插入图片描述
在这里插入图片描述
FD是访问文件的标识,即链接文件
0是键盘只读
1,2是终端可以理解是屏幕
3+是文件,可读可写

示例
通过我们非常熟悉的VIM程序。来观察一个进程的FD信息。
1.通过一个终端,打开一个文本。
[root@localhost ~]# vim 1.txt

2.通过另一个终端,查询文本程序的进程号
[root@localhost ~]# ps axu |grep vim


 

3.在/proc目录中查看文本程序的FD
通常在 /proc/PID/fd 就能看到文件的FD调用情况。
[root@localhost ~]# ls -l /proc/3961/fd

lrwx------. 1 root root 64 7月  30 19:16 0 -> /dev/pts/0                //标准输入
lrwx------. 1 root root 64 7月  30 19:16 1 -> /dev/pts/0                  //标准输出
lrwx------. 1 root root 64 7月  30 19:12 2 -> /dev/pts/0                  //标准错误输出
lrwx------. 1 root root 64 7月  30 19:16 3 -> /root/.1.txt.swp          //常规文件

4.总结

看到的0124就是FD,程序通过描述符访问文件,
可以是常规文件,也可以是设备文件。

2、重定向案例

输出重定向及综合案例
简介-输出重定向分为
(1)正确输出
1>等价于 >    覆盖
1>> 等价于>>追加
(2)错误输出
2>等价于 >    覆盖
2>> 等价于>>追加

案例1,输出重定向正确输出

[root@localhost ~]# date 1>1.txt//date时间内容写进1.txt中

[root@localhost ~]# date 1>>1.txt   / /把时间内容追加到1.txt中

案例2:错误输出重定向

错误示范

[root@localhost ~]# ls /home/ 2> 1.txt


观察1.txt文件中没有内容,因为没有错误信息2> 只写错误的信息

正确示范

当某条命令产生错误时,才会有错误输出。

案例3: 正确和错误都输入到相同位置

[root@localhost ~]# ls /home//sfsfsf &>>1.txt

2.输入重定向及结合案例

简介:标准输入: < 等价 0<

案例:输入重定向发送邮件

1 观察默认发送邮件的过程

编写邮件

[root@localhost ~]# mail -s "111111" user01
66666
6666
123
.                  //结束符号
EOT

mail   电子邮件

-s      标题

111111  标题内容

user01    邮件接收人

点代表邮件编辑已结束。

查看邮件 切换到接受邮件账户user01

[root@localhost ~]# su - user01

查看邮件内容:[user01@localhost ~]$ mail

按邮件编号:1.即可看邮件。
按q 退出。

2 使用重定向快速创建邮件

先准备一段邮件内容

[root@localhost ~]# vim ghr.txt
 

[root@localhost ~]# mail -s "dddd" < ghr.txt    //利用输入重定向把文件内容代替人为的输入,快速创建邮件。

 

管道

1、管道 |

进程管道 Piping

简介:
管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。
语法:
command1 | command2 |command3 |…
在这里插入图片描述

指令1的标准输出

作为指令2的标准输入

案例

[root@localhost ~]# cat /etc/passwd | tail -3
 

[root@localhost ~]# ps aux | grep 'sshd'

tee管道

简介:
三通管道,即交给另一个程序处理。又保存一份副本
在这里插入图片描述

案例

[root@localhost ~]# cat /etc/passwd |tee 99.txt | tail -1   //tee 99.txt是查看passwd文件内容的同时把内容都写进99.txt中
tail -1 是显示内容的第一行

[root@localhost ~]# cat 99.txt

参数传递 Xargs

 cp rm一些特殊命令就是不服其他程序。

案例;
1.环境准备,准备一些文件。

[root@localhost ~]# touch /home/file{1..5}       // 同时创建五个文件

0

2 接到消息,部分文件需要删除。

[root@localhost ~]# vim files.txt 
 

3 使用管道删除

[root@localhost ~]# cat files.txt |rm -rf

文件还在,删除失败了

4.貌似之前的不行。下面加上xargs

[root@localhost ~]# cat files.txt | xargs rm -rvf
已删除"/home/file1"
已删除"/home/file3"
已删除"/home/file5"
[root@localhost ~]# ls /home

通过|xargs成功连接rm命令
删除成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值