TCSH shell的三个初始化文件分别为:.login .tcshrc .logout。
.login文件是每次注册时执行的注册初始化文(注册指的是用户登录系统的动作,其反义为注销)。
.tcshrc文件是每次进入TCSH shell时执行的shell初始化文件, 该文件在注册时执行或用tcsh命令直接从另一个shell进入TCSH shell时执行,每次注消时执行.logout文件。
下面分别来介绍。
1、 .login
TCSH shell有自己注册初始化login,该文件用于配置用户shell的shell命令和特殊变量定义。
.login文件相当于BASH和ZSH shell中使用的.profile文件。
.login文件包含setenv命令,给TERM之类的特殊环境变量赋值,可以用任何标准的编辑器编辑它,改变这些值,也可添加新的值。
注意:在TCSH shell中,为环境变量赋值的命令是setenv,如:
定义EXINIT变量并设置vi编辑器行计数和自动缩排的功能.
当编辑.login文件时要十分小心,编辑之前做好备份.login文件。
如果更改 了.login文件,想让这些变化在当前注册期间生效,需要使用source命令重新执行该文件,source命令实际上可执行任何初始化文件,其中包括.tcshrc文件和.logout文件,如:
2、 .tcshrc
每当进入TCSH shell或产生任何子shell时,就执行.tcshrc初始化文件,如果TCSH shell是用户注册的shell,那么当用户注册时, .tcshrc文件和.login文件一起运行,如果从另外一个shell进入TCSH shell, .tcshrc文件被自动执行,文件中包含的变量和别名被定义。
实际上,每当产生一个shell时,如运行shell脚本,就执行.tcshrc文件,也就是说,每当创建一个shell时,就执行.tcshrc文件, 这允许在.tcshrc中定义局部变量,在某种意义上说,局部变量可以进入任何子shell,即时像history这样的用户定义的变量也是局部变量,但 要为每个产生的子shell定义特殊变量,这样,为每个子shell变量设置history,但是,每个子shell都有自己的局部history变量, 用户甚至可在不影响其他子shell的变量的情况下改变一个子shell的局部history变量,在shell初始化文件中定义特殊变量可以看做是 BASH shell导出变量,在BASH shell和ZSH shell中的导出变量只把自己的拷贝传送给子shell,改变拷贝不会影响原始定义。
.tchsrc文件也可包含别名变量和用于打开shell特征的特征变量,别名变量和特征变量是局部变量,限定于shell内部.但是.tcshrc文件在每个shell中都将定义这些变量.因此, .tcshrc文件通常保存各种命令定义的别名,如:
.tcshrc
与环境变量不同,局部变量用set命令定义,在.tcshrc文件中的局部变量应该使用set命令定义,用setenv命令定义的环境变量是放 在.login文件中的,请记住:当改变path或cdpath的路径名时,数组中包含这些路径名,数组中的每个元素要用空格分开,如果添加新的路径名 时,必须保证用空格把它和其他的路径名分开。
如果已经改变了.tcshrc文件,希望这些变化在当前注册中立即生效,别忘了用source命令重复执 行.tcshrc文件。
3、 .logout
.logout文件也是初始化文件,只不过它在注消时执行,用户可以设置.logout文件以使其完成任何在注消时想要完成的操作,文件中没有定义变量,常包括关闭进程的shell命令.可以向.logout文件中添加自己的shell命令,如:
.logout