linux全套 | Linux的环境变量 | 17
常用的环境变量
linux
环境变量也称之为Shel
l环境变量,也遵循标识符规范,但是习惯上使用大写字母,例如PATH
,JAVA_HOME
,LANG
等.
查看环境变量
env
查看当前用户的全部环境变量
使用env
命令的时候,满屏显示了很多环境变量,不方便查看,可以使用grep
筛选.
env | grep PATH
echo $环境变量名字
输出指定的环境变量
设置环境变量
(1)
变量名='值'
export 变量名
(2) 推荐下面这种写法
export 变量名='值'
说明: 如果环境变量的值没有空格等特殊符号,可以不用单引号包含.
注意: 如果采用export
设置的环境变量,在退出Shell
后就会失效,下次登录需要重新设置. 如果希望环境变量永久生效,需要在登录脚本文件中配置.
下面以配置Python
环境为例子
cd /etc/profile.d 进入全局环境变量的脚本目录
vim python3.sh 编写环境变量的脚本
=====python3.sh=====
export PYTHON_HOME=/opt/python3.7
export PATH=${PYTHON_HOME}/bin:$PATH
====================
source /etc/profile 更新全局的配置脚本
系统环境变量
系统环境变量对全部的用户生效,设置系统环境变量有三种方法.
- 在
etc/profile
文件中设置(不推荐)
用户登录时执行/etc/profile
文件中的设置系统的环境变量.
但是,linux
不建议在/etc/profile
中设置系统环境变量.
- 在
/etc/profile.d
目录中增加环境变量脚本文件.这是linux
推荐的方法
/etc/profile
在每次启动时会执行/etc/profile.d
下全部的脚本文件.
/etc/profile.d
比/etc/profile
好维护,不想要变量直接删除对应的.sh
文件即可.
/etc/bashrc
文件中设置环境变量
该文件配置的环境变量会影响全部用户使用bash shell
.
但是linux
也不建议在/etc/bashrc
中设置系统环境变量.
用户环境变量
.bash_profile
(推荐)
当用户登录时执行,每个用户都可以使用该文件来配置专属自己的环境变量.
.bashrc
当用户登录时以及每次打开新的Shell
时该文件都将被读取.
不推荐在里面配置用户专用的环境变量,因为每开一个Shell
,该文件都会被读取一次,效率肯定受影响.
.bash_logout
当每次退出系统(退出bash shell
)时执行该文件.
.bash_history
保存了当前用户使用过的历史命令.
重要的环境变量的详解
PATH环境变量
可执行程序的搜素目录,可执行程序包括linux
系统命令和用户的的应用程序.
如果可执行程序的目录不在PATH
指定的目录中,执行是需要执行目录.
-
PATH
环境变量存放的是目录列表,目录之间用冒号:
分隔(类似windows
的分号) -
PATH
默认包含了linux
系统命令的所在目录/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
, 如果不包含这些目录,linux
的常用命令也无法执行(需要输出绝对路径才能执行) -
如果
PATH
最后没有加:.
,那么执行当前目录下的程序需要加./
或使用绝对路径. -
对
PATH
进行扩充的例子export PATH=$PATH:$HOME/bin
环境变量的生效
-
在
Shell
下,用export
设置的环境变量对当前的Shell
立即生效,Shell
退出后失效 -
在脚本文件中设置的环境变量不会立即生效,退出
Shell
后重新登录,或使用source 配置脚本
应用经验
虽然设置环境变量的方式有多种,但是建议系统环境变量在/etc/profile.d
中进行配置,用户环境变量在~/.bash_profile
, 不建议在其他脚本中配置环境变量,会增加运维的麻烦,容易出错.