1.理解系统的输入输出

字符设备是指I/O传输过程中以字符为单位进行传送的设备,例如键盘、打印机等。在linux系统中,字符设备以特别文件方式在文件目录树中占据位置。
示例:

date
显示的字符串存放在dev/pts/0

2.管理输入输出的符号

1.输出重定向

 >    #重定向正确输出
 2>    #重定向错误输出
 &     #重定向所有输出
 注意:重定向会覆盖源文件内容

示例:(必须在普通用户下)

find /etc/ -name passwd > file    #定向正确输出到file
find /etc/ -name passwd 2> file  #定向错误输出到file
find /etc/ -name passwd &> file  #定向所有输出到file
> file        #清空file

示意图:
图片描述
图片描述

2.输出追加

“>>“ #追加正确输出到文件最后
2>> #追加错误输出到文件后
&>> #追加所有输出到文件最后
注意:追加不会覆盖源文件内容

示例:

find /etc/ -name passwd >> file    #追加正确输出到file
find /etc/ -name passwd 2>> file   #追加错误输出到file
find /etc/ -name passwd &>> file   #追加所有输出到file
> file        #清空file

示意图:
图片描述
图片描述

3.管道应用

“|”作用:把前一条命令的输出变成后一条命令的输入(前后都是命令)

注意:管道只允许正确输出通过

通过管道的输出将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,命令为“tee filename”

在普通用户下实验:

ls /bin/ | wc -l
--> 1587
ls /bin/ | wc -l >> file
-->1587
find /etc/ -name passwd | wc -l        #会看到结果为2,因为错误输出不能通过管道
find /etc/ -name passwd 2>&1| wc -l    #会看到19,因为编号为2的错误被“2》&1”转换为正确
find /etc/ -name passwd 2>&1|tee file| wc -l #保存一份输出到file再统计行数

示意图:
图片描述
图片描述

4.输入重定向

EOF是End of File的缩写,是自定义终止符。

cat >file <<EOF
hello
world
EOF    #向file文件追加“hello\n world”


SheenStar
168 声望26 粉丝

祝你坚强