1 变量的分类
在Linux中,变量分为环境变量 和 局部变量。
环境变量能被子进程继承,而局部变量只能在当前进程中使用。
并且,不论是环境变量还是局部变量,他们又都可以分为系统变量 和 自定义变量。系统变量是系统启动时自动创建的变量,往往为系统运行提供支持;而自定义变量是用户自己定义的。一般而言,系统变量全为大写,自定义变量全为小写。
1.1 常见的环境变量
系统提供了一些默认的环境变量,如下:
- HOME:用户主目录
当我们使用cd 或cd ~时就会调用这个环境变量找到用户主目录。 - SHELL:当前使用的SHELL
- HISTSIZE:历史命令的最大条数
- MAIL:当前用户的邮箱目录
- PATH:可执行文件的查找路径。
这是一个非常重要的环境变量,当我们直接写一个命令时,系统就会在PATH路径中寻找这个命令,这样我们在执行命令的时候就不用输命令完整的路径了。多个路径之间用:分隔。 - LANG:当前系统的语言
- RANDOM:随机数生成器的路径。
该路径默认指向/dev/random这个文件,这个文件是一个随机数生成器,当我们使用$RANDOM时就能获得一个0-32767之间的随机整数。
1.2 常见的局部变量(非环境变量)
- PS1:命令提示符
在命令输入光标前有一串用中括号括起来的信息,这就是命令提示符。命令提示符究竟需要显示哪些信息,这就是由PS1这个局部变量决定的。由于它是局部变量,因此子进程中无法继承这个变量,子进程拥有自己的PS1。
我们可以修改这个变量,使得它显示我们需要的信息,如:我们让命令提示符显示当前用户名和当前完整的路径:
[root@iZ28st035lsZ ~]# PS1='[\u:\w]:'
[root:~]:
- $:当前shell的PID
可以通过如下命令查看当前shell的PID:
echo $$
- ?:上个命令的执行结果
上个命令若执行成功,则echo $?就会返回0;若上个命令执行失败,则该值为一个非0整数。
1.3 环境变量与局部变量的区别
环境变量相当于