.bash_profile and .bashrc

本文详细介绍了Linux系统中Shell配置文件的作用及调用关系,包括/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc等,阐述了这些文件如何设置环境变量及shell行为。

/etc/profile

为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置,etc/profile中设定的变量的可以作用于任何用户,而~/.bashrc等中设定的变量只能继承/etc/profile中的变量。

/etc/bashrc

为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。

~/.bash_profile

用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件被执行一次。它设置一些环境变量,执行用户的.bashrc文件。

~/.bashrc

该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。

~/.bash_logout

当每次退出bash shell时,执行该文件。

~/.bash_history

记录历史输入命令

我的系统中的相关文件如下所示,调用关系也很清楚。

# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
              PATH=$PATH:$1
else
              PATH=$1:$PATH
           fi
        fi
}
# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then
        EUID=`id -u`
        UID=`id -ru`
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
fi
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
if [ -x /usr/bin/id ]; then
        USER="`id -un`"
        LOGNAME=$USER
        MAIL="/var/spool/mail/$USER"
fi
JAVA_HOME=`/usr/java/jdk1.6.0_14`
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi
export PATH USER JAVA_HOME LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
    fi
done
unset i
unset pathmunge

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
JAVA_HOME=/usr/java/jdk1.6.0_14
export JAVA_HOME
PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME="root"
export USERNAME BASH_ENV PATH
export LC_ALL=zh_CN.gb2312
export LANG=zh_CN.gb2312
export LANGUAGE=zh_CN.2312
unset USERNAME

vi .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
Fi

# ~/.bash_logout
clear

### 回答1: .bash_profile.bashrc是两个文件名,用于定制Bash shell的行为和环境。它们通常用于Unix-like系统,如Linux和Mac OS。 .bash_profile是用户的个人配置文件,它位于用户的主目录下。当用户登录时,Bash shell会先读取.bash_profile文件,并执行其中的命令。用户可以在这个文件中设置环境变量、别名、函数等个性化配置。例如,用户可以在.bash_profile中添加export命令来设置环境变量,以便在每次登录时自动定义一些变量。 .bashrcBash shell的运行配置文件,它位于用户的主目录下或者全局配置文件夹中。当用户在已经登录的终端窗口打开新的Bash shell时,Bash shell会读取并执行.bashrc文件中的命令。用户可以在这个文件中定义自己喜欢的别名、函数、命令行选项等配置。例如,用户可以在.bashrc中定义一个别名,使得输入这个别名时会执行一条长而常用的命令。 .bash_profile.bashrc的区别在于执行的时机。.bash_profile只在用户登录时执行一次,而.bashrc在每次打开新的Bash shell时执行。这样设计的目的是为了避免在每次打开新的终端窗口时都执行一次较慢的命令。 总之,.bash_profile.bashrc是用于配置Bash shell行为和环境的文件,它们的作用是定制化用户的命令行体验,使得用户可以根据自己的需求进行个性化配置。 ### 回答2: .bash_profile.bashrc 都是与 Bash(Unix 和 Linux 操作系统的默认 Shell)相关的配置文件。虽然它们的作用有些重叠,但也有一些区别。 .bash_profile 是用户登录时 Bash 首先加载的文件。它主要用于个人用户特定的登录配置。在这个文件中,我们可以定义一些用户特定的环境变量、别名和函数等配置。这些配置会在用户登录时生效,但在新的终端窗口或会话中并不会重新加载。 .bashrc 是每个新的终端窗口或会话启动时加载的文件。它主要用于每个 Shell 实例通用的配置。在这个文件中,可以定义一些通用的环境变量、别名和函数等配置。这些配置会在每次新的终端窗口或会话启动时生效。 .bash_profile 的加载是在登录时进行的,而 .bashrc 的加载是在每个新的终端窗口或会话启动时进行的。所以,.bash_profile 主要用于用户登录时的个人配置,而 .bashrc 则用于每个新的终端窗口或会话的通用配置。 当我们需要配置一些只与用户登录有关的设置时,我们应该将这些设置放在 .bash_profile 中。而当我们需要配置一些与 Shell 实例无关的通用设置时,我们应该将这些设置放在 .bashrc 中,以保证每个终端窗口或会话启动时都能生效。 总结起来,.bash_profile 是用户登录时 Bash 加载的个人配置文件,而 .bashrc 是每个新的终端窗口或会话启动时加载的通用配置文件。通过合理使用这两个文件,我们可以根据需要定制自己的 Shell 环境。 ### 回答3: .bash_profile.bashrc是两个与Shell相关的常用配置文件。 .bash_profile是用户登录到系统时,Shell会首先加载和执行的配置文件。它通常用于设置用户的个性化环境变量、加载自定义函数和别名等操作。比如,可以在.bash_profile中定义PATH变量,指定用户首选的路径顺序,还可以加载个人的shell函数、别名和自定义命令等。 .bashrc是每次打开新的终端窗口时都会加载和执行的配置文件。它通常用于设置用户习惯的Shell环境,比如定义用户喜欢的别名、快捷键、自定义提示符等。.bashrc通常会被.bash_profile首先加载,所以在.bash_profile中可以通过source命令引入.bashrc,以确保两个配置文件的设置都能生效。 这两个配置文件的区别在于加载的时机和作用范围。.bash_profile只在用户登录时加载一次,因此它适合于一些只需要设置一次的环境变量和加载自定义函数等操作。而.bashrc在每次打开新的终端窗口时都会加载,所以适合用于定制Shell环境和设置一些与特定终端会话相关的配置。 当用户登录到系统时,Shell会首先加载.bash_profile文件,然后再加载.bashrc文件,以确保用户个性化设置和习惯的Shell环境能够正确生效。通过正确配置这两个文件,用户可以实现自定义的Shell环境,提高工作效率和使用舒适度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值