系统的输入输出

1、何为系统的输入输出?怎样理解?

一个计算机有输入设备:像键盘;有输出设备:像显示屏、打印机等
标准输出指的是命令执行所返回的正确信息,而标准错误输出可理解为命令执行失败后,所返回的错误信息。

2、输出重定向和追加
(1)、输出重定向

在字符设备上,认为1表示正确输出;2表示错误输出
1>(默认为>) ##重定向正确输出##
系统的输入输出
如上图所示,红色标记的输出正确输出,其余均为错误输出
系统的输入输出
将正确输出重新定向到file文件中,正确输出则不在字符设备上显示,而是保存在file文件中,查看file文件内容,可以看见正确输出

2> ##重定向错误输出##
系统的输入输出
同样将错误输出重定向到westos文件中,错误输出不在字符设备上显示,而是保存在westos文件中

&> ##重定向所有输出##
系统的输入输出
将所有的输出重定向到文件file1中,不在字符设备上显示,所有的输出保存在file1文件中
2>&1 ##表示将错误的转化为正确的##

注意:重定向会覆盖原来文件中的内容
系统的输入输出
建立两个文件,file1中的内容为hahaha,file2中的内容为hehehe
系统的输入输出
将file1中的内容重定向到file2中,file2中原有的内容被覆盖,只保存了file1中的内容

(2)、输出重定向的追加

1>>(默认为>>) ##追加正确输出,即将正确输出不显示在字符设备上,而是重定向追加到一个文件中,若该文件中已有内容,对其原有内容不会进行覆盖,而是添加在其原内容之后##
系统的输入输出
系统的输入输出
2>> ##追加错误输出,即将错误输出不显示在字符设备上,而是重定向追加到一个文件中,若该文件中已有内容,对其原有内容不会进行覆盖,而是添加在其原内容之后##
系统的输入输出
系统的输入输出
&>> ##追加所有输出##
系统的输入输出
输出重定向不会覆盖原文件的内容,只是将输出内容增加在原文件内容之后

3、输入重定向
< 单行输入重定向
eg:
vim file
love is beautiful
tr ‘A-Z’ ‘a-z’ <file ##将原文件输入的小写字母,重新定向为大写字母##
LOVE IS BEAUTIFUL
系统的输入输出
2)<<EOF
EOF 输入多行重定向
(EOF开始录入 再次出现EOF表示录入结束),可以将这种人机交互的过程,写出shell脚本来输入,这样可以减少手动输入。

eg:修改密码

vim passwd.sh
passwd <<EOF

123

123

EOF
系统的输入输出
如上图需要一条一条的输入命令,更改密码时也需要手动输入
系统的输入输出
在桌面建立一个shell文件,内容如上图
系统的输入输出
这里可以看到,我们执行了shell文件后,可一次执行多行命令,且修改密码成功,不需要再手动输入密码

4、管道

(1)、管道的表示符号: |
(2)、管道的作用:将前面一条命令的输出结果作为后面一条命令的输入,管道只允许正确输出通过,错误输出不通过。
系统的输入输出
如上图,我们查看了passwd中的文件,然后通过管道,然后进行了查看文件总行数命令,结果显示了,错误命令,以及正确命令的总行数,说明了只有正确输出才能通过管道
系统的输入输出
如上图,将错误输出转化为正确输出,然后将所有输出进入管道,然后作为WC -l 命令的输入,最后只显示了查看文件的输出,总行数位19

注意:在管道中,之允许正确输出通过;通过管道的输出,将会时下条命令的输入,并且被下条命令所处理;如果需要保存一份输出,则可用"tee"命令

系统的输入输出
如上图可看到,我们用tee命令将正确输出保存到file1文件中

(3)、查看命令wc

命令 功能
wc -l 查看文件的总行数
wc -w 查看文件的总单词数(英文字母)
wc -m 查看文件的字符数
wc -c 查看文件的字节数

系统的输入输出
如上图红圈所表示,直接使用wc命令后显示的四个内容分别为:文件的总行数、文件的总单词数、文件的总字符数、文件名

相关文章: