Linux 环境变量 详解

1. 环境变量定义

  1. 简单说就是:
    环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。
    它相当于一个指针,想要查看变量的值,需要加上“$”。

  2. 复杂说就是:
    环境变量是bash shell的特性,用来存储有关shell会话和工作环境的信息。
    允许在内存中存储数据,以便运行在shell上的程序和脚本访问。
    这些数据可以是用来识别用户、系统、Shell的特性以及任何其它需要存储的数据。

注意: Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。

2. 环境变量的分类

在bash shell中,环境变量分为两类:全局变量和局部变量。

2.1 全局变量

全局变量不仅对shell会话可见,对所有shell创建的子进程也可见。查看全局变量可以是用 printenv/env/命令。

[root@glusterfs home]# printenv
XDG_SESSION_ID=1
HOSTNAME=glusterfs.green.master
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.88.8.100 64488 22
SSH_TTY=/dev/pts/0
USER=root
……
……

2.2 局部变量

局部环境变量只能在定义它们的进程中可见。查看局部环境变量有点复杂,不像全局环境变量那样可以使用一个命令来只显示局部环境变量。set命令可以显示为某个特定进程设置的环境变量,也包括全局环境变量。

3. Linux系统中重要的几个环境变量

Linux 系统能够正常运行并且为用户提供服务,需要数百个环境变量来协同工作,这里列了 几个非常重要的环境变量

环境变量名称	作用
HOME	用户的主目录(也称家目录)
SHELL 	用户使用的 Shell 解释器名称
PATH	定义命令行解释器搜索用户执行命令的路径
EDITOR	用户默认的文本解释器
RANDOM	生成一个随机数字
LANG	系统语言、语系名称
HISTSIZE	输出的历史命令记录条数
HISTFILESIZE	保存的历史命令记录条数
PS1	Bash解释器的提示符
MAIL	邮件保存路径

3.1 PATH: 命令的搜索路径

PATH 决定了shell将到哪些目录中寻找命令或程序
当运行一个命令的时候,linux在PATH目录下搜索遍历。
该变量指定命令的搜索路径。

如:ls 命令执行时候,首先去PATH指定的目录下搜索可执行程序进行执行。

[root@glusterfs home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

说明:
从中可以看出,在当前目录下,PATH的值。它表示在当前目录下执行的每一条指令的搜索路径,每个目录以冒号隔开。当执行一条指令时,系统就会从系统文件中去寻找,找到了就执行;否则不执行。

4. 设置变量的三种方法

4.1 修改 /etc/profile

在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量

vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行#
source /etc/profile不然只能在下次重进此用户时生效。

4.2 修改 .bash_profile文件

在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash_profile
vi/home/guok/.bash.profile添加如下内容:exportCLASSPATH=./JAVAHOME/lib;vi/home/guok/.bash.profile添加如下内容:exportCLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。

4.3 export命令定义变量

直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值] 定义变量,

该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,

shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

5. 环境变量的查看:echo $PATH,env或 printenv 或 export或set

1 使用echo命令查看单个环境变量。例如:
echo $PATH
2 使用env或 printenv 或 export 查看所有环境变量。例如:
env
3 使用set查看所有本地定义的环境变量。

6. 例子说明

6.1 export 该命令指定设置一个新的环境变量。

6.1 export 新增环境变量

[root@glusterfs home]# export HANI_ENV="test hani"
[root@glusterfs home]# env
……
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
HANI_ENV=test hani
……
[root@glusterfs home]# echo $HANI_ENV
test hani
[root@glusterfs home]#

6.2 export 修改环境变量

[root@glusterfs home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@glusterfs home]# 
[root@glusterfs home]# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home
[root@glusterfs home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home
[root@glusterfs home]#

注意:环境变量一般用英文字母大写加下划线表示。

6.2 unset 该命令指定清除环境变量。

[root@glusterfs home]# unset HANI_ENV
[root@glusterfs home]# echo $HANI_ENV

[root@glusterfs home]#

6.3 /etc/profile 修改环境变量

PATH 后添加了 /etc/,后面验证ok。

root@glusterfs home]# vi /etc/profile
最后添加如下:
export PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home:/etc/"

source 一下
[root@glusterfs home]# source /etc/profile

查看:
[root@glusterfs home]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/home:/etc/
[root@glusterfs home]#

参考:

http://c.biancheng.net/view/5970.html
https://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html

https://www.cnblogs.com/tinywan/p/7224011.html?utm_source=itdadao&utm_medium=referral

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值