shell启动脚本
时间:2019-04-16 23:59:04 来源:igfitidea点击:
如果要永久地设置bash环境变量,需要将设置添加到用户的主目录中的初始化文件$HOME/.bash_profile
中。
shell脚本的执行顺序
/etc/profile- 它包含Linux系统范围的环境和启动程序。当用户登录到系统时,首先运行这个文件。此文件还充当bash shell的系统级配置文件。
/etc/profile.d- /etc/profile将调用/etc/profile.d/。它是一个目录,/etc/profile使用for循环调用这个目录中的所有脚本。当用户登录时,第二步是执行这个目录下的文件。
~/.bash_profile或者 $HOME/.bash_profile— 最后,用户登录时,这个文件.bash_profile将被调用。而它又调用用户的主目录中的 ~/.bashrc文件。
请注意,每个脚本都可以更改之前调用的脚本中所做的设置。例如,在/etc/profile中设置了PS1,我们可以在/.bash_profile 或者 ~/.bashrc 继续对其进行设置。
使用上面的文件可以定制shell环境。
典型的应用是
- 设置PATH和PS1 (shell提示)变量。
- 通过PRINTER变量设置默认打印机。
- 通过变量设置默认文本编辑器。
- 设置默认的umask(文件模式创建掩码)。
- 通过覆盖来删除不需要的设置,如变量或别名。
- 设置环境。
- 设置别名。
- 设置函数。
设置系统范围的shell选项
默认情况下,/etc/profile文件是shell系统级的文件。
您可以使用这个文件为所有用户进行设置shell环境。
但是,在CentOS / Fedora / Redhat Enterprise Linux下,建议您在/etc/profile.d/目录下创建文件进行设置。其他系统才使用/etc/profile文件。
示例- 为所有用户设置 JAVA_HOME 和 PATH变量
- 创建新文件/etc/profile.d/java.sh
java.sh
#!/bin/bash export JAVA_HOME=/opt/jdk1.5.0_12 export PATH=$PATH:$JAVA_HOME/bin
- 授予可执行权限
chmod +x /etc/profile.d/java.sh
~/.bashrc文件设置示例
如何设置shell环境变量?
# 在历史记录缓冲区中可以存储5000个命令 export HISTSIZE=5000 # 在历史记录文件中可以存储5000个命令 export HISTFILESIZE=5000 # 历史记录中避免重复 export HISTIGNORE='&:[ ]*' # 分页时使用less命令 export PAGER=less # 将vim设置为默认文本编辑器 export EDITOR=vim export VISUAL=vim export SVN_EDITOR="$VISUAL" # Oracle数据库配置 export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server export ORACLE_SID=XE export NLS_LANG=$($ORACLE_HOME/bin/nls_lang.sh) # 设置 JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-6-sun/jre # 添加 ORACLE, JAVA ~/bin bin 等路径到 PATH变量中 export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin:$JAVA_HOME/bin # 使用密钥进行SSH登录 # 这样就不需要再输入密码 /usr/bin/keychain $HOME/.ssh/id_dsa source $HOME/.keychain/$HOSTNAME-sh # 使bash_completion生效 source /etc/bash_completion # MS-DOS / XP cmd等东西 alias edit=$VISUAL alias copy='cp' alias cls='clear' alias del='rm' alias dir='ls' alias md='mkdir' alias move='mv' alias rd='rmdir' alias ren='mv' alias ipconfig='ifconfig' # 其他 Linux 命令 alias bc='bc -l' alias diff='diff -u' # 从 RHN进行更新 alias update='yum -y update' # 设置默认网卡 eth1 alias dnstop='dnstop -l 5 eth1' alias vnstat='vnstat -i eth1' # grep时有颜色提示 alias grep='grep --color' # ls 别名 alias l.='ls -d .* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty'