Unix 的环境变量 一、SHELL 的功能及分类 SHELL 是 UNIX 作业系统中的'命令编译器'(Command Inter- preter),它基本上是一个常驻的执行程式,它在使用者一签入 成功後就立即被载入(可在签入後以 ps 指令看到),主要功能则 在於接受使用者的指令、寻找命令(即档案)的所在并加以执行。 因此,SHELL 的不同可能直接影响使用者输入指令的方式、档 案寻找的程序及速度等。 UNIX 作业系统的SHELL 大致可分为两大系统,一是 1970 年代 前期由美国贝尔实验室(BELL LAB)所发展的sh(Bou rne Shell), 它是 UNIX 系统中的标准 SHELL,此一系统後来又发展出 ksh(Korne Shell)、bash(Bou rne Again Shell)等功能更多的介面;另一系 统是美国柏克来大学(Berkekey )在 1970 年代後期所发展的csh(C Shell),和它属於同一系统的有 tcsh 等。 无论上述的那一种 shell,它的基本功能与作用都是相同的, 它们之间的不同处可能在於对同一动作处理程序上的不同(会影响 命令处理的速度)、所提供内键命令及变数的或多或寡等,其中内 部命令与变数的多寡直接影响到 shell 功能的多寡,是使用者在使 用时最容易直接感受到的。 在 UNIX 系统中,使用者可视自己的需要执行 sh、ksh、bash、 csh 或 tcsh 来代替原先使用的shell、改变正在使用的环境;也可 以用'chsh'指令、输入想使用的shell 的路径及名称(如/bin/csh, 在 Y11-Y14 机器上还需输入个人使用者的密码),改变以後每次 login 时所使用的shell、使自己所使用的环境能最满足自己使用 上的需要。 二、SHELL 的START FILES 不管你的login shell 是那一种 shell,每一个 shell 都有它 自己的start files,我们设定理想环境时所需使用的指令与设 定的变数,都可以写在这些 start files 中,在 login 时先後加以 执行,这些 start files 的名称分别是: SHELL START FILES sh /etc/profile $HOME/.profile bash /etc/profile $HOME/.profile(or $HOME/.bashrc) csh None $HOME/.cshrc & $HOME/.login tcsh None $HOME/.cshrc(or $HOME/.tcshrc) & $HOME/.login 如果这些档案都存在,那麽它们的执行顺序将是: 1. sh 系列 /etc/profile --> $HOME/.profile 2. csh 系列 $HOME/.cshrc --> $HOME/.login 在这些start files 中,/etc 下的profile 是系统管理者为 大家设定的,一般使用者无法做...