linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置与查看

linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置与查看今天小编要跟大家分享的文章是关于Linux系统中的环境变量该如何设置与查看。大家都知道,在Linux系统中,有环境变量和Shell变量这两种变量。环境变量是在程序及其子程序中全局可用的,常常用来储存像默认的文本编辑器或者浏览器,以及可执行文件的路径等等这样的信息。而Shell变量仅在当前Shell中可用,可以用来存储当前用户的ID等信息。那么什么是环境变量,什么是Shell变量…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

今天小编要跟大家分享的文章是关于Linux系统中的环境变量该如何设置与查看。大家都知道,在 Linux 系统中,有环境变量和 Shell

变量这两种变量。

环境变量是在程序及其子程序中全局可用的,常常用来储存像默认的文本编辑器或者浏览器,以及可执行文件的路径等等这样的信息。而 Shell 变量仅在当前

Shell 中可用,可以用来存储当前用户的 ID 等信息。

那么什么是环境变量,什么是 Shell 变量,该如何设置和查看这两种变量呢?下面来和小编一起看一看吧!

98b0c9853ecbd86ab4b43d2d1b2507fe.png

一、环境变量

环境变量是以键值对的形式实现的,是在整个系统范围内都可用的变量,并由所有派生的子进程和 Shell

继承。而环境变量的名称是区分大小写的,且通常以大写的形式命名 ( MYVAR1, MYVAR2… )

单个值的环境变量看起来是这样的:

KEY=value1

如果你想要将多个值赋予环境变量,则通常用冒号 ( : ) 作为分隔符。每一对键值对最终看起来是这样子的:

KEY=value1:value2:value3

如果要赋予环境变量的值包含空格,则需要使用引号:

KEY=”value with spaces”

二、Shell变量

Shell 变量是专门用于设置或定义它们的 Shell 中的变量。每个 Shell ,例如 zsh 和 bash ,都有一组自己内部的 Shell

变量。它们通常用于跟踪临时数据,比如当前工作目录,而用法则与环境变量相同。

如果你想让 Shell 变量作为全局变量使用,可以使用 export 指令:

$ export MYVAR=lxlinux.net

$ echo $MYVARlxlinux.net

$ env | grep MYVARMYVAR=lxlinux.net

三、常见的环境变量与 Shell 变量

一些环境变量和 Shell 变量是非常有用的,并且经常会被引用。以下是一些常见的,你以后可能会遇到的环境变量:

变量名含义

TERM这指定运行 Shell 时要模拟的终端类型。可以针对不同的操作需求模拟不同的硬件终端。不过,你通常不需要管这个变量。

USER当前登录的用户

PWD当前的工作目录

OLDPWD上一个工作目录,这个变量由 Shell 保存,以便通过执行 cd – 切换回上一个工作目录。

LS_COLORS这定义了 ls 指令的颜色输出代码,用于向 ls

指令添加颜色输出。这通常用于区分不同的文件类型并使用户对文件类型等信息一目了然。

MAIL当前用户邮箱的路径

PATH系统在查找指令时会检查的目录列表。当用户输入一个指令时,系统将按此目录列表的顺序检查目录,以寻找相应的可执行文件。

LANG当前的语言和本地化设置,包括字符编码。

HOME当前用户的主目录

_上一个被执行的指令

除了以上这些环境变量,你也可能会经常遇到以下这些 Shell 变量:

变量名含义

BASHOPTS执行 bash 时所启用的选项列表,这对于确定 Shell 环境是否按照预期的方式运行很有帮助。

BASH_VERSION人类可读格式的正在执行的 bash 版本

BASH_VERSINFO机器可读格式的正在执行的 bash 版本

COLUMNS用于设置绘制到屏幕上的输出信息的宽的列数

DIRSTACKpushd 和 popd 命令可用的目录堆栈。

HISTFILESIZE存储到文件中的命令历史记录的行数。默认为 ~/.bash_history 文件的行数。

HISTSIZE内存中允许存储的命令历史记录的行数,即 histroy 命令所能打印出来的行数。

HOSTNAME计算机的主机名

IFS内部字段分隔符,用于分隔命令行上的输入。默认以空格作为分隔符。

PS1定义主命令提示符。这用于定义启动 Shell 会话时命令提示符的外观。而 PS2 用于声明跨越多行的命令的命令提示符。

SHELLOPTS可以用 set 命令设置的 Shell 选项。

UID当前用户的 UID (用户 ID)

四、查看 Shell 变量与环境变量

在 Linux 系统中,有以下几种命令可以让你查看环境变量:

