linux文件输入输出重定向

1.输入输出定义
(1)输入
就是我们的键盘,鼠标和我们用这些硬件在系统只哦个录入的字符
(2)输出
就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符
输入会有两种出现
编号1为正确输出(1可以不写)
编号2为错误输出
默认着两种输出都会被系统定向到字符设备中

2.输入管理
(1)交互式录入
编写修改密码脚本

vim passwd.sh

在这里插入图片描述
sh passwd.sh 执行,需要手动执行
在这里插入图片描述

(2)非交互式录入

vim passwd.sh 

编写非交互式录入脚本:
在这里插入图片描述
密码自动被修改在这里插入图片描述
调用sh命令是不能自动运行的,需要借助<<输入重定向符号进行重定向
例如:

vim westos.sh

在这里插入图片描述

cat ld

在这里插入图片描述

2.输出重定向

     >		   #重定向正确输出
    2>		   #重定向错误输出
    &>		   #重定向所有输出
    2>&1	   #把错误输出的编号由2转换为1
   >  file     #清空文件file的内容

如在普通用户下将/etc/下名为passwd的正确文件文件重定向到file中
剩余在shell中显示的是错误信息

在这里插入图片描述
若让错误信息重定向到file.err中,则shell中显示正确信息
在这里插入图片描述
若让所有信息都重定向到file.all中,则shell中不显示信息
在这里插入图片描述
分别查看file和file.err,则file.all中显示的是两者信息之和
在这里插入图片描述
注意:重定向的内容会覆盖原来的内容
编辑新的文件,让其他文件重定向到该文件中,发现新编辑的信息被覆盖
在这里插入图片描述

3.追加
保持原文件内容不变的情况下把输出追加到文件之后

>>		##追加正确输出
2>>		##追加错误输出
&>>		##追加所有输出

新编辑一个文件,追加正确输出到该文件中,查看该文件,以前的信息没有被覆盖
在这里插入图片描述
清空file
在这里插入图片描述

4.管道符“ | “
把输出变成下一个程序的输入
管道是用来组合多条命令的使用
管道符只能输出正确结果,错误的结果会被自动过滤
ls /bin | wc -l
在这里插入图片描述
管道符只能输出正确结果,错误的结果会被自动过滤
在这里插入图片描述
把错误的重定向为正确的,再用管道符查看
在这里插入图片描述
注意:通过管道后输出会变成输入,无法保存在文件中
要想保存查看,使用以下命令:

tee	file	##复制输出到指定位置

在这里插入图片描述
5.输入重定向
若只执行cat命令,则输入什么就显示什么
在这里插入图片描述

<< 后可以输入任意字符
当他再次出现之前系统会一直执行中间的内容

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44416500/article/details/86744882