在您使用Linux的整个过程中,您很可能发现控制程序的输入和输入的效果是显著的。这一节叙述控制输入和输入将能为您带来些什么。
每个进程和外部世界至少有三个连接。标准输入是进程的一个数据来源;标准输出 是其输出数据的一个地方;标准错误设备是进程可以输出错误信息的一个地方(它们通常简写为 stdin stdout,和 stderr。)
单词“源”和“地方”是故意含糊其词的。 这些标准输出和输出定位可以被用户修改;它们可以是屏幕,键盘,一个文件, 甚至一个网络连接。您可以定向它加以使用。
当您在shell下运行一个程序时,通常键盘是标准输入,标准输出和错误显示都是显示屏。然而您可以让shell改变这些缺少设置。
举个例子, echo这个命令把它的输入送到标准输出,通常是屏幕。
但是您可以把它送给一个文件——通过使用输出重定向操作符。
比如,把单词“Hello”放到myfile文件中,可以使用如下命令:
您可以用 输入重定向操作符 < 来改变一个命令的标准输入,
例如, cat < myfile 将显示 myfile 的内容。
在实际应用中这是什么意义的;出于方便,cat 命令接受一个文件名参数。所以你只要键入 cat myfile,
效果是相同的。重定向操作符
此时cat < myfile的意思是shell打开文件myfile,然后把它的内容送到cat的标准输入。 cat
myfile,即在没有重定操作符时,意思是cat这个命令接受一个参数(myfile),自己打开这个文件,然后显示这个文件的内容。
存在这样的两种方法是有道理的。比如,您可以把一个命令的标准输出连到另一个命令的标准输入。
这叫做 管道,使用 管道操作符 6.1, |.
也许您想倒着看GNU的通用公共证书。为了做到这一点,您会使用 tac 命令,
(它就是 cat,只不是倒着的)。请试一下:
您可以把许多命令链接在一起。假如您有一个莫名的欲望想用 Q 替换所有的 G 。
为此您要使用命令 tr G Q ,如:
tr G Q < tmpfile > tmpfile2
less < tmpfile2
rm tmpfile tmpfile2
使用 cat 或您的文本文件定页阅读器 (more 或 less) 来看 myfile的文件内容;请看图
6.3 ,在
页。
不幸地是,它闪得太快而很不见。所以您只能看到一些章节。解决方法是使用管道(pipeline)
这将取 tac 的标准输出,GPL,再送到 less 的标准输入。
您也可以使用临时文件和重定向来获得相同的效果,比如:
很明显使用管道方便多了。
Next: 文件名的扩展
UP: Shell的使用
Previous: 别名
  目录
  索引
John Goerzen / Ossama Othman