目录
一、 输入输出的定义
输入:是指我们的键盘,鼠标等硬件在系统中录入的字符
输出:是指系统在接受到我们想要实现的功能字符后,经过进程的处理产生的字符。输出会有两种出现,编号1为正确输出,编号2为错误输出,默认这两种输出都会被系统定向到字符设备中。
- 示例:使用普通用户查看passwd会产生错误,查看所有文件需要超级用户权限~
1) 字符设备
字符设备就是显示字符到屏幕上的设备文件
- 示例:ps对进程进行扫描,dev/pts/0的文件即为字符设备
当把date产生的信息抛入到/dev/pts/0时,当前shell会直接显示date信息
2)stdin 标准输入
标号为0
键盘 鼠标 打字机
3)stdout 标准正确输出
标号为1
4)stderr 标准错误输出
标号为2
二、 如何管理输入
输入:外界传递到程序中的信息
1) < 输入重定向
tr 'a-z' 'A-Z' < test
把test文件中的内容定向到tr程序中
- 示例:
2)<< 多行录入
- 示例:在westos.sh中输入以下代码并执行,只能实现将test和test1文字变为大写,此处的test不能表示为文件名称只表示test字符~
若要将test和test1中的文件变为大写则需要补充语句:
- 练习:编写脚本可以自动更改普通用户的密码
三、 如何管理系统输出
1)输出重定向
\>
重定向正确输出
2>
重定向错误输出
&>
重定向所有输出
- 示例:分别将正确,错误,所有输出导入westos.out文件
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
注意:追加和重定向功能类似,但是不会覆盖原文件内容
3)管道 “|”
将前一条命令的输出 作为输入传递到下一条命令进行操作
-
示例1:查看bin文件夹中文件,作为输入使用wc统计其个数
-
示例2:*管道只处理正确输出
2>&1把编号为2的输入转换到编号为1的输出中 -
示例3:*tee 复制输出到指定位置 管道在一条命令中可以使用多次
练习![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a0b26cf00c10aa6993b792c6016b4f8a.png)
1、把错误信息抛入垃圾箱
2、
3、
4、
5、tr ‘a-z’ ‘A-Z’ < /etc/passwd | tee /dev/pts/0 | wc -l
7、编写test.sh脚本文件执行test.sh实现将文字写入westos.file