复制代码代码如下: $ cal</p><p> November 2006 Su Mo Tu We Th Fr Sa 1234 56789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ cal 06 2009</p><p> June 2009 Su Mo Tu We Th Fr Sa 123456 789 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
因为 UNIX 具有许多命令,所以不太可能记住所有实用工具的所有选项。事实上,有时候甚至记不住实用工具的名称。 在遇到困难时,可以求助于 man。例如,要查看如何使用 man 本身,可以输入 man man。使用 man rm 和 man mv,您还可以查看有关 rm 和 mv 的解释。并且,如果清楚需要查找的主题,那么您可以使用 man -k 查找与该主题相关的 man 页面列表。
复制代码代码如下: $ man -k cron cron (8) - daemon to execute scheduled commands (Vixie Cron) crontab (1)- maintain crontab files for individual users (V3) crontab (5)- tables for driving cron dh_installcron (1) - install cron scripts into etc/cron.*
在本示例中,man 找出了一些实用工具的 man 页面,其中有一行描述内容中包含单词 cron。这些 man 页面中可能解释了如何使用 cron,这是一个负责系统任务调度的守护进程。 那么其中的数值代表什么含义呢?每个数值表示联机 UNIX 手册中的一个部分。第 1 部分保留用于 UNIX 用户可以在 Shell 中运行的所有命令。第 5 部分描述了一些文件格式。第 8 部分对系统管理命令进行了编目。其他的部分描述了系统调用 (2)、库调用 (3),等等。 正如您所看到的,大多数命令都会产生某类输出。大多数命令行命令使用标准输出来显示结果。但其他的一些命令则使用标准输出和标准错误,并按顺序显示处理过程和错误消息。如果您希望忽略这类输出(这是非常有价值的,因为它通常可以干预命令行中执行的操作),那么可以将输出重定向到 UNIX bit bucket,/dev/null。这些位只能进,不能出。 下面是一个简单的示例:
复制代码代码如下: $ ls secret.txt $ cat secret.txt I am the Walrus. $ cat secret.txt > /dev/null $ cat socrates.txt > /dev/null cat: socrates.txt: No such file or directory $ cat socrates.txt >& /dev/null $ echo Done. Done.
复制代码代码如下: $ cat secret.txt Anakin Skywalker is Darth Vader. $ cp /dev/null secret.txt $ cat secret.txt $ echo "The moon is made of cheese!" > secret.txt $ cat secret.txt The moon is made of cheese! $ cat /dev/null > secret.txt $ cat secret.txt $ cp /dev/null newsecret.txt $ cat newsecret.txt $ echo Done.
Done.顺便提一下,如果您在 Macintosh 中使用 UNIX,那么可以在一个终端窗口中尝试 open 命令。例如,如果当前工作目录中有一个名为 poodle.jpg 的文件,命令 open poodle.jpg 将启动 Preview 并打开 poodle.jpg,Preview 是 Mac OS X 中内置的图像查看器。Mac OS X open 是命令行和 Macintosh 的窗口环境之间的纽带,并且它比借助于 Finder 要快得多。 下面来总结一下! 噢!尽管这是一辆高速行驶的列车,但现在您已经做好了准备,可以更深入地探索 UNIX。您甚至了解了在不需要某些内容时,应该将其丢弃。 和以前一样,还有更多的内容需要介绍。在以后的几个月中,对话 UNIX 系列将深入研究作业控制、正则表达式(一种奇怪的方言,但并不难掌握)、如何编译从 Internet 上下载的新的实用工具,等等。 不要忘了抹点防晒油哟!