初始化文件(initialization)
登录文件(login file):每次登录时自动执行的命令
环境文件(environment file):新shell中自动执行的命令
注销文件(logout file):注销时自动运行的命令
文件名称
shell |
登录文件 |
环境文件 |
注销文件 |
Bash(默认) |
.bash_profile/.bash_login |
.bash_rc |
.bash_logout |
Bash(POSIX) |
.profile |
$ENV |
.bash_logout |
Tcsh |
.login |
.tcshrc/.cshrc |
.logout |
POSIX标准要求shell应该支持登录文件和环境文件,但是没有必要支持注销文件。登录文件的名称应该是.profile。但是为了保持灵活性,环境文件的名称没有固定,而是采取在名为ENV的环境变量中存放环境文件的名称的方法。
以POSIX模式运行Bash,Bash –posix
vi —— .exrc
rc文件 runcommand (CTSS,MIT,1963)
基于GUI:kedit、gedit
基于文本:Nano(Pico)
交互式shell的两种
(1)虚拟控制台(登录shell)和终端窗口(非登录shell)
(2)启动的新shell(非登录shell)
(3)使用SSH(登录shell)
两条通用原则:
(1)登录shell执行登录文件和环境文件
(2)非登录shell只执行环境文件
Bash(默认模式)
l 登录shell:.bash_profile
l 非登录shell:.bashrc
Bash(POSIX模式)
l 登录shell:.profile
l 非登录shell:$ENV
只有Bash的登录shell执行登录文件,而不执行环境文件。这意味着Bash用户为了强制执行环境文件。必须在登录文件中放置一条特殊的命令。
C-shell家族,登录shell先执行环境文件。
Masheyshell添加.profile
Bill Joy通过两个文件替代一个文件。第一个文件是.cshrc,每次有新shell启动时都运行。第二个文件是.login,只在登录shell启动时运行。.login在.csdhrc之后执行才有意义,因为他的工作就是运行那些在登录时需要的额外命令。
Korn让用户自己选择环境文件的名称,即将ENV变量设置成环境文件的名称。
登录文件有两项任务:设置环境及初始化工作会话。登录文件中应包含下述命令:(1)创建或修改环境变量的命令;(2)执行所有一次性操作的命令。在环境文件中设置环境变量并没有意义,环境文件中设置的变量在新shell启动时将被复位。环境文件有一项特殊的任务:设置不能在环境中保存的自定义项,特别是shell选项、别名和函数。
|
环境文件示例
#======================================================= #Bourne Shell family : Sample environment file #======================================================== #1.Shell options set –o ignoreeof set –o emacs set –o noclobbers #2.Aliases alias la=’ls -a’ alias ll=’ls -l’ #3.Functions