Linux操作系统广泛用于服务器,以承载复杂的应用程序,这种应用程序具有十分具体的系统设置。当您启动一个新的Linuxshell会话时,会读取某个系统配置并相应地设置您的计算机。这种配置和设置由环境变量控制。
我们将了解怎样在Linux系统中列举和设置环境变量。
目录
先决条件Linux中的环境变量是哪些
Linux操作系统支持两种类型的变量——环境变量和shell变量。这种变量会影响您的应用程序和程序的工作形式。
环境变量是影响整个系统的系统范围的变量。它们被所有shell和衍生的子进程使用,但是在命令行和GUI上都可用。Linux环境变量是为程序和进程提供必要信息的动态系统值。这种变量控制默认Web浏览器、默认文件编辑器或默认文本编辑器、可执行文件、键盘布局设置、目录路径和系统区域设置等内容。基本上,那些是具有分配给它们的值的名称。比如,我们使用JAVA_HOME变量来设置安装JDK或JRE的目录位置。
Shell变量是特定shell实例的本机变量虚拟主机 linux,仅影响shell函数。每位Linux操作系统shell,比如Bash和Kornlinux环境变量 文件配置,都有自己的内部shell变量。这有助于跟踪当前会话中的数据——主要用于交互式shell会话或将变量保持在本地的脚本。Bash特定变量一般以BASH_为前缀,比如BASH_VERSION。
环境变量和shell变量具有相同的格式:
VAR_NAME=value
在使用shell和环境变量时,您必须谨记以下变量要求:
下表列举了一些最常见的环境变量。
变量的名称
描述
PATH
Linux在执行命令时搜索的以逗号分隔的目录列表。
USER
当前登入用户的用户名。
HOME
当前用户的主目录。
UID
当前用户的惟一标示符。
EDITOR
用于编辑文件的默认编辑器。
SHELL
当前用户的shell的名称。
TERM
当前终端仿真。
PWD
当前工作目录。
TEMP
临时目录的路径。
其中一些变量的值在每台Linux计算机上可能不同。
列举当前环境变量
Linux有几个变量,了解它们的值十分重要,由于它们会影响系统的行为。有几个命令可用于列举Linux中的环境变量。
要复印所有环境变量的列表,请键入:
printenv
您还可以使用env命令列举所有Linux变量:
env
变量列表可能很长,因而无法阅读。您可以将more或less命令与printenv命令一起使用,一次一屏地列举环境变量:
printenv|more
上述所有命令一次列举多个变量。要查找有关指定变量的信息,请使用以下命令:
printenvHOME
此命令复印用户的主目录。
您也可以使用echo命令复印环境变量值。以下示例复印PATH环境变量的值:
echo$PATH
PATH变量有多个值,它们用逗号分隔。
设置环境变量
Linux提供了两种设置环境变量的技巧。可以先设置一个shell变量,之后将shell变量导入为环境变量,第二种方法是直接导入环境变量。
要为当前shell会话创建新的环境变量并设置它们的值,请使用以下命令:
MYVAR=foo
此时,仅为shell创建新的环境变量。您可以使用echo命令确认是否设置了变量。此变量不是环境变量,假若您使用printenv命令,其输出将为空:
printenvMYVAR
如今我们可以使用export命令将此shell变量转换为单个环境变量:
exportMYVAR
如今MYVAR是一个环境变量,这会影响当前shell以及从当前shell启动的所有进程。
您何必总是遵照这个漫长的过程来设置环境变量。您可以在单个命令中直接导入环境变量:
exportMYENV=bar
您必须注意,通过这种命令设置的变量仅适用于当前会话。一旦关掉会话,这种变量都会遗失。要永久设置环境变量,您必须使用文本编辑器编辑/etc/profile.d目录、~/.bashrc、/etc/environment或/etc/profile文件。
设置环境变量持久化
持久意味着当您关掉shell会话或重新启动时,您不须要重置环境变量的值。倘若您希望环境变量可用于所有shell会话,甚至跨用户,这么您必须在配置文件中添加环境变量。
使用/etc/environment文件为命令行和图形界面添加整个系统(即所有用户、所有进程)都可用的环境变量。该文件只接受VAR_NAME="value"格式的变量,不要使用导入。比如,使用您喜欢的编辑器打开/etc/environment文件,并使用以下格式添加环境变量:
VARIABLE_NAME=value
设置从当前用户注销并再度登陆以进行修改后。
使用/etc/profile配置文件设置在启动登陆shell时为所有用户手动加载的环境变量。使用export命令在用户配置文件中申明环境变量,如下所示:
exportPATH=$PATH:/place/with/the/file
在~/.bashrc文件或~/.profile文件中设置一个用户特定的环境变量,使用如下:
exportJAVA_HOME=/opt/jdk/11exportPATH="$JAVA_HOME/bin:$PATH"
运行source~/.bashrcbashshell命令以加载当前shell会话中的环境变量。
取消设置环境变量
使用unset命令取消设置或删掉变量。
unsetNAME
unset命令删掉使用终端命令导入的变量。并且,您储存在配置文件中的变量只会从当前shell会话中删掉。当您创建一个新的终端会话时,它们会手动重新设置。
您可以通过从配置文件中删掉变量来从Linux计算机中永久删掉变量。
推论
我们学习了怎样在Linux中列举和创建环境变量。我们还见到了怎样通过编辑bash配置文件使变量在重启后保持不变。
环境变量是设置常用值的好方式,只需使用变量而不是一次又一次地自动输入值。本教程中列举的常用环境变量可用于场景Linux发行版,比如Ubuntu、Debian、Redhat。
我新建了个技术陌陌群:microservicedevlinux环境变量 文件配置linux常用命令,欢迎同行扫码步入
喜欢的同事记得给个关注~
,