TCSH shell的三个初始化文件分别为:.login .tcshrc .logout。
.login文件是每次注册时执行的注册初始化文(注册指的是用户登录系统的动作,其反义为注销)。 下面分别来介绍。
1、 .login
复制代码代码示例:
%setenv EXINIT 'set nu ai'
定义EXINIT变量并设置vi编辑器行计数和自动缩排的功能.
当编辑.login文件时要十分小心,编辑之前做好备份.login文件。
复制代码代码示例:
%source .login
2、 .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文件通常保存各种命令定义的别名,如:
复制代码代码示例:
#
set shell=/usr/bin/csh set path=$PATH (/bin /usr/bin .) set cdpath=(/home/dirname/filename /home/dirname/files) set prompt="!$pwd>" set history=20 set ignoreeof set noclobber alias rm 'rm -i' alias mv 'mv -i' alias cp 'cp -i'
与环境变量不同,局部变量用set命令定义,在.tcshrc文件中的局部变量应该使用set命令定义,用setenv命令定义的环境变量是放 在.login文件中的,请记住:当改变path或cdpath的路径名时,数组中包含这些路径名,数组中的每个元素要用空格分开,如果添加新的路径名 时,必须保证用空格把它和其他的路径名分开。
3、 .logout
复制代码代码示例:
#
clear echo "Good-bey..." |