您的位置:首页 > 运维架构 > Shell

自定义Shell环境

2011-06-01 21:36 148 查看
一、以一般角色工作时

Bash Shell启动配置文件执行顺序。

~/.bash_profile 登录时执行

~/.bashrc 执行新Shell时

~/.bash_logout 注销时

注:~指用户主目录,通常root的主目录是/root,一般帐号在/home/账号



自定义环境的主要目的是让用户登录主机时,能拥有安全及易于执行命令的环境,项目包括:文件操作权限、命令搜索路径、环境变量、命令提示符、别名、个人喜好等



一般会在.bash_profile设定可以一体适用的命令、搜寻路径及环境变量,而把其他大部分的设定放在.bashrc文件中。



以下是一段.bash_profile的设定范例

#设定umask
umask 022
#登录后,执行一次.bashrc
if [ -f ~/.bashrc ]; then
	. ~/.bashrc  #当此文件存在时,在当前Shell进程中执行它
fi
#设定自己专用的程序路径
if [ -d ~/bin ]; then
	PATH=~/bin:$PATH
fi
#设置JDK环境
export J***A_HOME=/opt/jdk/bin
export PATH=$PATH:$J***A_HOME




以下是.bashrc设定范例

#判断是否是互动模式,若不是则不执行
[ -z "$PS1" ] && return
#设定方便使用的程序别名
alias cp='cp -i'
alias la='ls -la --color=auto'
alias ls='ls --color=auto'
#如果系统没有启动bash_completion,可手动启动
if [ -f /etc/bash_completion ]; then
	. /etc/bash_completion
fi
#重复的命令ls、bg、fg、exit、ps等命令,都不存入历史日志中
export HISTIGNORE="&:ls:ls *:[bf]g:exit:ps *"
#设定自己常用的目录,可用cd快速切换
export CDPATH=.:~:~/docs:~/src:~/tmp:/usr/src:/usr/lib






以下是.bash_logout的设定范例

#注销时,清空用户目录下的tmp所有内容
rm -f ~/tmp/*






二、以系统管理员的角色工作时
管理员维护的环境配置文件,主要有3个:
/etc/profile
/etc/bash.bashrc
/etc/skel目录下的所有文件

profile及bash.bashrc的设定会影响所有帐号的使用环境。
在profile中通常会设定:umask、PATH、语言、提示符、别名等。

在bash.bashrc中的第一行代码是:
[ -f /etc/profile ] && . /etc/profile
这表示当执行交互式的Shell会检查/etc/profile是否存在,若存在就执行它。
这就等于让管理员维护一份全局的profile配置文件,因为所有Shell执行时,都会取调用/etc/profile

/etc/skel的作用是,当管理员新建用户时,帐号管理程序会把/etc/skel下的所有文件复制一份作为该用户的启动配置文件来建立标准的环境。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: