2013年(65)
分类: LINUX
2013-02-28 11:53:06
原文地址:.bash_profile 和 .bashrc 区别 作者:zzjlzx
安装Oracle 11gRAC 的时候,文档上配置的是.bashrc参数。之前配置的都是.bash_profile 参数。
从网上搜索了一下,他们的区别。 如下:
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次! 默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的。
通常二者设置大致相同,所以通常前者会调用后者。
2.5.1 Initialization Files
Contents
The operating system uses a number of variables which are
essential to make programs run. These so called environment
variables modify the way how the shell behaves. For each
shell there is a number of initialization files, which keep variables
and their values. In the following we go through initialization files
for BASH shell.
2.5.1.1 .bashrc
Contents
The .bashrc is a hidden file which resides in user's home directory and in which environment variables and aliases are kept. It determines the behavior of interactive shells. In .bashrc file we place any shell commands that we want executed every time we start up a new shell.
The content of .bashrc may be something like the following:
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
Fi
# User specific environment and startup programs
PATH=$PATH:$ORACLE_HOME/bin:/usr/local/java/bin
CDPATH=$CDPATH:/playgnd/mg/scripts:/~/Scripts
BASH_ENV=$HOME/.bashrc
USERNAME=Ghodrat
HISTSIZE=100
export BASH_ENV USERNAME
#The following setting prohibits file overwriting
set -o noclobber
#The following setting ignores ctrl+ d and does not
#end the session
set -o ignoreeof
#The following setting let's special characters work as
#expected
set +o noglob
## some usefull aliases
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias ls='ls -F'
2.5.1.2 .bash_profile File
Contents
The .bash_profile is a hidden file which resides in user's home directory and defines our processing environment when we login. The .bash_profile is executed when we login and, among other details, establishes such things as home directory, search path, etc. The content of .bash_profile may look like the following:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs echo "Running .bash_profile..." date
2.5.1.2 .bash_logout File
Contents
The .bash_logout file is a hidden file which resides in user'shome directory and is executed when logging out of a linux system running the BASH shell . This file is usually very short, and contains commands users want to execute upon leaving the account. The most popular is the clear command, which clears the screen.
#Running ~/.bash_logout
echo "Running .bash_logout..."
#USERNAME must have been defined as an environment variable
echo Bye $USERNAME