Linux(Shell)环境变量配置文件有哪些?
- 系统级环境变量是指每一个登录到系统的用户都能够读取到系统级的环境变量。
- 用户级环境变量是指每一个登录到系统的用户只能够读取属于自己的用户级的环境变量。
Linux系统级环境变量配置文件
1) /etc/profile文件
当用户登录 Linux 系统即 Login Shell 启动时,首先需要执行的启动脚本就是 /etc/profile 文件。一些比较重要的变量都是在此脚本文件中设置,例如:注意,只有在 Login Shell 启动时才会运行 /etc/profile 脚本文件,Non-login Shell 则不会调用这个脚本文件。
- PATH:预设可执行文件或命令的搜索路径。
- USER:用户登录时使用的用户名。
- LOGNAME:其值为$USER。
- HOSTNAME:所使用的主机名。
- MAIL:存放用户电子邮件的邮箱,其实是ASCII码文件。
- HISTSIZE:历史记录的行数。
本教程中所使用的 Linux 系统上,/etc/profile 文件中的部分系统环境变量如下所示:注意,在 /etc/profile 文件中设置的变量是全局变量。
[root@bogon ~]# cat /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
......
- 添加环境变量。可以在profile文件的最后直接添加环境变量,但在profile文件添加或修改的内容需要注销系统才能生效。
- 重复定义变量。在peofile文件中默认对PATH变量都有设置,而新添加的环境变量一般都会加在profile文件的最后,因此相同名字的环境变量,后添加的最先起到作用。
- 特殊字符。“:”表示并列含义,例如a的变量值有多个,可以使用“:”符号进行分隔。“.”表示操作的当前目录。
- 使用 env 命令显示所有的环境变量。在Linux系统中,使用以下命令可以使配置文件立刻生效。
[root@bogon ~]# source /etc/profile
[root@bogon ~]# echo $PATH
2) /etc/bashrc文件
/etc/bashrc 为每一个运行 Bash Shell 的用户执行此文件。当 Bash Shell 被打开时,该文件将被读取。Bash Shell 有不同的类别,不同的类别所使用的环境变量配置文件也有所不同。一般情况下,非登录 Shell 不会执行任何 profile 文件,非交互 Shell 模式不会执行任何 bashrc 文件:
- 登录 Shell 需要输入用户密码,例如,使用 ssh 登录或者 su - 命令切换用户都会启动 login Shell 模式。
- 非登录 Shell 无须输入用户密码。
- 交互 Shell 提供命令提示符等待用户输入命令的是交互 Shell 模式。
- 非交互 Shell 直接运行脚本文件是非交互 Shell 模式。
3)/etc/environment文件
在系统启动时运行,用于配置与系统运行相关但与用户无关的环境变量,修改该文件配置的环境变量将影响全局。Linux用户级环境变量配置文件
1)~/.bash_profile文件
~/.bash_profile 文件:每个用户都可使用该文件输入只限于自己使用的 Shell 信息,当用户登录时,该文件仅仅执行一次。默认情况下,该文件中可以设置一些环境变量,执行用户的 .bashrc 文件。在 Linux 系统中的 ~/.bash_profile 文件的内容,也可以通过 cat 命令查看,感兴趣的读者可自行查看。
2)~/.bashrc文件
该文件包含专用于用户的 Bash Shell 的 Bash 信息,当登录以及每次打开新的 Shell 时,该文件将被读取。3)~/.profile文件
在 ~/.profile 文件中可以设定用户专有的路径、环境变量等,它只在登录的时候执行一次。4)~/.bash_logout
当每次退出系统(退出 Bash Shell)时,执行该文件。另外,/etc/profile 中设定的全局变量可以作用于任何用户,而 ~/.bashrc 等中设定的局部变量只能继承 /etc/profile 中的变量,他们属于“父子”关系。在登录 Linux 时要执行文件的过程为:登录 Linux 时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、~/.bash_login 或 ~/.profile 文件中的其中一个。如果 ~/.bash_profile 文件存在的话,一般还会执行 ~/.bashrc 文件。注意,~/.bash_profile 是交互式、login 方式进入 Bash 运行的;~/.bashrc 是交互式、non-login 方式进入 Bash 运行。通常二者设置大致相同,所以通常前者会调用后者。
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。