env — 该命令可以让你在自定义的环境中运行程序,并且不需要改变当前的环境。当不带参数使用 env 命令时,它会打印出当前的环境变量列表。

printenv — 可以打印出所有的或者指定的环境变量。

set — 该命令可以设置或者删除 Shell 变量。当不带参数使用 set 命令时,它将打印出包括环境变量与 Shell 变量在内的所有变量以及

Shell 函数的列表。

默认状态下,env 和 printenv 的功能是完全相同的:

$ printenv

SSH_CONNECTION=10.0.2.2 37182 10.0.2.15 22

LESSCLOSE=/usr/bin/lesspipe %s %s

LANG=C.UTF-8

XDG_SESSION_ID=5

USER=Alvin

MYVAR=lxlinux.net

PWD=/home/Alvin

HOME=/home/Alvin

SSH_CLIENT=10.0.2.2 37182 22

XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop

SSH_TTY=/dev/pts/0

MAIL=/var/mail/Alvin

TERM=xterm-256color

SHELL=/bin/bash

SHLVL=1

LOGNAME=Alvin

XDG_RUNTIME_DIR=/run/user/1000

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/

sbin:/bin:/usr/games:/usr/local/games:/snap/bin

LESSOPEN=| /usr/bin/lesspipe %s

_=/usr/bin/printenv

只有在更具体的功能上才能体现出 env 命令与 printenv 命令的区别。例如,使用 printenv命令,你可以请求单个变量的值:

$ printenv SHELL

/bin/bash

$ printenv HOME

/home/Alvin

$ printenv MYVAR

lxlinux.net

env 命令可通过将一组变量传递给命令来修改程序运行的环境:

env MYVAR=lxlinux.net command_to_run command_options

printenv 与 env 命令只能打印出环境变量,而如果你想打印出所有变量或者 Shell 函数的列表,你可以使用 set 指令。

$ set

BASH=/bin/bash

BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath

BASH_ALIASES=()

BASH_ARGC=()

BASH_ARGV=()

BASH_CMDS=()

BASH_COMPLETION_VERSINFO=([0]=”2″ [1]=”8″)

BASH_LINENO=()

BASH_SOURCE=()

BASH_VERSINFO=([0]=”4″ [1]=”4″ [2]=”20″ [3]=”1″

[4]=”release” [5]=”x86_64-pc-linux-gnu”)

BASH_VERSION=’4.4.20(1)-release’

COLUMNS=140

DIRSTACK=()

EUID=1000

GROUPS=()

HISTCONTROL=ignoreboth

HISTFILE=/home/alvin/.bash_history

HISTFILESIZE=2000

HISTSIZE=1000HOME=/home/alvinHOSTNAME=ubuntu-bionic

HOSTTYPE=x86_64IFS=$’ \t\n’LANG=C.UTF-8

LESSCLOSE=’/usr/bin/lesspipe %s %s’

LESSOPEN=’| /usr/bin/lesspipe %s’

LINES=35LOGNAME=Alvin

…..

该命令将显示一个包含所有变量的大列表,因此你可能会希望将输出传递给 less 命令。

$ set | less

五、设置 Shell 变量与环境变量

Linux 系统中可以设置环境变量的命令有以下几种:

set — 该命令可以设置或者取消设置 Shell 变量。当不带参数使用 set 命令时,它将打印出包括环境变量与 Shell 变量在内的所有变量以及

Shell 函数的列表。

unset — 该命令可以删除 Shell 变量以及环境变量。

export — 该命令可以设置环境变量。

为了更好地理解 Shell 变量和环境变量之间的区别,我们先从设置 Shell 变量开始讲,然后再讲环境变量。

先从在当前会话中定义一个 Shell 变量开始:

$ MYVAR=lxlinux

你可以用 echo $MYVAR 来验证变量是否已设置:

$ echo $MYVAR

lxlinux

使用 printenv 命令检验该变量是否为环境变量:

$ printenv MYVAR

没有输出返回,这就意味着 MYVAR 变量并不是环境变量。

export 命令可以用来设置环境变量。要创建环境变量,只需用 export 命令将 Shell 变量导出为环境变量:

$ export MYVAR

你可以用以下语句检验:

$ printenv MYVARlxlinux

当然,你也可以只用一行代码来设置环境变量:

$ export MYNEWVAR=”My New Variable”

但是以这种方式创建的环境变量只能用于当前会话,如果你打开一个新的 Shell 会话,或者退出登陆,所有的变量都将会丢失。

我们也可以将环境变量还原为 Shell 变量,或者将其完全删除:

MYVAR 变量被定义为环境变量,我们可以通过输入以下代码将其还原为 Shell 变量:

$ export -n MYVAR

这样,MYVAR 变量就不再是环境变量了,但依然还是 Shell 变量。

无论是 Shell 变量还是环境变量,想要完全删除变量,都可以使用 unset 命令来删除:

$ unset MYVAR

可以通过以下语句来验证 MYVAR 变量已经删除:

$ echo $MYVAR

由于变量已经删除了,所以没有任何返回。

六、环境变量的持久化

许多程序都需要使用环境变量来决定具体的执行方式,但是,我们并不希望每次启动新的 Shell

会话时都必须重新设置重要的变量,因此我们需要将重要的环境变量写入配置文件中。

Shell 会话有不同的启动方式,比如,连接到终端的交互式 Shell 与未连接到终端的非交互式 Shell,还有登录式 Shell 与非登录式

Shell, 而 bash Shell 会根据会话不同的启动方式而读取不同的配置文件。

但是,在大多数 Linux 发行版中,当你启动一个新的 Shell 会话时,一般都会从以下文件中读取环境变量:

/etc/environment — 使用此文件来设置系统范围内可用的环境变量。

/etc/profile — 每当 bash 登录 Shell 时,都会加载此文件中设置的变量。

~/.bashrc — 每个用户特定的 Shell 配置文件。例如, 如果你使用的是Bash,就可以在其中声明变量。

如果要将新的环境变量加载到当前的 Shell 会话中,可以使用source命令:

$ source ~/.bashrc

如果你想要设置环境变量,你就可以考虑将其添加到 /etc/profile 、/etc/bash.bashrc 或/etc/environment

文件中。

结论

以上就是小编今天为大家分享的关于Linux系统中的环境变量该如何设置与查看的文章,在本文章中,我们了解了一些常见的环境变量和 Shell

变量,也学习了如何设置和查看这些变量,其实这些变量一直都在我们的 Shell

会话中,而且对许多程序都很有用,有很多常见的场景都会引用到这些变量。希望这对你的工作也有帮助。想要了解更多Linux相关知识记得关注达内Linux培训官网,最后祝愿小伙伴们工作顺利。

原创 良许 良许Linux

【免责声明:本文图片及文字信息均由小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。】

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187100.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • js 字符串截取方法汇总

    js 字符串截取方法汇总一、使用slice()截取1,函数说明slice()方法可通过指定的开始和结束位置,提取字符串的某个部分,并以新的字符串返回被提取的部分。语法如下:string.slice(start,end);start(必需):规定从何处开始选取。如果是负数,那么它规定从字符串尾部开始算起的位置。也就是说,-1指最后一个字符,-2指倒数第二个字符,以此类推。参数说明:end(可选):规定从何处结束选取,即结束处的字符下标。如果没有指定该参数,那么截取的字符串包含从start到结束的所…

  • .jar中没有主清单属性[通俗易懂]

    .jar中没有主清单属性[通俗易懂].jar中没有主清单属性问题:xxx.jar中没有主清单属性背景:maven项目,springboot服务   IDEA打包,jar包运行出现上述错误解决方案:pom.xml中添加 <build><plugins><plugin><groupId>org.sp…

  • C# 多线程详细讲解「建议收藏」

    C# 多线程详细讲解「建议收藏」C#多线程一、基本概念1、进程首先打开任务管理器,查看当前运行的进程:从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢?进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程。线程是操作系统分配处理器时间的基本单元,在进程中可以有多个线程同时执行代码。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运

    2022年10月21日
  • php中的线程、进程和并发区别

    php中的线程、进程和并发区别

    2021年10月31日
  • Ubuntu卸载CUDA_ubuntu怎么卸载已经安装的软件

    Ubuntu卸载CUDA_ubuntu怎么卸载已经安装的软件1.暴力卸载sudoapt-getpurgenvidia*sudoapt-getautoremovesudoapt-getautoclean2.主动卸载sudo/usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

  • 实现微信机器人开发

    实现微信机器人开发首先微信聊天机器人,是一种通过自然语言模拟人类进行对话的程序。通常运行在特定的软件平台上,如PC平台或者移动终端设备平台。测试问文档:https://www.wkteam.cn/文档测试过程中实现多项功能进行管理登录模块◆登录微控平台member/login◆获取微信二维码user/login◆执行微信登录getIPadLoginInfo◆获取联系人列表(群、好友)getAllContact◆二次登录(退出微信号需要再次登录调用此接口即可)secondLogin◆退出微信l

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号