linux环境变量(转载)

发布时间 2023-12-18 15:22:14作者: okyihu

阅读目录
一、Linux 环境变量介绍
1.1 Linux 环境变量介绍
1.2 Linux 环境变量分类
1.3 Linux 常用的环境变量
二、Linux 查看环境变量
三、Linux 添加环境变量
3.1 添加系统级环境变量(需root权限、针对所有用户、永久生效)
3.2 添加用户级环境变量
3.3 SSH/串口终端临时添加环境变量
四、Linux 删除环境变量
4.1 永久删除环境变量
4.2 使用unset删除指定的环境变量
4.3 删除PATH环境变量指定值
五、修改环境变量配置文件后生效
八、其他资料
一、Linux 环境变量介绍
1.1 Linux 环境变量介绍
Linux环境变量(超详细)
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。

环境变量分类

按生命周期分:
永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。
临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
按作用域分:
系统环境变量:公共的,对全部的用户都生效。
用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。


1.2 Linux 环境变量分类
在Linux系统中,环境变量可以分为以下几类:

系统级环境变量:
系统级环境变量对所有用户和进程都可见。它们通常在系统启动时被设置,并被所有用户和进程共享。一些常见的系统级环境变量包括PATH(用于指定可执行文件的搜索路径)、LANG(用于设置系统语言环境)等。

用户级环境变量:
用户级环境变量是每个用户独立设置的,只对该用户及其相关进程可见。这些变量可以在登录时通过不同的配置文件(如.bashrc、.bash_profile、.profile等)设置。常见的用户级环境变量包括HOME(指定用户的主目录路径)、USER(当前用户名)等。

进程级环境变量:
进程级环境变量是由特定进程设置的,并且仅对该进程及其子进程可见。这些变量可以通过编程语言(如C语言中的setenv函数)在程序中进行设置,或者通过终端命令行在特定的进程上下文中设置。

需要注意的是,系统级环境变量和用户级环境变量通常是通过配置文件进行设置和管理的。对于系统级环境变量,常见的配置文件包括/etc/profile和/etc/environment。对于用户级环境变量,常见的配置文件包括用户的个人配置文件(如.bashrc、.bash_profile、.profile等)。

每个环境变量都有其特定的作用和范围,根据需要进行适当的设置和管理。

1.3 Linux 常用的环境变量
在Linux系统中,有许多常用的环境变量,这些环境变量可以影响系统的行为和配置。以下是一些常见的Linux环境变量:

PATH:决定了系统在哪些目录中查找可执行文件。当你输入一个命令时,系统会在PATH中定义的目录中查找该命令的可执行文件。

HOME:指定当前用户的主目录路径。

USER:当前用户的用户名。

SHELL:指定当前用户默认使用的shell。

LANG:指定系统的默认语言。

LD_LIBRARY_PATH:指定系统在哪些目录中查找共享库文件。

TERM:指定当前终端的类型。

PS1:定义命令行提示符的格式。

PS2:定义多行命令的提示符的格式。

这只是一些常见的环境变量,实际上还有很多其他的环境变量可以用来配置系统的行为和程序的运行。你可以使用printenv、env或者echo命令来查看当前系统中定义的所有环境变量。例如,使用printenv命令可以列出所有环境变量及其对应的值。

例如,要查看PATH环境变量的值,可以使用以下命令:

echo $PATH
1
希望这些信息对你有所帮助!如果你有其他问题,请随时提问。

二、Linux 查看环境变量
显示当前用户的所有环境变量
printenv
# 或
env
1
2
3
查看指定环境变量
echo $PATH 或者 echo $HOME 或者 echo $USER
1
使用set查看所有本地定义的环境变量。
三、Linux 添加环境变量
3.1 添加系统级环境变量(需root权限、针对所有用户、永久生效)
vim /etc/profile
export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
source /etc/profile
1
2
3
注:一般只有root用户才有编辑权限;

3.2 添加用户级环境变量
在用户的家目录(~)下,当使用 Bash shell 时,系统会自动加载以下文件(如果存在):

.bash_profile:这是在登录时加载的主要文件。通常用于设置用户的个人环境变量和启动脚本。

.bash_login:如果 .bash_profile 不存在,则会尝试加载此文件。

.profile:如果 .bash_profile 和 .bash_login 都不存在,则会尝试加载此文件。这是一个通用的配置文件,适用于多种类型的 shell。

.bashrc:这是在每次打开新的终端窗口时加载的文件。它包含了用户定义的别名、函数、自定义环境变量等。

通常情况下,用户可以在.bash_profile、.bash_login 或 .profile
文件中设置一些全局的环境变量和启动脚本,而在.bashrc 文件中设置一些特定于 Bash 的配置和个人设置。

请注意,这是默认的行为,具体的加载顺序可能会受到系统配置的影响。

在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】

用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

例如:编辑guok用户目录(/home/guok)下的.bash_profile

vi /home/guok/.bash.profile

v ~/.bash.profile
1
2
3
添加如下内容:

export CLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib
1
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

3.3 SSH/串口终端临时添加环境变量
直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】

在shell的命令行下直接使用[export 变量名=变量值] 定义变量,

该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,

shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

1、可用 export 命令查看PATH值

export
1
2、单独查看PATH环境变量,可用:

echo $PATH
1
3、添加PATH环境变量(临时),可用:

export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH
1
上述方法的PATH 在终端关闭 后就会消失。

四、Linux 删除环境变量
要删除Linux环境变量,您可以选择临时删除或永久删除。

4.1 永久删除环境变量
永久删除环境变量:

编辑配置文件:要永久删除环境变量,您需要编辑适当的配置文件,并将其从文件中删除。具体的配置文件取决于您要删除的是系统环境变量还是用户环境变量。

如果要删除系统环境变量,需要使用root用户权限编辑/etc/environment文件。在该文件中,找到并删除相应的环境变量。
如果要删除用户环境变量,需要编辑/.bashrc、/.bash_profile或~/.profile文件(根据您使用的Shell)并删除相应的环境变量。
例如,如果要删除名为VAR的环境变量,可以使用文本编辑器打开适当的文件,找到VAR并将其删除。保存文件后,系统会在下次启动时生效。

注意:修改这些配置文件可能需要root权限或适当的用户权限(系统级配置文件要root权限、用户级不需要)。

4.2 使用unset删除指定的环境变量
set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:

export TEST="Test..." #增加一个环境变量TEST
env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
unset TEST #删除环境变量TES
env|grep TEST #此命令没有输出,证明环境变量TEST已经删除
1
2
3
4
5
4.3 删除PATH环境变量指定值
Linux环境变量PATH的增添和删除操作
五、修改环境变量配置文件后生效
针对修改的配置文件执行:source ~/.bashrc 当前终端和新连接的终端自动生效。
针对已连接的终端:执行上面命令 或者 exec bash
八、其他资料
执行多次source /etc/profile之后,打印PATH的值会出现重复:重新登录查看即可。
Linux下查看和添加环境变量
https://www.cnblogs.com/qiuhong10/p/7815943.html

https://blog.csdn.net/ken2232/article/details/132026494
Linux基础-查看和设置环境变量