tcsh 是最流行的 UNIX® shell 之一。学习如何用 tcsh shell 变量简化自己的工作以及如何利用 tcsh 的高级安全特性。
tcsh 是原来的 Berkeley UNIX C shell 的改进版本,它是最流行的 UNIX shell 之一。本文讨论 tcsh 提供的一些功能:它提供的 shell 变量可以减少几个常规任务花费的时间,还提供了一些高级的安全特性,比如监视用户及其命令历史。本文描述的所有命令和脚本都用 tcsh 6.15 测试过(参见 参考资料)。
tcsh 提供几个内置的 shell 变量。其中一部分(比如 rmstar
和 noclobber
)是布尔值,所以建议用 set <variablename>
打开它们。对于 prompt 等其他内置变量,需要使用 set <variablename>=<value>
提供一个值。使用 unset <variablename>
取消变量。清单 1 给出一些基本示例。
清单 1. 如何设置/取消 shell 内置变量
tcsh# set prompt="arpan@tintin# " |
下面几节讨论 tcsh 通过 shell 内置变量提供的一些最有用的特性。
在 UNIX 中,造成混乱的最常见原因可能是意外地执行了 rm *
。大多数用户在使用 rm
命令时不使用 -i
选项,因此会立即删除文件。tcsh 定义了一个 shell 变量 rmstar
;如果打开这个变量,在用户执行操作时会显示提示,要求用户确认操作。但是,如果用户在命令提示下运行 rm –f *
,就不会出现确认提示。清单 2 演示 rmstar
的用法。
清单 2. 使用 rmstar shell 变量
arpan@tintin# pwd |
造成混乱的另一个典型场景是意外地覆盖现有的文件。为了防止发生这种情况,应该一直打开 shell 变量 noclobber
。(这个变量在 csh shell 中也可用)。注意,这只能防止把输出重定向到现有文件;如果使用 cp
或 mv
覆盖文件,这个变量没有任何帮助。见清单 3。
清单 3. 使用 noclobber 防止意外覆盖文件
本文转自IBM Developerworks中国