Linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的作用及区别
该文件通常包含一些全局变量和环境变量的设置,通常用于定义当前用户的个性化环境变量、别名等。
- 本文目录导读:
- 1、/etc/profile
- 2、/etc/bashrc
- 3、~/.bash_profile
- 4、~/.bashrc
- 5、区别和总结
在 Linux 系统中,有几个文件非常重要,它们分别是 /etc/profile、/etc/bashrc、~/.bash_profile 和 ~/.bashrc。这些文件都与 Bash Shell 有关,下面将详细介绍它们的作用及区别。
/etc/profile
/etc/profile 是系统级别的 Bash 配置文件,它对所有用户生效。当用户登录系统时,会首先执行该文件中的命令。该文件通常包含一些全局变量和环境变量的设置,并且可以在其中定义一些全局函数和别名等。
例如,在 /etc/profile 中添加以下内容:
“`
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
这样就可以设置系统级别的 Java 环境变量了。
/etc/bashrc
与 /etc/profile 类似,/etc/bashrc 也是一个系统级别的 Bash 配置文件,在每个新开启的交互式 Bash Shell 中都会被读取并执行。不同之处在于 /etc/bashrc 主要用于定义全局性质的 Bash 函数和别名等。
例如,在 /etc/bashrc 中添加以下内容:
alias ll=’ls -alF’
alias grep=’grep –color=auto’
这样就可以给所有用户设置一个 ll 命令来显示当前目录下所有内容,并且让 grep 命令支持颜色输出。
~/.bash_profile
~/.bash_profile 是用户级别的 Bash 配置文件,它只对当前用户生效。当用户登录时,该文件会被读取并执行。通常用于定义当前用户的个性化环境变量、别名等。
例如,在 ~/.bash_profile 中添加以下内容:
![Linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的作用及区别缩略图 Linux 下/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的作用及区别](https://www.72715.net/wp-content/uploads/2023/05/84627147b1978dfe7d4e69b8fd5abe84.png)
export PATH=$HOME/bin:$PATH
alias rm=’rm -i’
这样就可以将 ~/bin 目录添加到系统 PATH 环境变量中,并且让 rm 命令始终提示确认删除。
~/.bashrc
与 ~/.bash_profile 类似,~/.bashrc 也是一个用户级别的 Bash 配置文件,但它不是在登录时被执行,而是在每次打开新的 Shell 时被读取并执行。主要用于定义一些个性化命令和函数等。
例如,在 ~/.bashrc 中添加以下内容:
alias c=’clear’
function lsd() {
ls -d */
}
这样就可以给自己设置一个 c 命令来清空屏幕,并且定义了一个 lsd 函数来列出所有目录(不包括子目录)。
区别和总结
– /etc/profile 和 /etc/bashrc 是系统级别的配置文件,/etc/profile 在登录时执行一次,/etc/bashrc 在每个新开启的交互式 Bash Shell 中都会被读取并执行。
– ~/.bash_profile 和 ~/.bashrc 是用户级别的配置文件,~/.bash_profile 在登录时执行一次,~/.bashrc 在每次打开新的 Shell 时都会被读取并执行。
– /etc/profile 和 ~/.bash_profile 主要用于定义全局性质的环境变量和函数等,/etc/bashrc 和 ~/.bashrc 主要用于定义个性化命令和函数等。
综上所述,在 Linux 系统中,这几个 Bash 配置文件各有其作用。系统管理员可以通过修改 /etc/profile 和 /etc/bashrc 文件来为所有用户设置全局变量、环境变量和函数等;而用户可以通过修改自己的 ~/.bash_profile 和 ~/.bashrc 文件来定义个性化命令、别名和函数等。这些配置文件让我们能够更好地掌控自己的工作环境,并提高效率。
最后附上本篇文章的 TAGS:Linux、Bash、Shell、配置文件、环境变量