1.Linux系统中输入输出的定义
1.1 输入:
Stdin[标准输入流],指系统外接向系统中传递的消息,如键盘、鼠标、输入命令
1.2 输出:
stdout[标准正确输出],指命令顺利执行完成之后产生的字符串,stdout在Linux中的输出编号为1
stderr[标准错误输出],指命令失败执行完成之后产生的字符串,stderr在Linux中的输出编号为2
注意:不是所有指令都有输出 (比如:rm -f)
实验1:显示输出 find /etc/ -name passwd
说明:输出结果包含正确输出和错误输出
说明:1是正确输出,2是错误输出
1.3 字符设备
字符设备,是指在I/O传输过程中以字符为单位进行传输的设备,如键盘、打印机等。字符设备是内存中开启的虚拟设备并真实存在。
2.重定向输出
2.1 重定向的输出
符号 | 用途 |
---|---|
> | 重定向正确输出 |
2> | 重定向错误输出 |
&> | 重定向所有输出 |
命令 | 用途 |
---|---|
find /etc/ -name passwd > westos.out |
重定向正确输出命令 |
find /etc/ -name passwd 2> westos.err |
重定向错误输出命令 |
find /etc/ -name passwd &>westos.all |
重定向所有输出命令 |
实验环境:普通用户。因为普通用户权限低,检索报错会出现错误输出
实验一:重定向正确输出到文件westos.out
find /etc/ -name passwd > westos.out
实验结果:(westos.out文件包含内容)
正确输出被导出,shell界面只显示错误输出
查找/etc/目录中的passwd文件,屏蔽正确输出
实验二:重定向错误输出到文件westos.err
find /etc/ -name passwd 2> westos.err
实验结果:(westos.err文件包含内容)
错误输出被导出,shell界面只显示正确输出
查找/etc/目录中的passwd文件,屏蔽错误输出
实验三:重定向全部输出到文件westos.all
find /etc/ -name passwd &>westos.all
实验结果:(westos.all文件包含内容)
全部输出内容导出,shell界面不显示
2.2 重定向对文件的覆盖和清空
(1).重定向会覆盖原文件内容
find /etc/ -name passwd > file
实验环境:普通用户
1.生成一个有内容的文件
2.重定向正确输出到文件
实验结果:原文件内容被覆盖
(2).重定向可以用来清空原文件内容
> file
实验环境:普通用户
说明:原文件内容被清空
3.追加输出
注意:追加动作是不会覆盖原文件内容
追加动作会把定向的内容放原文件最后
find /etc -name passwd > westos
##执行重定向(覆盖)
find /etc -name passwd >> westos
##执行追加(不覆盖原文件内容)
3.1 对比重定向和追加
实验:(普通用户环境)
重定向实验:生成一个有内容的文件
[student@workstation Desktop]$ echo hello westos > westos
[student@workstation Desktop]$ cat westos
hello westos
执行重定向
[student@workstation Desktop]$ find /etc -name passwd > westos
find: ‘/etc/pki/rsyslog’: Permi