Linux中的输入输出管理方法


前言

写这篇文章主要想讲一些关于Linux中输入输出的一些东西,包括输入输出的相关定义,管理输入输出的方法,相关的案例操作等,个人感觉还是要先理解输入输出的定义,再去学习相关方法,这样可能会事半功倍。

一、输入输出的定义

在系统中,我们的输入输出体现在屏幕上显示的字符,从输入设备输入信息到显示设备显示信息需要经过字符设备的作用,而这个字符设备就是显示字符到屏幕上的设备文件,在Linux中,标准输入在进程文件中编号为0,标准正确输出编号为1,标准错误输出编号为2。

二、管理输入输出的方法

1.管理输入

[westos@MiWiFi-RM2100-srv Desktop]$ vim test  #创建test文件并编辑内容
[westos@MiWiFi-RM2100-srv Desktop]$ tr 'a-z' 'A-Z' < test  #将test文件里面的内容重定向到tr 'a-z' 'A-Z'中,实现小写字母转换为大写字母HELLO LINUX HELLO REDHAT
[westos@MiWiFi-RM2100-srv Desktop]$ vim test1.sh  #创建脚本文件并编辑
[westos@MiWiFi-RM2100-srv Desktop]$ sh test1.sh   #调用脚本文件
HELLO
EVERYONE

以下是所编辑的脚本文件的内容,其中用到了多行录入方法,EOF表示任意字符,最够的EOF是指当该首字母再次出现表示录入结束。
在这里插入图片描述

2.管理输出

[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd  > right.out  #将passwd中的正确输出重定向到right.out文件中,执行该语句的同时如果没有right.out文件将会自动创建。
[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd 2> erro.out  #将passwd中的错误输出重定向到erro.out文件中,执行该语句的同时如果没有erro.out文件将会自动创建。 
[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd &> all.out  #将passwd中的所有输出重定向到all.out文件中,执行该语句的同时如果没有all.out文件将会自动创建。
[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd >> right.out  #将passwd中的正确输出追加到right.out文件中,该指令执行后right.out文件中将会有两部分相同的正确输出。
[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd 2>> erro.out  #将passwd中的错误输出追加到erro.out文件中,该指令执行后erro.out文件中将会有两部分相同的错误输出。
[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd &>> all.out  #将passwd中的所有输出追加到all.out文件中,该指令执行后all.out文件中将会有两部分相同的所有输出。

erro.out、right.out、all.out文件中的内容追加后显示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、管道符“|”

作用:把前一条命令的输出传递到下一条命令作为输入并执行
注意事项:
(1)管道符只传递正确输出
(2)在一条命令中可使用多个管道符
(3)可以使用tee复制命令输出到指定位置
(4)2>&1 把编号为 2 的输入转换到编号为 1 的输出中(此命令可将全部输出都通过管道符传递给下一条命令)

[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd 2>&1 | wc -l  #统计passwd中所有输出的函数
[westos@MiWiFi-RM2100-srv Desktop]$ find /etc -name passwd 2>&1 | tee file1 | wc -l  #将passwd中所有输出内容复制到file1文件中并统计行数

下面图片是执行上面第二行命令后file1的内容:
在这里插入图片描述

总结

这次主要讲了管理输入输出的一些方法,其中输入输出的标准化表示一定要分辨清楚,还有输入输出重定向的含义及应用、多行录入的方法、管道符的作用以及在使用管道符时的一些技巧和需要注意的地方,特别是一定要注意:管道符只传递正确输出,所以想要传递全部输出的话需要先将错误输出重定向到正确输出的文件中,也就是用2>&1。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值