简介
shell变量分为两种,env变量和set变量:
- env变量:只在当前会话中有效,属于用户环境变量,也可以称为全局变量;
- set变量:只在自身shell脚本中有效,属于内置变量(也称局部变量),但可以通过export导入到env变量中;
由于在当前会话中,可以包含很多shell脚本的运行,所以set变量中是包含了env变量,但set变量却局限于当前shell操作,无法自动导入env变量中;这也就说明env变量的作用域比set变量大很多;
常用环境变量
PATH:系统路径,用于定义可执行文件的搜索路径。当我们输入一个命令时,Shell会在PATH变量指定的路径中搜索该命令的可执行文件;
HOME:当前用户家目录
SHELL:当前用户用的是哪种shell.
USER
:用户名
LOGNAME:当前用户登录名。
HOATNAME:主机名称,若应用程序要用到主机名的话,一般是从这个环境变量中的取得的.
LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量.
MAIL:当前用户的邮件存放目录.
HISTSIZE:保存历史命令记录的条数。
RANDOM
:一个0到32767之间的随机数
GROUPS :当前用户所属的群组
UID:当前用户的id
MACHTYPE:机器类型
HOSTTYPE:系统架构类型
OSTYPE :操作系统类型
TMOUT:设置自动退出的无操作等待时间,当TMOUT不为0时,Shell在TMOUT秒后,将自动注销;
SECONDS: 记录脚本从开始执行到结束所耗费的时间,以秒为单位;
BASH_VERSINFO :一个数组,包含6个元素,用于表示bash的版本信息
BASH_SUBSHELL:记录子Shell的层次,在bash版本3之后出现的。
PS1:命令提示符设置,通常用于自定义Shell提示符的外观和行为
PS2:Shell续行提示符的格式,也就是多行命令时