Unix & Linux基础笔记(5)

第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   显示、创建及编辑初始化文件

#============================================================
#Bourne Shell family: Samlpe login file
#============================================================
#1.Environment variables
 
#2.Shell prompt – Bash
export PS1=”(\w) `bashname${SHELL}`[\!]$”
export PAGER=less
#3.File creation mask
unmask 007
 
#4.Terminal settings(for remote host only)
sty erase ^H
 
#5.Display welcome message
echo “welcome!”
 
#6.Syatem information
echo “Last three logins:”;last `logname` | head -3
echo
 
#7.Environment file – Bash
if [-f ${HOME}/.bashrc]
then source ${HOME}/.bashrc
fi
 
#8.Logout file – Korn Shell
trap ‘.${HOME}/.logout;exit’ EXIT

 

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


14.12  C-shell家族:初始化文件示例


你可能感兴趣的:(linux,unix,基础)