linux之系统的输入输出

1.理解系统的输入输出
例:当在一个shell中输入相应的命令时,该命令会传输到cpu中,当cpu对该命令进行相应的处理后,就通过字符设备显示到屏幕上。
2.管道输入输出的符号
###输出重定向####
> ##重定向正确输出
2> ##重定向错误输出
&> ##重定向所有输

注意:重定向会覆盖源文件的内容

示例:
注意:以下示列必须在student下完成
find /etc/ -name passwd > file ###定向正确输出到file
在这里插入图片描述
find /etc/ -name passwd 2 > file.err ###定向错误输出到file.err
在这里插入图片描述
find /etc/ -name passwd &> file.all ###定向所有输出到file.all
在这里插入图片描述
#####输出追加#####
(1) >> ###追加正确输出到文件最后
(2) 2>> ###追加错误输出到文件最后
(3) &>> ###追加所有输出到文件最后

注意:追加的内容不会覆盖源文件的内容

示例:
find /etc/ -name passwd >> file ###追加正确输出到file
在这里插入图片描述
find /etc/ -name passwd 2> > file.err ###追加错误输出到file.err
在这里插入图片描述
find /etc/ -name passwd &>> file.all ###追加所有输出到file.all
在这里插入图片描述
3.管道的应用
###管道的作用####
符号:“ | “ 管道的作用是把前一条命令的输出变成后一条命令的输入

必须注意的是:
管道只允许正确输出通过
通过管道的输入将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee“

##管道符号| 的作用
[student@localhost ~]$ touch file{1…3}
[student@localhost ~]$ ls //如ls显示的文件多的话根本数不过来
file file1 file2 file3 file.all file.err
[student@localhost ~]$ ls | wc -l 通过管道将ls的输出送到显示wc -l 的输入然后就会统计出文件个数
6
[student@localhost ~]$ ls | tee file8 |wc -l //用tee将管道的输出复制一份到file8中
6
[student@localhost ~]$ cat file8 //显示除了所有的文件
file
file1
file2
file3
file.all

此实验在普通用户下操作:

find /etc/ -name passwd | wc -l ###会看到的结果为2,因为错误输出不能通过管道
在这里插入图片描述
find /etc/ -name passwd 2>&1 | wc -l ###会看到19,因为编号为2的输出被“2>&1"转换为编号1
在这里插入图片描述
4.输入重定向
echo hello world > file ###将输入的内容定向在file里
在这里插入图片描述
举例:在root下如果对student该密码则需要输入密码,但是如果要对多个用户修改密码其一次又一次的输入密码很麻烦,解决的方法如下:
(1)先建立一个文件,并且编辑如下内容
在这里插入图片描述(2)查看这个文件的权限并对这个文件赋予执行的权利
在这里插入图片描述
(3)当直接执行这个文件时会发现不用直接输入密码密码就可修改成功
在这里插入图片描述
例:

课堂练习题
在这里插入图片描述

(1)
在这里插入图片描述
(2)
在这里插入图片描述
(3)在这里插入图片描述
(4)
在这里插入图片描述

在这里插入图片描述
(5)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/85912276