第14章 使用shell:初始化文件
14.1 初始化文件和注销文件
初始化文件(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 |
14.2 初始化文件和注销文件的名称
POSIX标准要求shell应该支持登录文件和环境文件,但是没有必要支持注销文件。登录文件的名称应该是.profile。但是为了保持灵活性,环境文件的名称没有固定,而是采取在名为ENV的环境变量中存放环境文件的名称的方法。
以POSIX模式运行Bash,Bash –posix
14.3 点文件和rc文件
vi —— .exrc
rc文件 runcommand (CTSS,MIT,1963)
14.4 使用简单的文本编辑器
基于GUI:kedit、gedit
基于文本:Nano(Pico)
14.5 登录shell和非登录shell
交互式shell的两种
(1)虚拟控制台(登录shell)和终端窗口(非登录shell)
(2)启动的新shell(非登录shell)
(3)使用SSH(登录shell)
14.6 何时执行初始化文件
两条通用原则:
(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先执行环境文件。
14.7 shell初始化文件的历史简介
Masheyshell添加.profile
Bill Joy通过两个文件替代一个文件。第一个文件是.cshrc,每次有新shell启动时都运行。第二个文件是.login,只在登录shell启动时运行。.login在.csdhrc之后执行才有意义,因为他的工作就是运行那些在登录时需要的额外命令。
Korn让用户自己选择环境文件的名称,即将ENV变量设置成环境文件的名称。
14.8 初始化文件中放置什么内容
登录文件有两项任务:设置环境及初始化工作会话。登录文件中应包含下述命令:(1)创建或修改环境变量的命令;(2)执行所有一次性操作的命令。在环境文件中设置环境变量并没有意义,环境文件中设置的变量在新shell启动时将被复位。环境文件有一项特殊的任务:设置不能在环境中保存的自定义项,特别是shell选项、别名和函数。
14.9 显示、创建及编辑初始化文件
|
14.10 shell脚本注释
14.11 Bourne 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