王波
shell设置
命令解释程序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的模板。
# ls /usr/share/skel
dot.cshrc dot.mail_aliases dot.rhosts
dot.login dot.mailrc dot.shrc
dot.login_conf dot.profile
在/usr/share/skel中为用户设置的缺省配置文件,在用户生成之后,就不会对用户产生影响了。因 此对系统登录文件进行修改更有效和直接。对于sh风格的用户,可以更改/etc/profile文件,对csh应更改 /etc/csh.cshrc文件。在这些文件中可以改动shell使用的环境变量,这样来改变shell的行为方式 ,或者执行一系列自动操作,完成一些用户登录时需要自动执行的任务。