环境变量PATH,这个环境变量就是shell预设的一个变量,通常shell预设的变量都是大写的。变量,说简单点就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。就拿PATH来讲,这个PATH就代替了所有常用命令的绝对路径的设定。因为有了PATH这个变量,所以我们运行某个命令时不再去输入全局路径,直接敲命令名即可。你可以使用echo命令显示变量的值。

wKiom1Q_UXCya57iAAC67tpe6qQ123.jpg

   使用env命令即可全部列出系统预设的全部系统变量了。不过登录的用户不一样这些环境变量的值也不一样。当前显示的就是root这个账户的环境变量了。

wKioL1Q_UbrSicwiAADBBVh4O3U815.jpg

常见的环境变量:

  PATH 决定了shell将到哪些目录中寻找命令或程序

  HOME 当前用户主目录

  HISTSIZE 历史记录数

  LOGNAME 当前用户的登录名

  HOSTNAME 指主机的名称

  SHELL 前用户Shell类型

  LANG 语言相关的环境变量,多语言可以修改此环境变量

  MAIL 当前用户的邮件存放目录

  PWD 当前目录


可以使用set命令把系统预设的全部变量都显示出来。

wKiom1Q_UajTuBFaAAFS1dE-8Z4958.jpg

1)要想系统内所有用户登录后都能使用该变量

   需要在/etc/profile文件最末行加入“export 变量=变量的值” 然后运行”source /etc/profile”就可以生效了。此时你再运行bash命令或者直接su - yixuan账户看看。

wKioL1Q_Uf-BVwAhAACF1wBlKAU383.jpg

2)只想让当前用户使用该变量

   需要在用户主目录下的.bashrc文件最后一行加入“export 变量=变量的值” 然后运行”source .bashrc”就可以生效了。这时候再登录test账户,myname变量则不会生效了。上面用的source命令的作用是,讲目前设定的配置刷新,即不用注销再登录也能生效。


在linux下设置自定义变量规则

a. 设定变量的格式为”a=b”,其中a为变量名,b为变量的内容,等号两边不能有空格;

b. 变量名只能由英、数字以及下划线组成,而且不能以数字开头;

c. 当变量内容带有特殊字符(如空格)时,需要加上单引号;

wKioL1Q_UmGgEpW6AABA5ykOqog687.jpg

有一种情况,需要你注意,就是变量内容中本身带有单引号,这就需要用到双引号了。

wKiom1Q_UjuA-HEBAAA_lVDV2lQ436.jpg

d. 如果变量内容中需要用到其他命令运行结果则可以使用反引号;

wKioL1Q_UxShvHQ4AAA42jANHaY740.jpg

e. 变量内容可以累加其他变量的内容,需要加双引号;

wKioL1Q_Ux6TZr4KAABOnwUxRiI185.jpg


单引号和双引号的区别:

   用双引号时不会取消掉里面出现的特殊字符的本身作用(这里的$),而使用单引号则里面的特殊字符全部失去它本身的作用。


声明变量:export让该shell的子shell也知道某个变量的值是什么,如果export后面不加任何变量,则会声明所有变量。

wKioL1Q_UzSA-yVbAAC35t1k0Nw359.jpg

取消变量:unset变量名。

wKioL1Q_U0qBV_NMAABWnCO5bPc492.jpg