Linux配置:环境变量

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时会被读取和执行,用于设置环境变量、启动程序或执行其他初始化任务。下面是这些文件的简要说明:

  1. /etc/profile

    :

    • 这是一个系统级别的配置文件,位于/etc目录下,对所有用户都有效。
    • 当用户登录时(无论是图形界面登录还是通过SSH远程登录),/etc/profile都会被读取并执行。
    • 通常,/etc/profile会设置一些系统级别的环境变量,并调用其他初始化脚本(例如/etc/profile.d/目录下的脚本)。
  2. /.bash_profile 或 /.profile

    :

    • 这是一个用户级别的配置文件,位于用户的主目录下(~代表用户的主目录)。
    • 当用户登录时(非图形界面登录,例如SSH登录或终端登录),bash shell会首先尝试读取~/.bash_profile。如果该文件不存在,bash shell会尝试读取~/.profile
    • ~/.bash_profile通常用于设置用户级别的环境变量或启动程序。例如,用户可以在这里添加自定义的PATH路径或设置其他环境变量。
    • 在某些Linux发行版中(如Ubuntu),如果~/.bash_profile不存在,bash shell会默认读取~/.profile
  3. ~/.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交互相关的别名、函数或环境变量。
上次更新时间: 9/25/2024, 1:19:15 AM