目录
~/.bash_profile 或 ~/.bash_login 或 ~/.profile 文件(推荐)
Linux环境变量
上次介绍的是Windows系统下的环境变量,今天来学习Linux下的环境变量。
使用系统是centos7。
环境变量简介
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。
Linux环境变量分类
系统级环境变量
系统级环境变量对所有用户和进程都可见。它们通常在系统启动时被设置,并被所有用户和进程共享。一些常见的系统级环境变量包括PATH
(用于指定可执行文件的搜索路径)
用户级环境变量
用户级环境变量是每个用户独立设置的,只对该用户及其相关进程可见。这些变量可以在登录时通过不同的配置文件(如.bashrc、.bash_profile、.profile等)设置。常见的用户级环境变量包括HOME
(指定用户的主目录路径)、USER
(当前用户名)等。
-
显示当前用户的所有环境变量
env
-
查看指定环境变量
echo $PATH 或者 echo $HOME 或者 echo $USER
Linux 常用的环境变量
在Linux系统中,有许多常用的环境变量,这些环境变量可以影响系统的行为和配置。以下是一些常见的Linux环境变量:
-
PATH:决定了系统在哪些目录中查找可执行文件。当你输入一个命令时,系统会在PATH中定义的目录中查找该命令的可执行文件。
-
HOME:指定当前用户的主目录路径。
-
USER:当前用户的用户名。
-
SHELL:指定当前用户默认使用的shell。
-
LANG:指定系统的默认语言。
-
LD_LIBRARY_PATH:指定系统在哪些目录中查找共享库文件。
-
TERM:指定当前终端的类型。
-
PS1:定义命令行提示符的格式。
-
PS2:定义多行命令的提示符的格式。
添加环境变量
添加系统级环境变量
vim /etc/profile export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH" source /etc/profile# 激活后,环境变量才可永久生效
添加用户级环境变量
在用户的家目录(~)下,当使用 Bash shell 时,系统会自动加载以下文件(如果存在):
.bash_profile
:这是在登录时加载的主要文件。通常用于设置用户的个人环境变量和启动脚本。
.bash_login
:如果.bash_profile
不存在,则会尝试加载此文件。
.profile
:如果.bash_profile
和.bash_login
都不存在,则会尝试加载此文件。这是一个通用的配置文件,适用于多种类型的 shell。
.bashrc
:这是在每次打开新的终端窗口时加载的文件。它包含了用户定义的别名、函数、自定义环境变量等。通常情况下,用户可以在
.bash_profile
、.bash_login
或.profile
文件中设置一些全局的环境变量和启动脚本,而在.bashrc
文件中设置一些特定于 Bash 的配置和个人设置。请注意,这是默认的行为,具体的加载顺序可能会受到系统配置的影响。
环境变量文件
/etc/profile 文件
此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从 /etc/profile.d
目录的配置文件中收集 shell 的设置。如果你有对 /etc/profile 有修改的话必须得手动执行 source /etc/profile
,修改才会生效,此修改对每个用户都生效。
/etc/profile.d 目录(推荐)
/etc/profile
在每次启动时会执行 /etc/profile.d
下全部的脚本文件。
/etc/bashrc 文件
为每一个运行终端的用户执行此文件。当终端被打开时,该文件被读取。如果你想对所有的使用终端的用户修改某个配置并在以后打开的终端都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个终端即可生效。
~/.bashrc 文件
当用户登录时以及每次打开新的Shell时该文件都将被读取。(每个用户都有一个 ~/.bashrc 文件,在用户目录下) 此文件类似于 /etc/bashrc,不需要重启就可以生效,重新打开一个 bash 即可生效,/etc/bashrc 对所有用户新打开的 bash 都生效,但 ~/.bashrc 只对当前用户新打开的 bash 生效。不推荐在里面配置用户专用的环境变量,因为每开一个Shell,该文件都会被读取一次,效率肯定受影响。
~/.bash_profile 或 ~/.bash_login 或 ~/.profile 文件(推荐)
每个用户都可使用该文件输入专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的 ~/ .bashrc
文件。 此文件类似于 /etc/profile,也是需要手动执行 source ~/.profile
,修改才会生效,/etc/profile 对所有用户生效,~/.profile 只对当前用户生效。
~/.bash_profile、 ~/.bash_login 和 ~/.profile
文件往往只存在一个,这与Linux的发行版本有关。centos中为 ~/.bash_profile,ubuntu则为 ~/.profile。执行的顺序为:~/.bash_profile > ~/.bash_login > ~/.profile
执行顺序
-
/etc/profile
-
/etc/bashrc
-
/etc/profile.d
-
~/.bash_profile | ~/.bash_login | ~/.profile
-
~/.bashrc
测试:linux中先加载系统变量还是用户变量?
修改root用户变量,添加‘ACE’
vim /root/.zshrc
在最后插入
export ACE="xcz1"
保存
修改系统变量,添加‘ACE’
vim /etc/profile
添加
export ACE="xcz2"
保存后重启
输出变量ACE
echo $ACE
发现输出用户变量,说明系统变量优先执行。