TCSH环境的设定
时间:2009-01-13 来源:piaopiao131
Unix的Shell有两大主流,一位Bourne shell: /bin/sh 一为csh: /bin/csh. 此二shells已老迈,但极具权威,并分别繁衍不少后代。但sh的子孙比较多,如ksh,zsh,bash,皆很活跃,bash是Linux上的标准shell。而csh之后似乎只有tcsh较著名。名著"Life with UNIX"作者Don Libes提起说,"有很多人两类shell都用,用sh写script,用csh做interactive shell" "csh号称模仿C语言,可是写script的人[他们当然大都是C的行家],往往觉的还是sh好用。"
tcsh是csh的superset,有tcsh可用,当然改用tcsh.如果是习惯sh的人,可以改用GNU的好东西Bash(Bourne again shell).完全不用任何设定就有doskey那种功能了,还有种种奇妙功能,言之不尽啊。
关于TCSH的环境设定:
在tcsh底下,有一个成为source的内建指令,提供使用者利用已编好的档案内容作为指令输入。利用这个功能,我们可将许多大量但时常使用到的一群指令编入一个文件,然后执行它们。
注意: 这个功能并不同于shell script的执行,因为一般的shell script通常会开启另一个shell的process,所以shell script的执行并不会影响到目前的环境。然而source不同,它相当于使用者在指令列上键入一连串的指令,因此它在结束后所有的环境变量均会留在目前使用者所执行的shell上面。通常我们用shell script来执行大批的程式,而利用source资料檔来完成我们对自己使用环境的设定。
当你login的时候,系统会自动产生一个tcsh的process,然后执行以下四个初始设定文档:
/etc/csh.cshrc
/etc/csh.login
$HOME/.tcshrc (若不存在则执行$HOME/.cshrc)
$HOME/.login
其中HOME是一个环境变量,是用户的目录。若在以上的任何档案中更改了HOME的值,tcsh也会根据所改变的HOME
所要执行的文档,如.tcsh中有一段:
set home = home/$HOSTTYPE
set env HOME $home
cd $HOME
则会把user的HOME由$HOME 改成 $HOME/$HOSTTYPE. 以user jjtseng为例,在他login的时候,HOME是/u/gcp/82/8217529,而当他在sun4的机器login是,会先执行
/etc/csh.cshrc
/etc/csh.login
/u/gcp/82/8217529/.tcshrc
然后在/u/gcp/82/8217529中由于HOME被改成/u/gcp/82/8217529/sun4,当/u/gcp/82/8217529/.tcshrc执行结束时,此时他的当时目录变成:
/u/gcp/82/8217529/sun4
然后才执行/u/gcp/82/8217529/sun4/.login的内容.
最后,当使用者离开系统(logout)时,系统会再执行$HOME/.logout作为离线前处理之用。
相关阅读 更多 +