美文网首页
Linux环境变量

Linux环境变量

作者: 涅小黑 | 来源:发表于2022-06-28 16:16 被阅读0次

环境变量是一些已经赋了值的变量,在bash shell中,环境变量分为两类:
* 全局变量
* 局部变量

查看变量

set

set命令会显示出全局变量、局部变量以及用户定义变量。

env

[root@zzz ~]# env
XDG_SESSION_ID=18849
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_TTY=/dev/pts/2
USER=root
_=/usr/bin/env
...

printenv

[root@zzz ~]# printenv
XDG_SESSION_ID=18849
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_TTY=/dev/pts/2
USER=root
_=/usr/bin/env
...

[root@zzz ~]# printenv USER
root

printenv与env一样,printenv多了可以显示单个变量的功能

设置变量

局部变量

#变量名、等号和值之间没有空格
 my_variable=Hello
 echo $my_variable
#Hello

全局变量

 my_variable="I am Global now"
 export my_variable
 echo $my_variable
#I am Global now

可见性

全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量则只对创建它们的
shell可见。

[root@zzz ~]# var1=5
[root@zzz ~]# echo $var1
5
[root@zzz ~]# bash
[root@zzz ~]# echo $var1

[root@zzz ~]

全局环境变量修改只对当前shell有效

[root@zzz ~]# printenv GOROOT
/usr/local/go1
[root@zzz ~]# GOROOT=/usr/local/go
[root@zzz ~]# printenv GOROOT
/usr/local/go
[root@zzz ~]# GOROOT=/usr/local/go1
[root@zzz ~]# printenv GOROOT
/usr/local/go1
[root@zzz ~]# bash
[root@zzz ~]# printenv GOROOT
/usr/local/go

删除变量unset

如果你是在子进程中删除了一个全局环境变量,这只对子进程有效。该全局环境变量在父进程中依然可用

[root@zzz ~]# globle_var=5
[root@zzz ~]# export globle_var
[root@zzz ~]# echo $globle_var
5
[root@zzz ~]# bash
[root@zzz ~]# echo $globle_var
5
[root@zzz ~]# unset globle_var
[root@zzz ~]# echo $globle_var

[root@zzz ~]# exit
exit
[root@zzz ~]# echo $globle_var
5

系统环境变量初始化

Linux系统中有很多默认环境变量,我们需要了解变量的加载过程。
启动bash shell有3种方式:

  • 登录时作为默认登录shell(账号密码登录)
  • 作为非登录shell的交互式shell(界面系统打开终端,子shell)
  • 作为运行脚本的非交互shell(脚本启动shell)

登录 shell

登录shell会从5个不同的启动文件里读取命令:

  • /etc/profile
  • $HOME/.bash_profile
  • $HOME/.bashrc
  • $HOME/.bash_login
  • $HOME/.profile

交互式 shell 进程

如果bash是作为交互式shell启动的,它就不会访问/etc/profile文件,只会检查用户HOME目录
中的.bashrc文件。

非交互式 shell

bash shell提供了BASH_ENV环境变量。当shell启动一个非交互式shell进
程时,它会检查这个环境变量来查看要执行的启动文件。如果有指定的文件,shell会执行该文件
里的命令,这通常包括shell脚本变量设置

相关文章

  • tomcat 环境变量说明

    linux 环境变量说明见此文linux环境变量说明 tomcat 环境变量说明:

  • Linux Java

    Linux配置Java环境变量 Reference [1]. Linux配置Java环境变量

  • 生信随手记2020-02-16:Linux环境变量

    Linux-常见环境变量及其作用Linux中环境变量的设置

  • 2019-01-30

    # golang环境变量 ## 1、查看环境变量 ## 2、设置环境变量 ### 2.1 linux环境 ### ...

  • Linux学习之环境变量

    转自:Linux学习之环境变量在linux中环境变量是一个重要的概念,环境变量可以由系统、用户、shell、以及其...

  • Linux 环境变量配置全攻略

    Linux 环境变量配置全攻略 Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各...

  • Linux Desktop 环境变量设置

    Linux Desktop 环境变量设置 标签(空格分隔): Linux Deabin AndroidStudio...

  • linux环境变量

    在linux下,经常会遇到环境变量问题,接下来说下环境变量是咋回事儿; linux下设置环境变量,有三种方式: 1...

  • linux命令(二)

    环境变量 在这里我说一下linux的环境变量windows的环境变量大家应该都用的很熟吧,在这里说一下linux怎...

  • Linux 常用命令

    查看linux是32位还是64位: 解压tomat: 配置JDK环境变量在linux下环境变量的配置是通过修改/e...

网友评论

      本文标题:Linux环境变量

      本文链接:https://www.haomeiwen.com/subject/bnpavrtx.html