环境变量

变量是计算机系统用于保存可变值的数据类型。在Linux系统中,变量名称一般都是大写的,这是一种约定俗成的规范。我们可以直接通过变量名称来提取到对应的变量值。Linux系统中的环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录、邮件存放位置等。

环境变量配置位于 ~/.bash_profile

$ vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH

Linux系统中最重要的10个环境变量:

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

PATH

PATH 不同的环境变量使用 : 分割。

执行source命令使其生效:

source ~/.bash_profile

也可直接对PATH变量进行设置

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
PATH=$PATH:/root/bin
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

这里有比较经典的问题:“为什么不能将当前目录(.)添加到PATH中呢? ” 原因是,尽管可以将当前目录(.)添加到PATH变量中,从而在某些情况下可以让用户免去输入命令所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp中存放了一个与ls或cd命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了。

自定义环境变量

其实变量是由固定的变量名与用户或系统设置的变量值两部分组成的,我们完全可以自行创建变量,来满足工作需求。例如设置一个名称为WORKDIR的变量,方便用户更轻松地进入一个层次较深的目录:

mkdir /home/workdir
WORKDIR=/home/workdir
cd $WORKDIR
$ pwd
/home/workdir

但是,这样的变量不具有全局性,作用范围也有限,默认情况下不能被其他用户使用。如果工作需要,可以使用export命令将其提升为全局变量,这样其他用户也就可以使用它了:

[root@linuxprobe workdir]# su linuxprobe
Last login: Fri Mar 20 20:52:10 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ cd $WORKDIR
[linuxprobe@linuxprobe ~]$ echo $WORKDIR
[linuxprobe@linuxprobe ~]$ exit
[root@linuxprobe ~]# export WORKDIR
[root@linuxprobe ~]# su linuxprobe
Last login: Fri Mar 20 21:52:10 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ cd $WORKDIR
[linuxprobe@linuxprobe workdir]$ pwd
/home/workdir

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress