[转]FreeBSD 下 CSH(TCSH) 用户配置文件的运行顺序

今天做了个小测试,看看CSH在登录登出的过程中配置文件的运行顺序是什么样子的。由于已经看过了CSH的Manual,心里已经有了底,就是想再 验证一下。具体方案是这样的,我在所有的配置文件中加入一行输出一段文本标记本文件名和当前时间的字符串到指定一个文件中,然后就可以观察具体的顺序了。

首先系统默认的配置文件有:

1/etc/csh.cshrc
2/etc/csh.login
3/etc/csh.logout
4~/.cshrc
5~/.login
6~/.logout

当Shell作为登录 Shell 时,如:用户登录系统(Login-Shell),配置文件的运行顺序为:

1/etc/csh.cshrc
2/etc/csh.login
3~/.cshrc
4~/.login

当用户退出时,配置文件运行顺序为:

1/etc/csh.logout
2~/.logout

当Shell 作为非登录Shell时,如:运行Shell脚本文件(也称为Sub-Shell),配置文件的运行顺序为:

1/etc/csh.cshrc
2~/.cshrc

这是,只运行cshrc脚本,而不再运行login脚本。
当结束Sub-Shell时,配置文件运行顺序为:

1/etc/csh.logout
2~/.logout

同时测试了一下:不管是通过 logout,exit 命令进行登录,还是直接运行reboot,halt 命令重启机器,或者通过远程如SSH登录后直接关掉会话,CSH都会执行logou的脚本。

由于历史原因,较早版本的 FreeBSD root 用户的home在/,所以现在还保留着/下的用户Shell配置文件。配置文件都以硬连接的方式存在的。


原文链接:

http://www.gdove.com/312.html

posted on 2011-04-25 09:49  ^希望^  阅读(1773)  评论(0编辑  收藏  举报

导航