linux系统中如何管理输入与输出

理解系统的输入与输出
1.

文件描述符是一个简单的正整数,用来标明每一个被shell所打开文件和socket。 最前面的三个文件描述符{0,1,2}分别与标准输入,标准输出,标准错误相对应。 shell会自动为我们打开和关闭三个文件描述符。 标准输入是命令的输入默认指向键盘,标准输出是命令的输出默认指向屏幕,标准错误是命令中错误信息的输出默认指向屏幕。 0代表我们输入的信息,1代表输出的正确结果,2代表输出的错误结果。

  1. < 单行输入
    举例 :

     vim westos
     WESTOS    ##westos里的内容
     tr   ‘ A-Z ’  ' a-z '  <  westos  ##退出vim,该命令将大写字母换为小写字母
    

3.<<EOF 多行输入,从第一个EOF到再次出现EOF录入结束。

举例 :

vim    test.sh ##建立了一个脚本,并且进行编写
passwd  <<EOF 
123  ##将此录入到passwd命令后需要输入密码的第一行
123 ##将此录入到passwd命令后需要重新确认密码的第二行
 EOF ##结束录入

管理输入与输出的符号
1.输出重定向
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输出
注意 :重定向会覆盖原文件内容
举例 :

 find /etc/ -name passwd  >  file  ##重定向正确输出到file

如图所示:查找/etc下名为passwd的文件,并将正确输出定向到file文件中,该目录下有许多passwd文件,但正确的只有两个,所以cat file可以看到,有两条正确输出,屏幕上显示的,以find开头的文件全部为错误文件。
在这里插入图片描述

 find /etc/ -name passwd  2>  file  ##定向错误输出到file
 find /etc/ -name passwd  &>  file  ##定向所有输出到file
   >   file   ##将无内容定向到file,相当于空白覆盖文件内容,等于删除文件内容。`

如图所示:定向输出所有到file中,运行该命令后屏幕无文件显示,此时用cat 命令查看file,发现所有输出被保存在file中。对比上图发现,在执行该命令前file中的文件被覆盖。
在这里插入图片描述
注意 :以下实验必须在普通用户下完成,在root用户下正确和错误文件都可通过。

2.输出追加
>> ## 将正确的输出追加到为文件到最后
2>> ##将错误的输出追加到文件到最后
&>> ##将所有输出追加到文件到最后
注意 :追加不会覆盖文件内容
举例 :

 find /etc/ -name passwd  >>  file  ##将正确输出追加到file
  find /etc/ -name passwd  2>>  file.err ##将错误输出追加到file
  find /etc/ -name passwd  &>>  file.all ##将所有输出追加到file

如图所示:追加正确的输出到file文件最后,对比上图可以看到file中多出来两个正确的passwd文件,之前正确的文件也没有被覆盖,错误的文件显示在屏幕上。

在这里插入图片描述

在这里插入图片描述
管道的应用
1.管道的作用
" | " 管道的作用 :将前一条命令的输出变为后一条命令的输入。
注意 :
管道只允许正确输出通过。
通过管道的输出将会变成输入,而变成输入的这些输出将会被第二条命令处理。
如果需要保存输出,那么需要复制一份输出,用到的命令是 tee 。
举例 :
该实验在普通用户下进行

  find  /etc/ -name passwd | wc -l  

如图所示:看到的结果数为2,因为错误的输出不能通过管道,错误文件输出到屏幕。在这里插入图片描述

 find /etc/ -name passwd 2>&1 | wc -l 

如图所示:经过命令 2&>1的执行,所有错误文件都被定向为正确文件,所以都为正确输出,统计出行数为19。
在这里插入图片描述

find /etc/ -name passwd 2>&1 | tee file | wc -l 

如图所示:file1为空文件,管道符输出结果可以用tee来保存到文件file1中,再统计行数。
在这里插入图片描述
输入重定向
cat >file <<EOF
hello
WORLD
EOF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值