0
点赞
收藏
分享

微信扫一扫

Linux系统基础入门知识 (6) 重定向

标准输入、标准输出、标准错误

  1. file descriptors ,FD,文件描述符,文件句柄
  2. 进程使用文件描述符来管理打开的文件

Linux系统基础入门知识(6)重定向_标准输出

Linux系统基础入门知识(6)重定向_标准输出_02

FD是访问文件的标识,即链接文件

  • 0是键盘只读
  • 1,2是终端可以理解是屏幕
  • 3+是文件,可读可写

在/proc目录中查看文本程序的FD

通常在 /proc/PID/fd  就能看到文件的FD调用情况。

[root@localhost ~]# ll /proc/5606/fd
lrwx------. 1 root root 64 10月 10 07:37 0 -> /dev/pts/2 //标准输入
lrwx------. 1 root root 64 10月 10 07:37 1 -> /dev/pts/2 //标准输出
lrwx------. 1 root root 64 10月 10 07:37 2 -> /dev/pts/2 标准错误输出
lrwx------. 1 root root 64 10月 10 07:37 3 -> /root/.1.txt.swp //常规文件

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

输出重定向

正确输出

  • 覆盖: 1>等价于 >
  • 追加: 1>> 等价于>>

错误输出

  • 没有简写: 2>
  • 没有简写: 2>>
[root@localhost ~]# date 1> date.txt 
[root@localhost ~]# date >> date.txt
[root@localhost ~]# cat date.txt
2022年 05月 29日 星期五 11:30:14 CST

Linux系统基础入门知识(6)重定向_标准输入_03

错误示范

[root@localhost ~]# ls /home/ 2> list.txt
  • list.txt文件中没有内容因为没有错误信息
  • 当某条命令产生错误时,才会有错误输出。

正确示范

[root@localhost ~]#ls /aaaaaaaaa 2> list.txt 
[root@localhost ~]#cat list.txt
ls: 无法访问/aaaaaaaaa: 没有那个文件或目录

正确和错误都输入到相同位置

[root@localhost ~]# ls /home/ /aaaaaaaaa &> list.txt

Linux系统基础入门知识(6)重定向_标准输出_04

输入重定向

输入重定向及结合案例

[root@localhost ~]# mail -s "ssss"  alice //编写邮件
111
.
[root@localhost ~]# su - alice
[alice@localhost ~]$ mail //查看邮件
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/alice": 1 message 1 new
>N 1 root@qianfeng.local Mon Oct 29 14:09 18/657 "ssss"
&
//按邮件编号:1.即可看邮件。
//按q 退出。

可以用重定向创建邮件

[root@localhost ~]#vim word.txt
[root@localhost ~]#mail -s "test01" alice < word.txt

原理:利用输入重定向,把文件内容代替人为的输入。

其他常用(更)

不输出任何信息

&>/dev/null


举报

相关推荐

0 条评论