电脑技术学习

对话 UNIX:第 2 部分: 做得多不如做得巧

dn001

  命令 history -2 打印出前两个命令。作为快捷方法,您可以使用 ^(脱字符号)引用命令的第一个参数(而不是命令名本身),并且您可以使用 $(美元符号)引用历史命令的最后一个参数。您还可以使用范围符号来引用某个范围的参数,如清单 5 所示。

  清单 5. 范围符号

$ echo AUTHORS COPYING INSTALL MacHINES
AUTHORS COPYING INSTALL MACHINES
$ echo !!:1-2
echo AUTHORS COPYING
AUTHORS COPYING

  还有其他的更直接的方法可以用来再次调用历史命令。其中一种方法是搜索历史命令:

$ ls I*
$ ls M*
$ echo !?M
ls INSTALL

  结构 !?M 寻找最近的包含大写字母 M 的历史命令行。

  环境变量

  流畅地表达命令行 任务,这是一种基本的 Unix 技能。但是与 UNIX 进行对话不仅仅只是使用 Shell 提示符,您还必须与各种各样的 UNIX 实用工具进行通信。在 UNIX 中,环境变量保存了 Shell 中的相关设置,并允许您将首选项传播到从命令行启动的所有实用工具中。

  有些环境变量称为 Shell 变量,Shell 仅使用这些变量控制其自身的行为。例如,只有 Z Shell 使用 $HISTSIZE 和 $SAVEHIST 管理命令历史,如上所述。可以将 Shell 变量看作相应的设置。

  需要对其他的环境变量进行导出、或使得它们全局可用,并将它们复制到从命令行中启动的每个命令的进程空间(即环境)。例如,$HOME 是一个特殊的环境变量,它保存了您的 home 目录的位置。UNIX 登录序列将设置 $HOME(以及其他的环境变量),然后启动 Shell,而 Shell 反过来使用 $HOME 查找所有的 Shell 启动文件。您所启动的其他应用程序,如 SSH 和 FTP,引用 $HOME 查找 .netrc 文件(用于存储机密的、远程访问的密码)。有些环境变量,如 $HOME、$PATH 和 $SHELL,会被所有应用程序使用。其他的环境变量可能专门针对某个应用程序。

标签: