摘要:环境变量是在操作系统中定义的一些变量,负责保存系统的一些基本信息。这些信息可以是路径、命令别名、用户配置等。环境变量被用于告诉系统在运行程序或命令时需要查找的路径、库和其他系统资源的位置。了解Linux环境变量的作用可以更好地配置和管理Linux系统,提高系统的可用性和安全性。
在Linux系统中,环境变量都是以字符串的形式存储在操作系统内存中的。Linux系统将这些字符串称为环境变量字符串。环境变量字符串是由变量名和值组成的键值对,用“=”连接,多个环境变量的变量之间用“:”隔开。可以使用export命令来设置环境变量,使用env命令和echo命令查看和调试环境变量。
本文主要介绍Linux系统中环境变量的查看及设置方法,详细内容请参考下文。
一、Linux系统
1、登录Linux系统
2、查看当前系统变量
指向指令# export
二、什么是环境变量
1、环境变量简介
用来存储关于shell会话和工作环境的信息,就叫做环境变量。一般情况下,按照生命周期来分,Linux环境变量可以分为永久变量和临时变量两类。
(1)、永久变量:需要用户修改相关的配置文件,变量永久生效。
(2)、临时变量:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。
2、查看环境变量
(1)、使用env查看所有环境变量
执行指令# env或者printenv
(2)、使用echo命令查看单个环境变量
执行指令# echo $PATH
备注:常用环境变量
序号 |
变量名 |
变量作用 |
1 |
PATH |
指定命令的搜索路径 |
2 |
HOME |
指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录) |
3 |
HISTSIZE |
保存历史命令记录的条数 |
4 |
LOGNAME |
当前用户的登录名 |
5 |
HOSTNAME |
主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。 |
6 |
SHELL |
当前用户用的是哪种Shell |
7 |
LANG/LANGUGE |
和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。 |
8 |
|
当前用户的邮件存放目录 |
9 |
PS1 |
命令基本提示符,对于root用户是#,对于普通用户是$。 |
10 |
PS2 |
附属提示符,默认是“>”。 |
(3)、使用set查看所有本地定义的环境变量
(4)、使用unset删除指定的环境变量
说明:set命令可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。
示例如下:
export ABC=”Hello World” #增加一个环境变量ABC
env | grep ABC #此命令有输入,证明环境变量ABC已经存在了
unset ABC #删除环境变量ABC
$ env|grep ABC #此命令没有输出,证明环境变量ABC已经删除
3、设置环境变量
(1)、在/etc/profile文件中添加变量
说明:使用vim工具在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
比例,编辑/etc/profile文件,添加CLASSPATH变量
执行指令# vim /etc/profile
在该文件的末尾添加以下语句
export CLASSPATH=http://www.toutiao.com/a/JAVA_HOME/lib;$JAVA_HOME/jre/lib
备注:注:修改文件保存后要想马上生效还要运行# source /etc/profile不然只能在下次重新登录此用户时生效。
(2)、在用户目录下的.bash_profile文件中添加变量
说明:使用vim工具在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
比如编辑user用户目录(/home/user)下的.bash_profile
执行指令# vim /home/user/.bash_profile
在该文件的末尾添加以下语句
export CLASSPATH=http://www.toutiao.com/a/JAVA_HOME/lib;$JAVA_HOME/jre/lib
备注:修改文件后要想马上生效还要运行$ source /home/user/.bash_profile不然只能在下次重新登录此用户时生效。
(3)、直接运行export命令定义变量
说明:在shell的命令行下直接使用[export 变量名=变量值] 定义变量,比如export ABC=”Hello World” #增加一个环境变量ABC。
该变量只在当前的shell或其子shell下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
三、怎么加载环境变量
1、环境变量的分类
说明:本节介绍环境变量的加载顺序,涉及环境变量的另一个分类标准,按系统加载的先后顺序,可以将环境变量简单的划分为系统级别环境变量和用户自定义环境变量两类。
(1)、系统级别环境变量定义文件:/etc/bashrc和/etc/profile
(2)、用户级别环境变量定义文件:~/.bashrc和~/.bash_profile
备注:在用户环境变量中,系统会首先读取~/.bash_profile文件,如果没有该文件则读取~/.bashrc。
2、环境变量加载顺序测试
(1)、为了测试各个不同文件的环境变量加载顺序,在每个环境变量定义文件中的第一行都定义相同的环境变量VAR_ORDER,该变量的值为本身的值连接上当前文件名称。
在每个文件中的第一行都加上下面这句代码,并相应的把冒号后的内容修改为当前文件的绝对文件名。
export VAR_ORDER=”$VAR_ORDER:~/.bash_profile”
需要修改的文件如下:
/etc/environment
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
(2)、修改完之后保存,新开一个窗口,然后echo $VAR_ORDER观察变量的值。
可以推测出Linux加载环境变量的顺序如下:
/etc/environment
/etc/profile
/etc/bashrc
~/.bash_profile
~/.bashrc
3、环境变量加载顺序
说明:由上面的测试可容易得出Linux加载环境变量的顺序如下:
系统环境变量 -> 用户自定义环境变量
/etc/environment -> /etc/profile -> ~/.bash_profile
4、环境变量加载技巧
(1)、可以根据项目需要自定义一个环境变量文件,比如在某个项目下定义gzprg.profile,并在这个文件中使用export定义一系列变量,然后在~/.bash_profile文件后面加上:source gzprg.profile变量,这样每次登陆都可以在Shell脚本中使用自己定义的一系列变量。
(2)、可以使用alias别名命令定义一些命令的别名,比如alias rm=”rm -i”(双引号必须),并把这个代码加入到~/.bash_profile中,这样每次使用rm命令的时候,都相当于使用rm -i命令了。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/17299.html