电脑技术学习

对话 UNIX: 掌握强大的命令行

dn001

  独立使用 find 时,总是以文件系统的内容作为输入数据。但是 sort 和 uniq 则需要从标准输入设备 (stdin) 请求数据输入。多数情况下,您会使用键盘作为 stdin:例如,您需要输入要排序的数据行。

  默认情况下,find 在标准输出设备(stdout,通常是您的终端窗口)上打印结果。sort 和 uniq 都将输出打印到 stdout。

  为了说明 stdin 和 stdout,您可在终端窗口中输入以下文本(假设前面的百分号 (%) 为您的 shell 提示符):

  清单 4. stdin 和 stdout

        % sort
mustache
horn
hat
Control-D

  sort 从 stdin 读取您输入的三行文本,并对其进行排序,然后将结果写出到 stdout。图 1 所示为从命令行运行 sort 和多数 Unix 命令行实用工具的示意图。

  图 1. 典型 UNIX 命令行实用工具从 stdin 读取并写入到 stdout

  某些实用工具,例如 find 并不从 stdin 读取内容。它们是从系统资源(例如文件系统或系统内核)读取需要处理的数据,然后将结果写入到 stdout。要直观查看 find 的工作方式,请参见以下的图 2。

  图 2. 某些实用工具从系统资源读取数据并将结果写入到 stdout

  除了使用 stdin 和 stdout 之外,UNIX 命令还将生成的错误消息输出到一种特殊出口以便进行诊断,该出口通常并不是强制的。此出口称为标准错误设备(通常简称为 stderr)。图 3 所示为运行实用工具的简单命令行。

标签: