linux输入输出管理、输入/出重定向、追加输出(不覆盖原文件)

输入输出:

输入命令 --> 管理输入的内存,输入放到/dev/fd/0里(stdin,标准输入,编号为0,键盘、鼠标、打字机) --> cpu --> 管理输出的内存,正确输出放到/dev/fd/1里(stdout,标准正确输出,标号为1),错误输出放到/dev/fd/2里(stderr,标准错误输出,标号为2) --> 显示到屏幕。
在这里插入图片描述

输入重定向

<   #输入重定向

  1. tr ‘a-z’ ‘A-Z’ < file1    ##把test文件中的内容定向到tr程序中将小写字母转换为大写字母
    ##重定向符号将file1里的内容放到tr程序文件下的/fd/0里进行相应的处理
    ##tr命令用于转换或删除文件中的字符
    在这里插入图片描述
  2. <<  多行录入
    tr ‘a-z’ ‘A-Z’ <<EOF(可以是任意字符)
    123    ##此处不能表示为文件名称只表示字符
    456    ##此处不能表示为文件名称只表示字符
    EOF (当首字母再次出现表示录入结束)
    在这里插入图片描述
    用脚本非交互式的编写文件并显示内容(用到了输出重定向)
    在这里插入图片描述
    在这里插入图片描述

输出重定向

  1. 输出重定向
    “ > ”、“ 2> ”、“ &> ”
    find /etc -name passwd > westos.out   ##重定向正确输出
    find /etc -name passwd 2> westos.out   ##重定向错误输出
    find /etc -name passwd &> westos.out   ##重定向所有输出
    注意:重定向管理输出后会覆盖原文件内容
    在这里插入图片描述
  2. 追加
    “ >> ”、“ 2>> ”、“ &>> ”
    find /etc -name passwd >> westos.out ##追加正确输出
    find /etc -name passwd 2>> westos.out ##追加错误输出
    find /etc -name passwd &>> westos.out ##追加所有输出
    注意:追加和重定向功能类似,但是不会覆盖原文件内容
    在这里插入图片描述

以上命令需在普通用户下执行才有效果,因为普通用户权限不够有的文件无权查看,而root用户可以看所有文件所以不会有错误输出。

管道符“ | ”及其应用

把前一条命令的输出变成输入传递到下一条命令进行操作。

注意:
1、管道只处理正确输出!!!(即只能处理1里的内容)
	2>&1 把编号为2(错误的输出)的输出转换到编号为1(正确的输出)的输出中。
2、通过管道的输出将会变成输入,而变成输入的这些输出是会被第二条命令处理的
3、如果需要保存输出内容,那么需要复制一份输出,用到的命令是“teetee命令:复制输出到指定位置。即用于读取标准输入的数据,并将其内容输出成文件
4、管道在一条命令中可以使用多次

在这里插入图片描述
在这里插入图片描述
错误输出被转到正确输出里了
在这里插入图片描述
将passwd文件内容小写变大写并输出内容统计行号
在这里插入图片描述

管道符和定位符是时刻监控的!
当我们作为普通用户想查找一个文件并且统计错误输出用如下命令时可能会出现如下情况:
在这里插入图片描述
第一条命令的意思是将正确输出放到回收站,为了让错误输出通过管道符再将错误输出放到1里最后统计行数,但是会出现0,是因为定位符>已经开启且在时刻监控,在2>&1执行后被转到正确的1里的内容又会被丢掉。
第二条命令换了下位置后,这样定位符还没运行,先处理错误输出再处理正确输出,这样即可让我们想要的通过管道符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值