运行一个程序时,需要从某个位置读取输入信息,然后cpu处理,最后将输出显示到屏幕或文件。系统的默认输出是在/dev/pts/0,通过指定输出的位置就叫输出的管理。
标准输入:用0表示;标准输出:用1表示;标准错误:用2表示。
输出重定向
符号说明>重定向正确输出2>重定向错误输出&>重定向所有输出示例:
在系统中用普通用户student执行:
find /etc/ -name passwd
由于student用户权限问题会有以下输出:
通过重定向,将正确输出定向到文件file.out 中,从而不在屏幕上显示,因此只会有错误输出显示在屏幕上。
把错误的定向到文件file.err中,因此屏幕上只显示正确输出。
如果把所有输出都定向到文件file.all中,屏幕上不会显示任何输出。所有输出都在文件file.out中。
应用
1.快速清空一个文件
> filename2.建立新文件
以下4中方式都可以建立新文件。
(1) touch filename (2) vim filename (3) gedit filename (4) > filename输出追加
重定向会覆盖原来的文件,因此想要在原来文件的基础上进行添加,就要用到追加【>>】。
由于重定向有3中形式,因此追加也有3种形式。
指令说明>>正确追加2>>错误追加&>>全部追加例如:之前的重定向文件file.out中只有正确输出,再次追加正确输出到文件file.out 中。
应用
合并文件
输入重定向
(1)单次
比如:把文件中的小写字母,定向为大写字母。
tr ‘a-z’ ‘A-Z’ < file
(2)多次
编写一个shell脚本,超级用户使用psswd命令可以直接修改密码,但是由于需要多次确认,可以使用多行输入重定向来应对这种情况。
vim westos.sh
date cal passwd << EOF redhat redhat EOF这样就可以通过【sh westos.sh】来直接运行。
密码直接修改成功,不需要通过输入两次来修改密码。
说明:把前一条命令的输出变成后一条命令的输入。
(1)管道符:【|】,只允许正确通过,错误的输出过不去
示例:
查看/bin的文件中的文件,再将这些文件输出到wc -l中来统计行数。(2)要想让错误的通过管道,设置【2>&1】
但是并没有输出内容,如果想要获取输出内容,可以使用tee命令。