专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Linux设置环境变量

Linux设置环境变量

更新时间:2021-12-16 10:36:18 来源:赢咖4 浏览955次

概述

在本教程中,您将学习如何在 Ubuntu、CentOS、Red Hat 中设置环境变量,基本上任何 Linux 发行版都适用于单个用户和全局所有用户。您还将学习如何列出所有环境变量以及如何取消设置(清除)现有环境变量。

环境变量通常在 Bash shell 中使用。它也是配置服务和处理 Web 应用程序机密的常用方法。

环境特定信息(例如端点和密码)作为环境变量存储在服务器上的情况并不少见。它们还用于设置许多流行包的重要目录位置,例如 Java 的 JAVA_HOME。

设置环境变量

要设置环境变量,请使用 export 命令。我们给变量一个名字,它是用来在 shell 脚本和配置中访问它的名字,然后是一个值来保存变量中所需的任何数据。

export NAME=VALUE

例如,要为手动安装 OpenJDK 11 的主目录设置环境变量,我们将使用类似于以下内容的内容。

export JAVA_HOME=/opt/openjdk11

要从 shell 输出环境变量的值,我们使用 echo 命令并在变量名前加上美元 ($) 符号。

echo $JAVA_HOME

只要变量有一个值,它就会被回显出来。如果未设置任何值,则将显示一个空行。

取消设置环境变量

要取消设置环境变量,从而一起删除它的存在,我们使用 unset 命令。简单地用空字符串替换环境变量不会将其删除,并且在大多数情况下可能会导致脚本或应用程序出现问题,期望有效值。

以下语法用于取消设置环境变量

nset VARIABLE_NAME

例如,要取消设置 JAVA_HOME 环境变量,我们将使用以下命令。

unset JAVA_HOME

列出所有设置的环境变量

要列出所有环境变量,我们只需使用不带任何参数的 set 命令。

set

输出示例类似于以下内容,为简洁起见已被截断。

BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:globasciiranges:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath
 BASH_ALIASES=()
 BASH_ARGC=([0]="0")
 BASH_ARGV=()
 BASH_CMDS=()
 BASH_COMPLETION_VERSINFO=([0]="2" [1]="8")
 BASH_LINENO=()
 BASH_SOURCE=()
 BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
 BASH_VERSION='5.0.3(1)-release'
 COLUMNS=208
 DIRSTACK=()
 EUID=1000
 GROUPS=()
 HISTCONTROL=ignoreboth
 HISTFILE=/home/ubuntu/.bash_history
 HISTFILESIZE=2000
 HISTSIZE=1000
 HOME=/home/ubuntu
 HOSTNAME=ubuntu1904
 HOSTTYPE=x86_64
 IFS=$' \t\n'
 LANG=en_US.UTF-8
 LESSCLOSE='/usr/bin/lesspipe %s %s'
 LESSOPEN='| /usr/bin/lesspipe %s'
 LINES=54

为用户持久化环境变量

当使用 export 命令从 shell 设置环境变量时,它的存在将在用户会话结束时结束。当我们需要变量跨会话保持时,这是有问题的。

为了使用户环境的环境持久化,我们从用户的配置文件脚本中导出变量。

1.在文本编辑器中打开当前用户的个人资料

vi ~/.bash_profile

2.为要保留的每个环境变量添加导出命令。

export JAVA_HOME=/opt/openjdk11

3.保存您的更改。

单独将环境变量添加到用户的 bash 配置文件不会自动导出它。但是,该变量将在用户下次登录时导出。

要立即将所有更改应用于 bash_profile,请使用 source 命令。

source ~/.bash_profile

导出环境变量

导出是 Bash 的内置 shell 命令,用于导出环境变量以允许新的子进程继承它。

要导出环境变量,请在设置变量时运行 export 命令。

export MYVAR="my variable value"

我们可以通过运行不带任何参数的 export 命令来查看导出的环境变量的完整列表。

export
SHELL=/bin/zsh
SHLVL=1
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.1pB5Pry8Id/Listeners
TERM=xterm-256color
TERM_PROGRAM=vscode
TERM_PROGRAM_VERSION=1.48.2

要查看当前 shell 中所有导出的变量,请使用-p带导出的标志。

export -p

为所有用户设置永久的全局环境变量

可以通过将其添加到默认配置文件来创建在重新启动后仍然存在的永久环境变量。此配置文件由系统上的所有用户加载,包括服务帐户。

所有全局配置文件设置都存储在 /etc/profile 下。虽然这个文件可以编辑目录,但实际上建议将全局环境变量存储在名为 /etc/profile.d 的目录中,您将在其中找到用于为整个系统设置环境变量的文件列表。

1.在 /etc/profile.d 下创建一个新文件来存储全局环境变量。的名称应该是上下文,以便其他人可以理解其目的。为了演示,我们将为 HTTP_PROXY 创建一个永久环境变量。

sudo touch /etc/profile.d/http_proxy.sh

2.在文本编辑器中打开默认配置文件。

sudo vi /etc/profile.d/http_proxy.sh

3.添加新行以导出环境变量

export HTTP_PROXY=http://my.proxy:8080
export HTTPS_PROXY=https://my.proxy:8080
export NO_PROXY=localhost,::1,.example.com

4.保存更改并退出文本编辑器

结论

本教程介绍了如何为所有 Linux 发行版(从 Debian 到 Red Hat)设置和取消设置环境变量。您还学习了如何为单个用户以及所有用户设置环境变量。如果您想了解更多相关知识,可以关注一下赢咖4的Java赢咖4在线学习,里面的课程内容丰富,通俗易懂,对于没有基础的小伙伴来说是一个不错的选择。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>