在 Linux 中,管道连接着一个命令的标准输出和另一个命令的标准输入。
让我们考虑一下前面所讨论的 ls 命令。 ls 有许多可用的选项,但是如果目录的内容卷动速度快得你无法查看时该怎么办呢?
使用以下命令来查看 /etc 目录的内容:
ls -al /etc 你怎么样才能在输出卷过屏幕之前仔细查看它们呢?
方法之一是把输出用管道导入到一个叫做 less 的工具。 less 是一个分页工具,它允许你一页一页(或一个屏幕一个屏幕)地查看信息。
使用竖线( | )来把输出用管道导入到命令中。
ls -al /etc | less 现在,你就可以一个屏幕一个屏幕地查看 /etc 目录的内容了。要向前移动一个屏幕,按 [Space] 键;要向后移动一个屏幕,按 [b] 键;要退出,按 [q] 键。使用 less 命令时,你还可以使用箭头键来前后移动。
要使用 less 来搜索文本文件的输出,按 [/] ,然后键入你想在文件内搜索的内容。譬如:
/Linux 窍门:要更仔细地阅读启动消息,在 shell 提示下,键入 dmesg | less 。你将能够一个屏幕一个屏幕地阅读该文件。使用箭头键来前后翻阅文件。要搜索文件输出,按 [/] 并键入搜索内容。
管道还可以用来只打印一个文件中的某些行。键入:
grep coffee sneakers.txt | lpr 这将会打印 sneakers.txt 文件中提到“coffee”这个词的每一行(在第 13.11.3 节中可读到关于 grep 的详情)。
13.10.1. more 命令 more 和 less 的主要区别是, less 允许你使用箭头键来前后移动,而 more 使用 [Spacebar] 和 [b] 键来前后移动。
使用 ls 和 more 命令来列举 /etc 目录中的内容。
管道和分页器ls -al /etc | more
图 13-10. 把 ls 的输出管道输出给 more
要使用 more 在文本文件内搜索关键字,按 [/] 并键入搜索条目。譬如:
/foo 使用 [Spacebar] 来向前翻阅页码。按 [q] 来退出。