Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3930817
  • 博文数量: 421
  • 博客积分: 685
  • 博客等级: 上将
  • 技术积分: 3670
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-18 14:20
文章分类

全部博文(421)

文章存档

2012年(5)

2011年(52)

2010年(83)

2009年(67)

2008年(65)

2007年(149)

分类:

2010-03-10 08:31:11

TCSH shell有3个初始化文件: .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,如:


%setenv EXINIT 'set nu ai'

定义EXINIT变量并设置vi编辑器行计数和自动缩排的功能.

当编辑.login文件时要十分小心,不经意的编辑可能造成错误的变量设置或者根本没有设置变量,因此,编辑之前最好备份.login文件.如果更改 了.login文件,想让这些变化在当前注册期间生效,需要使用source命令重新执行该文件,source命令实际上可执行任何初始化文件,其中包 括.tcshrc文件和.logout文件,如:


%source .login


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 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的路径名时,数组中包含这些路径名,数组中的每个元素要用空格分开,如果添加新的路径名 时,必须保证用空格把它和其他的路径名分开.如果已经改变了.tcshrc文件,希望这些变化在当前注册中立即生效,别忘了用source命令重复执 行.tcshrc文件。


3、 .logout


.logout文件也是初始化文件,只不过它在注消时执行,用户可以设置.logout文件以使其完成任何在注消时想要完成的操作,文件中没有定义变量,常包括关闭进程的shell命令.可以向.logout文件中添加自己的shell命令,如:

.logout


#
clear
echo "Good-bey..."
阅读(2950) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~