linux中的输入输出(io)管理

输入输出管理

理解shell中的输入输出
command命令—>memory内存—>cpu运算—>/dev/pts/0字符设备—>shell回显
注意:
/dev/pts/0字符设备(其实也是内存中的一部分)
将cpu的运算结果输出到指定的字符设备,这是输出管理
输出重定向>:将输出定向到指定位置
用>重定向正确的输出结果
用2>重定向错误的输出结果
用&>将全部输出结果定向
(正确的结果被定义为1,错误的结果则被定义为2)
(可以通过使用&>将错误结果全部作为正确结果处理:2&>1)
注意:
重定向会将原文件内容都覆盖掉(因此,可以直接用‘>file’清空文件的内容)
例子eg:
find /etc/ -name passwd > file
find /etc/ -name passwd 2> file
(find命令,按照文件名字(-name),查找/etc/目录下文件名含有passwd的文件,将该命令输出定向到当前目录下的file文件内)
(执行find命令后既有正确的结果,也有错误的结果,将其中之一存入file文件中,另一部分会输出在屏幕上显示)
在这里插入图片描述
追加符号>>:该命令不会覆盖原文件的内容
用>>重定向正确的输出结果
用2>>重定向错误的输出结果
用&>>将全部输出结果定向
输入重定向:<单行输入重定向 <<多行输入重定向
两个例子:
eg1:
vim file (使用vim编辑file这个文件)
QWERASDF (将文件file内容编辑为QWERASDF)
tr ‘A-Z’ ‘a-z’ < westos
(这里前半部分单独的tr命令是将大写字母转为小写字母输出,但这个命令本身并没有输入,而加上后半部分的输入重定向,将file文件内容作为输入传给tr命令)
eg2:
vim file1.sh(使用vim编辑法file1.sh这个文件)
passwd <<EOF(以下均为编辑后的file1.sh文件的内容)
123
123
EOF
sh file1.sh (将file1.sh文件内容作为命令执行)
实际执行如下图:
(第一张图是直接在命令行中完成的,不借助文件;而第二,三张图则是例二执行结果,与图一结果一致)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上例中使用到了多行输入重定向<<,其用法如下:
<<EOF
EOF
解释:
<<本身表示多行输入重定向,以EOF作为标示符开始录入,当再次出现EOF表示录入结束
(其实标识符可以不是EOF,可以为任意字符串,只不过规范要求使用EOF表示)
管道符:将前一个命令的内容作为后一个命令的输入
只允许正确的输出通过,但是通过命令2&>1可以将错误的输出结果变为正确的结果,从而通过管道符(管道符号是可以前后多次使用,即多个命令相互组合的)
注意:
如果还需要保存前一个命令的输出内容,那么需要复制一份输出内容,则使用到的命令是tee filename
如:ls /bin/ | tee file | wc -l
(将/bin目录下的文件的信息保存一份到当前目录file文件中,同时将其复制一份作为wc -l命令的输入)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值