输入输出管理
一、理解什么是输入输出
1、字符设备
字符设备就是显示字符到屏幕上的设备文件(相当于现实生活当中的黑板)
比如 我们打开一个shell shell有一个进程id 可以打开Application->utilities->system monitor查看进程id
而进程id存放在/proc 找到该进程id所在的目录,搜索该id号可以找到文件夹 fd中有0 1 2 等文件
在shell中输入的命令等就会写入到上述“0”文件里
如果输入没问题,那产生的结果就会存入到1中,若输入的有问题,产生的结果就会存入到2中
那么 0 1 2三个文件 就叫做字符设备
而0 1 2 并不是只在fd中,他们是系统当中设备的软链接,相当于快捷方式
我们可以查看0 1 2 的属性 会发现它的真是位置是 /dev/pts/0,这也就是为什么我们输入输出的结果可以在同一界面显示
当我们再打开一个shell 的时候,会发现它的字符id和前一个不一样,这也就是为什么我们的在第二个shell中输入的命令所得到的输出不会在第一个shell中展现的原因。
原理图解:
2、如何管理系统输出
在做实验时,在虚拟机中使用普通用户登录,普通用户只有部分权限,比如有些文件不能查看。
(1)、重新定向输出。(重定向管理输出后会覆盖源文件内容)
find /etc/ -name passwd > westos.out ##正确的输出被定向到指定的文件中
find /etc/ -name passwd 2> westos.err ##错误的输出被定向到指定文件中
find /etc/ -name passwd &> westos.all ##所有的输出被定向到指定文件中
那到底是否被覆盖,我们也可由实验得知:
(2)、如果不想覆盖原文件内容就得使用 追加</