
2.5 编辑文本文件
前面介绍了文件系统的层次结构,以及如何使用命令行来管理各种文件和目录。有时需要对文本文件的内容进行管理。例如,对标准输出的去向进行指定,就要用到重定向符等。
2.5.1 文件I/O重定向
默认情况下,命令执行后的输出会在终端屏幕上显示,但有时也希望将输出内容重定向到某个文件中。这就需要使用标准输出重定向符“1>”,简写成“>”。有时需要将某个文件的内容作为标准输入重定向到命令,则需要使用标准输入重定向符“<”。
例如,希望将date命令显示的内容重定向到文件datefile中。

“>”符号会把输出重定向到某个文件中,但此符号会把目标文件中的内容覆盖,为了避免发生这样的情况,需要使用追加重定向符“>>”。例如,把uptime命令内容也重定向到datefile文件中,但不希望覆盖之前的内容。

同样,如果有相应的错误输出,则可以使用错误输出重定向符“2>”,将输出重定向到某个文件中。例如,将某个错误的命令输出重定向到文件error中。

使用“2>>”可以将错误输出以追加的形式重定向到某个文件中。
默认情况下,输入来自键盘,但在某些案例中,输入的内容可能来自某个特定的文件。因此,可以使用输入重定向符“<”将文件内容导入命令。例如,统计/etc/group文件中的行号。

2.5.2 管道符
Linux系统中的命令十分丰富,但有时单个命令无法满足某个特定的需求,这时就需要将多个命令结合在一起。在这种情况下,往往要用到管道符。语法格式如下:

中间的“|”就是管道符。它会把command1的输出重定向到命令command2。
例如,使用ls命令查看/usr/sbin目录时,由于/usr/sbin目录中内容较多,可能一瞬间就显示过去了,这时可借助more命令进行翻屏。

当然,还可以组合更多命令来完成复杂的工作。例如,只提取回环接口(lo)的IP地址时,可采用下面的命令。
