命令解释程序shell是与用户关系最密切的应用程序,用户主要通过shell使用系统。
在每次登录系统之后,就启动了一个与用户交互的shell,这个shell将给出一个提示符等待用户输入,(sh为“$,csh为“%,如果是使用root用户,登录提示符将是“#),然后对用户的输入进行解释执行。
FreeBSD的基本系统中可以使用的shell有两个:sh和csh。这两个基本shell的风格不太相同,不同的使用者常常会根据喜好来在两者之间进行选择。当然当前有更好的shell程序可供使用者选择,这些后续的shell均是根据sh或csh的风格进一步发展出的,因此可以说在shell中,也有两种风格,需要使用者根据自己的使用习惯进行选择。
对于管理员来将,要为使用不同shell的用户都设置好基本的环境,就必须了解这两种风格的shell设置方式。系统登录时,sh将首先执行/etc/profile文件,为每个用户设置最基本的环境,而csh将使用/etc/csh.cshrc,csh.login和csh.logout作为系统csh资源文件。执行了系统级别的登录文件之后,每个用户的shell就在该用户的主目录下寻找该用户个人的资源文件:sh使用.profile文件,csh使用.login和.cshrc文件。这些资源文件均使用相应的shell语言,/etc/profile和个人目录下的.profile使用sh风格的控制语言,/etc/cshrc和个人目录下的.login、.cshrc使用csh风格的控制语言。系统管理员可以改动这些资源文件,为用户提供一个最方便的使用环境。当然,系统管理员没有必要直接去修改个人主目录下的资源文件,这些文件应该由用户自己管理,但是系统管理员可以在生成帐号时为用户产生缺省的资源文件,以减轻用户设置资源文件的麻烦。adduser命令缺省使用/usr/share/skel下的文件为用户提供各种资源文件的缺省设置,这个目录下除了可以放入shell的资源文件之外,还可以放入其他应用程序的资源文件。由于这些资源文件都是以点开头的隐藏文件,为了表示清楚,在skel目录下使用了一种转换方式,如使用dot.profile作为.profile的模板。
标签: