linux系统的输入输出管理

mac2025-03-29  1

运行一个程序时,需要从某个位置读取输入信息,然后cpu处理,最后将输出显示到屏幕或文件。系统的默认输出是在/dev/pts/0,通过指定输出的位置就叫输出的管理。

标准输入:用0表示;标准输出:用1表示;标准错误:用2表示。

重定向

输出重定向

符号说明>重定向正确输出2>重定向错误输出&>重定向所有输出

示例:

在系统中用普通用户student执行:

find /etc/ -name passwd

由于student用户权限问题会有以下输出:

通过重定向,将正确输出定向到文件file.out 中,从而不在屏幕上显示,因此只会有错误输出显示在屏幕上。

把错误的定向到文件file.err中,因此屏幕上只显示正确输出。

如果把所有输出都定向到文件file.all中,屏幕上不会显示任何输出。所有输出都在文件file.out中。

应用

1.快速清空一个文件

> filename

2.建立新文件

以下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命令。

最新回复(0)