Linux配置:环境变量
accttodo 12/31/2023 Linux
目录
参考:
# Linux配置:环境变量
# /etc/profile 和 ~/.bash_profile区别
- /etc/profile
为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效。当被修改时,重启或使用命令 source /etc/profile
才会生效。
- ~/.bash_profile
为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次。默认情况下,它用于设置环境变量,并执行当前用户的 .bashrc 文件。理念类似于 /etc/profile,只不过只对当前用户有效,需要重启或使用命令 source ~/.bash_profile
才能生效。(注意:Centos7系统命名为.bash_profile,其他系统可能是.bash_login或.profile。)
备注: /etc/profile > ~/ .bash_profile > ~/.bashrc 是按照这个顺序加载环境的,后面的会覆盖前面的。
在Unix和Linux系统中,/etc/profile
、~/.bash_profile
和 ~/.bashrc
是与bash shell初始化相关的配置文件。这些文件在用户登录或启动新的bash shell时会被读取和执行,用于设置环境变量、启动程序或执行其他初始化任务。下面是这些文件的简要说明:
/etc/profile
:
- 这是一个系统级别的配置文件,位于
/etc
目录下,对所有用户都有效。 - 当用户登录时(无论是图形界面登录还是通过SSH远程登录),
/etc/profile
都会被读取并执行。 - 通常,
/etc/profile
会设置一些系统级别的环境变量,并调用其他初始化脚本(例如/etc/profile.d/
目录下的脚本)。
- 这是一个系统级别的配置文件,位于
/.bash_profile 或 /.profile
:
- 这是一个用户级别的配置文件,位于用户的主目录下(
~
代表用户的主目录)。 - 当用户登录时(非图形界面登录,例如SSH登录或终端登录),bash shell会首先尝试读取
~/.bash_profile
。如果该文件不存在,bash shell会尝试读取~/.profile
。 ~/.bash_profile
通常用于设置用户级别的环境变量或启动程序。例如,用户可以在这里添加自定义的PATH路径或设置其他环境变量。- 在某些Linux发行版中(如Ubuntu),如果
~/.bash_profile
不存在,bash shell会默认读取~/.profile
。
- 这是一个用户级别的配置文件,位于用户的主目录下(
~/.bashrc
:
- 这也是一个用户级别的配置文件,位于用户的主目录下。
- 与
~/.bash_profile
不同的是,~/.bashrc
会在每次启动新的bash shell(无论是登录还是非登录shell)时都被读取和执行。 ~/.bashrc
通常用于设置与bash shell交互相关的别名、函数或环境变量。例如,用户可以在这里定义自定义的命令别名或设置命令行提示符的格式。- 在某些情况下,
~/.bash_profile
或~/.profile
会调用~/.bashrc
,以确保用户级别的设置在所有类型的shell中都能生效。
总结:
/etc/profile
是系统级别的配置文件,对所有用户都有效,并在用户登录时读取。~/.bash_profile
或~/.profile
是用户级别的配置文件,在用户登录时读取(非图形界面登录)。它们用于设置用户级别的环境变量或启动程序。~/.bashrc
也是用户级别的配置文件,在每次启动新的bash shell时读取。它用于设置与bash shell交互相关的别名、函数或环境变量。