Linux系统输入输出管理
系统输入输出的理解
系统的输入:是我们在shell命令中,通常对应终端的键盘;利用字符形式标准输入指令最后进入终端。
系统的输出:是指系统接收到我们输入的字符,然后把我们想要实现的命令经过cpu进程的处理产生字符并且输出到屏幕上。
输出重定向
输入的符号
< | 单行输入 |
---|---|
<<EOF | 多行输入 开始录入直到再次出现EOF |
输出的符号
> | 定向正确输出 |
---|---|
2> | 定向错误输出 |
&> | 定向所有输出 |
>file | 清空文件 |
重定向会覆盖原来内容,实验操作时需要在普通用户中
find /etc/ -name passwd ##查找/etc/下文件名为passwd的文件
find /etc/ -name passwd > z ##把passwd中正确的文件定向输出到z中
z文件中的内容
find /etc/ -name passwd 2> zzz ##把passwd中错误的文件定向输出到zzz中
zzz中的文件内容
find /etc/ -name passwd &> zzz ##把所有的文件重定向到文件zzz中
zzz中的文件内容
重定向正确的输出到zzz,观察是否覆盖原来内容
find /etc/ -name passwd > zzz ##重定向正确的内容输出到zzz
zzz文件内容
小知识
1.怎样清空文件
> z ##把没有的东西定向输出到z
利用输出重定向的覆盖,把没有任何内容的东西利用重定向覆盖z文件
2.建立新文件
touch z
vim z
gedit z
> z
追加输出
符号 | 用法 |
---|---|
>> | 追加正确输出到文件最后 |
2>> | 追加错误输出到文件最后 |
&>> | 追加所有输出到文件最后 |
不会覆盖原文件
追加上面查找的错误结果到zzz的最后
原文件内容:
输出结果:
追加后文件内容:
追加上面查找的正确结果到z的最后
原文件内容:
输出结果:
追加 “bbb”到 z 的最后
Linux管道的应用 |
- 管道是指把前一条命令的输出变成后一条命令的输入
- 管道只允许正确输出通过
- 通过管道的输出将会变成输入,而变成输入的这些输出是会被第二条命令处理的
- 如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee”
find /etc/ -name passwd | wc - l ##统计etc下passwd文件的个数
个数为2说明只通过了正确信息,错误信息显示在了字符设备中
find /etc/ -name passwd 2>&1| wc -l ##统计etc下passwd文件的个数
将错误信息的编号由2变为1后,全部通过管道符。
输入重定向
是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。
新建一个文件名为 e.sh ,并且给它可执行权限
编辑 e.sh 内容如图所示
执行上面的文件