系统中的输入输出

我们在一个shell脚本中输入一条命令,系统首先会将命令放入内存中,然后给到cpu进行计算,最后将计算结果给到字符设备,字符设备将内容给与回显。具体如下图所示:

linux怎么输出javapath linux如何输出结果_运维


由图中可知,最后屏幕上的回显内容全部保存在/dev/pts/1文件中,且每条命令计算出的结果都会覆盖/dev/pts/1文件中上一条命令计算出的结果,我们可以做以下验证:

linux怎么输出javapath linux如何输出结果_输入输出_02


linux怎么输出javapath linux如何输出结果_字符设备_03


linux怎么输出javapath linux如何输出结果_运维_04


由于/dev/pts/0文件不是一个常规文件,所以我们不能直接打开查看他,为了验证我们上述结论的真实性,我们引入了管理输入输出的符号。

管理文件输入输出的符号

输出重定向

commend>file 将命令的正确输出给到file
commend2>file 将命令错误输出给到file
commend&>file 将命令的所有输出给file

实验操作如下

linux怎么输出javapath linux如何输出结果_字符设备_05


linux怎么输出javapath linux如何输出结果_linux怎么输出javapath_06


我们可以得出结论,每一次的/etc/pts/0都会将文件之前的内容覆盖,完成正确回显。

>, 2> ,&>

linux怎么输出javapath linux如何输出结果_字符设备_07


linux怎么输出javapath linux如何输出结果_运维_08


linux怎么输出javapath linux如何输出结果_运维_09


linux怎么输出javapath linux如何输出结果_运维_10


linux怎么输出javapath linux如何输出结果_Linux_11

输出追加

commend>>file 将正确输出追加在文件
commend2>>file 将错误输出追加在文件
commend&>>file 将所有输出追加在文件

注意:追加并不会覆盖文件,在文件已有的内容下添加内容

具体操作如下

linux怎么输出javapath linux如何输出结果_运维_12


linux怎么输出javapath linux如何输出结果_运维_13


linux怎么输出javapath linux如何输出结果_Linux_14

输入重定向

<< 首字母和尾字母相同,即停止操作
< 单行输入

具体操作如下

<<

linux怎么输出javapath linux如何输出结果_字符设备_15


linux怎么输出javapath linux如何输出结果_linux怎么输出javapath_16


linux怎么输出javapath linux如何输出结果_字符设备_17

管道的应用

管道是将前一条命令的输出变成后一条命令的输出:

commend | commend
具体操作如下

linux怎么输出javapath linux如何输出结果_输入输出_18


linux怎么输出javapath linux如何输出结果_输入输出_19