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模式运行BashBash –posix

14.3 点文件和rc文件

vi —— .exrc

rc文件
run command (CTSS,MIT,1963)

14.4 使用简单的文本编辑器

基于GUIkeditgedit
基于文本:Nano(Pico)

14.5 登录shell和非登录shell

交互式shell的两种
1. 虚拟控制台(登录shell)和终端窗口(非登录shell
2. 启动的新shell(非登录shell
3. 使用SSH(登录shell

14.6 何时执行初始化文件

两条通用原则:
1. 登录shell执行登录文件和环境文件
2. 非登录shell只执行环境文件

Bash(默认模式)
- 登录shell.bash_profile
- 非登录shell.bashrc

BashPOSIX模式)
- 登录shell.profile
- 非登录shell$ENV

只有Bash的登录shell执行登录文件,而不执行环境文件。这意味着Bash用户为了强制执行环境文件。必须在登录文件中放置一条特殊的命令。
C-shell家族,登录shell先执行环境文件。

14.7 shell初始化文件的历史简介

Mashey shell添加.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: 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

环境文件示例

#=======================================================
#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家族:初始化文件示例

你可能感兴趣的:(Unix&Linux笔记(5))