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

.bash_profile和.bashrc区别

2013-09-05 21:14 246 查看
转载自:http://blog.csdn.net/tianlesoftware/article/details/5986506

安装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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: