百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

浅谈Linux中的环境变量

liuian 2024-11-28 00:50 56 浏览

Linux和Unix的系统中,环境变量是一组动态命名值,存储在系统中,供在Shell或子Shell中启动的应用程序使用。简而言之,环境变量是具有名称和关联值的变量。

环境变量使您可以自定义系统的工作方式以及系统上应用程序的行为。例如,环境变量可以存储有关默认文本编辑器或浏览器,可执行文件的路径或系统区域设置和键盘布局设置的信息。

接下来我们将说明如何读取和设置环境变量和shell变量。

环境变量和Shell变量

变量具有以下格式:

KEY=value
KEY="Some other value"
KEY=value1:value2

有以下几点需要注意:

  • 变量名称区分大小写。按照约定,环境变量应具有大写名称。
  • 将多个值分配给变量时,它们必须用冒号分隔:。
  • 等号周围没有空格=。
  • 变量可分为两大类,环境变量和shell变量。

    环境变量是在整个系统范围内可用的变量,并由所有衍生的子进程和shell程序继承。

    Shell变量是仅适用于当前Shell实例的变量。每个shell程序(例如zsh和bash)都有自己的内部shell程序变量集。

    在linux中,有几个命令,可以列出和设置环境变量:

  • env –该命令允许您在自定义环境中运行另一个程序,而无需修改当前程序。当不带参数使用时,它将打印当前环境变量的列表。
  • printenv –该命令显示所有或指定的环境变量。
  • set –该命令设置或取消设置shell变量。当不带参数使用时,它将打印所有变量的列表,包括环境和Shell变量以及Shell函数。
  • unset –该命令删除环境变量。
  • export –该命令设置环境变量。
  • 列出环境变量

    用于显示环境变量的最常用命令是printenv。如果将变量名作为参数传递给命令,则仅显示该变量的值。如果未指定任何参数,则printenv输出所有环境变量的列表,每行一个变量。

    例如,要显示HOME环境变量的值,可以运行:

    printenv HOME

    上面命令输出将显示当前登录用户的路径:

    /home/linuxize

    您还可以将多个参数传递给printenv命令:

    printenv LANG PWD
    en_US
    /home/linuxize

    如果运行不带任何参数的printenvor env命令,它将显示所有环境变量的列表:

    printenv

    输出将如下所示:

    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35;...
    LESSCLOSE=/usr/bin/lesspipe %s %s
    LANG=en_US
    S_COLORS=auto
    XDG_SESSION_ID=5
    USER=linuxize
    PWD=/home/linuxize
    HOME=/home/linuxize
    SSH_CLIENT=192.168.121.1 34422 22
    XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
    SSH_TTY=/dev/pts/0
    MAIL=/var/mail/linuxize
    TERM=xterm-256color
    SHELL=/bin/bash
    SHLVL=1
    LANGUAGE=en_US:
    LOGNAME=linuxize
    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

    以下是一些最常见的环境变量:

  • USER -当前登录的用户。
  • HOME -当前用户的主目录。
  • EDITOR -要使用的默认文件编辑器。这是您edit在终端输入时将使用的编辑器。
  • SHELL -当前用户外壳程序的路径,例如bash或zsh。
  • LOGNAME -当前用户的名称。
  • PATH -执行命令时要搜索的目录列表。运行命令时,系统将按此顺序搜索这些目录,并使用找到的第一个可执行文件。
  • LANG -当前的语言环境设置。
  • TERM -当前的终端仿真。
  • MAIL -当前用户邮件的存储位置。
  • 该printenv和env命令只打印环境变量。如果要获取所有变量的列表,包括环境,shell和变量以及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=()

    该命令将显示所有变量的较大列表,你可以使用LESS参数


    set | less 

    也可以使用echo命令来打印shell变量。例如,要打印BASH_VERSION变量的值,可以运行:

    echo $BASH_VERSION

    以上命令将输出:

    4.4.19(1)-release

    设置环境变量

    为了更好地说明Shell和Environment变量之间的区别,我们将从设置Shell Variables开始,然后继续到Environment变量。

    假设我们要创建 一个新的shell变量,名称为MY_VAR,值为Linuxize

    可以使用命令:

    MY_VAR='Linuxize'

    接下来,我们可以使用grep echo $MY_VAR来过滤set命令的输出来验证是否设置了变量:

     set | grep MY_VAR

    将输出:

    Linuxize

    使用printenv命令检查此变量是否为环境变量:

    printenv MY_VAR

    输出将为空,说明该变量不是环境变量。

    我们尝试在shell程序中打印变量,将得到一个空输出

    bash -c 'echo $MY_VAR'

    接下来,我们使用 export命令将shell变量导出为环境变量

    export MY_VAR

    然后我们用printenv检查:

    printenv MY_VAR

    将输出

    Linuxize

    这次尝试在shell中打印变量,则会在终端上显示变量名称

    bash -c 'echo $MY_VAR'

    还可以在一行命令中设置环境变量:

    export MY_NEW_VAR="My New Var"

    注意 以这种方式创建的环境变量仅在当前会话中可用。如果打开新的shell程序或注销,所有变量将丢失。

    持久性环境变量


    要使环境变量具有持久性,您需要在bash配置文件中定义这些变量。在大多数Linux发行版中,当您启动新会话时,将从以下文件中读取环境变量:

    1. /etc/environment -使用此文件来设置系统范围的环境变量。此文件中的变量以以下格式设置:
    FOO=barVAR_TEST="Test Var"

    2./etc/profile-每当输入bash登录shell时,都会加载此文件中设置的变量。在此文件中声明环境变量时,您需要使用以下export命令:

    export JAVA_HOME="/path/to/java/home"
    export PATH=$PATH:$JAVA_HOME/bin

    3.shell程序特定的配置文件。例如,如果您使用的是Bash,则可以在中声明变量~/.bashrc:

    export PATH="$HOME/bin:$PATH"

    要将新的环境变量加载到当前的shell会话中,请使用以下source命令:

    source ~/.bashrc

    如你喜欢以上内容,可以关注微信公众号:Robert的书签

    相关推荐

    联想win7下载链接(联想win7oem原版下载)

    如果你想在联想小新win7上下载AMD软件,首先要确定你要下载的是哪款软件。然后,你可以前往AMD官方网站,在网站上搜索该软件并下载。在下载完成后,双击安装该软件即可。另外,你也可以通过第三方软件下载...

    三星笔记本电脑售后服务维修中心

    您可以通过以下方式查询附近的三星售后服务点:访问三星官方网站,在网站首页选择“售后服务”选项,然后选择“售后服务网点查询”,在弹出的页面中选择所在省份和城市,即可查询附近的售后服务网点。在手机应用商店...

    电脑重装系统后没有声音怎么解决

    电脑重装系统后没有声音,可能是声卡驱动未安装、声卡驱动不兼容或者声音相关服务未开启等原因。解决方法可以尝试重新安装声卡驱动、更新驱动程序软件或者打开声音相关设置。如果问题仍然存在,建议寻求专业人士的...

    word2007安装产品密钥(安装office2010产品密钥)

    可以通过以下方式获取Word文档的产品密钥:购买正版Word软件,从官方渠道获得产品密钥。下载并安装MicrosoftOffice,从安装过程中获取产品密钥。请注意,任何未经授权的方式获取...

    绝地求生电脑配置要求(绝地求生电脑配置要求2024)
    绝地求生电脑配置要求(绝地求生电脑配置要求2024)

    绝地求生的最低配置国服官方给出的最低配置是内存6G,CPUInteli3-4340/AMDFX-630,显卡GTX660/HD7850,所有效果最低,但是说实话,这个配置玩起来,体验太差,而且没几局就需要重启客户端,而且GTX6...

    2025-12-23 21:05 liuian

    安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
    • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
    • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
    • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
    • 安卓仿苹果ios14主题桌面(安卓仿ios14主题全套免费)
    亲手自己重装系统win7(自己怎么重装win7)

    要一键安装重装系统Win7,您可以使用Windows7安装盘或USB驱动器。首先,将安装盘或USB插入计算机,并重启计算机。然后,在计算机启动时按下相应的按键(通常是F12或Del键)进入启动菜单。...

    windows7旗舰版临时激活(win7暂时激活)

    关于这个问题,目前,有几种方法可以激活Windows7旗舰版,以下是最简单的几种方法:1.使用激活工具:可以使用一些第三方激活工具,如KMSpico、MicrosoftToolkit等工具来激活...

    免费查序列号入口(免费查序列号入口平板)

    苹果查序列号入口可登陆苹果官网checkcoverage.apple.com进行查询,具体步骤如下:1、打开手机设置,点击“通用”;2、进入页面后点击“关于本机”;3、页面跳转后,我们就可以看到本机的...

    磁盘被保护了如何取消保护(磁盘被保护了如何取消保护设置)

    1、打开磁盘分区管理窗口中选择要去掉被写保护的磁盘。2、选中磁盘后单击鼠标右键可显示出选项列表下选择属性。3、打开磁盘属性对话框中选择点击硬件选项卡。4、然后在硬件页面中选中所有磁盘后再单击属性按钮。...

    win7系统硬盘分区教程(win7如何对硬盘分区)

    在Win7中,你可以使用磁盘管理工具来给硬盘分区。首先,打开控制面板,点击“系统和安全”,然后选择“管理工具”。在管理工具中,找到“计算机管理”,点击打开。在计算机管理窗口中,选择“磁盘管理”。在磁盘...

    电脑不识别移动硬盘怎么办(笔记本电脑不识别移动硬盘怎么办)

    电脑无法识别移动硬盘的原因有很多,以下是一些可能的原因和相应的解决方法:1.USB供电不足:移动硬盘功率较大,可能需要更多的电压。前置USB接口可能无法提供足够的电压。解决方法是将移动硬盘接到...

    cf穿越火线烟雾头盔怎么调(cf的最新烟雾头盔怎么调)

    cf新版烟雾保护头盔调置:?cf这款游戏中,更新后调整烟雾头的方法是打开NVIDIA控制面板,在NVIDIA控制面板中选择调整视频颜色设置,接着点击通过NVIDIA设置选项,然后将亮度调整到79%,对...

    u盘怎样格式化最安全(u盘怎么格式化最干净)

    只需将U盘插入到电脑之后,然后在我的电脑中找到U盘的盘符,使用鼠标右键点击打开菜单,其中就可以看到【格式化】的选项,根据需要选择然后点击【快速格式化】即可U盘格式是FAT32格式,那么其传输速度会明显...

    移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)
    移动路由器怎么改wifi密码(移动网络路由器怎么改密码wifi密码)

    1.打开手机设置,找到wifi点击进入,点击已连接的wifi。2.里面有一个路由器的选项,记住路由器后面一串数字。3.打开手机网页,在地址栏输入刚记住的那串数字,点击进入,选择继续访问网页版,输入管理员密码,点击确定。4.点击路由设置,点击...

    2025-12-23 16:05 liuian