LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 18559|回复: 5

.bash_profile和.bashrc有什么区别?[附:几个bash配置文件的说明]

[复制链接]
发表于 2003-12-25 21:38:00 | 显示全部楼层 |阅读模式
偶知道.bash_profile的作用,但是不清楚.bashrc有何作用?
它们之间又有什么联系?
发表于 2003-12-25 22:15:41 | 显示全部楼层
一个是针对全局配置文件,一个针对某一个用户的配置文件!一个系统的profile文件是相同的,而多个用户的.bashrc不一定相同!
发表于 2003-12-26 12:00:37 | 显示全部楼层

几个bash配置文件的说明:
/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中的变量,他们是"父子"关系.
欢迎讨论~~
发表于 2003-12-28 12:16:36 | 显示全部楼层
~/.bash_profile 是交互式、login 方式进入 bash 运行的
~/.bashrc 是交互式 non-login 方式进入 bash 运行的
通常二者设置大致相同,所以通常前者会调用后者。
发表于 2004-11-25 03:30:30 | 显示全部楼层
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=$PATHORACLE_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
发表于 2005-6-27 14:06:35 | 显示全部楼层
想问一下
是谁先开始启动bash的
因为我在做linux-cd时
别的都做好了
但当去到(none)login:
时,无论我输入什么
都进不了系统
我听说是getty先启动login,之后login 启动bash的
不知是否对
望指教
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表