1. 什么是环境变量
自定义变量只在当前的shell中生效,而环境变量会在当前的shell和这个shell的所有子shell中生效。
如果把环境变量写入配置文件,它就会在所有的shell中生效。
Linux系统中有一些内置的环境变量,用户可以修改系统环境变量的值,也可以自定义新的环境变量。
2. 操作环境变量
定义环境变量:
格式:export 变量名=变量值
export AGE=18
定义一个新的环境变量AGE,值为18。
也可将一个已经存在的本地变量(自定义变量)定义为环境变量。
格式:export 变量名
查看环境变量:
env
查看所有的环境变量。
上述命令看不到PS1这个环境变量,它是环境变量中的一个子分支,一个特例,可以通过set命令查看。
调用环境变量:
格式:$变量名
echo $AGE
删除环境变量:
格式:unset 变量名
子shell:
bash
在当前的shell(Linux默认是bash)中,生成一个子shell。
pstree
查看系统的进程树,可以识别当前是处于哪一层shell中。
exit命令可以退出一层shell。
3. 系统中常见的环境变量
系统中的环境变量有多个,这里只讲解常见的两个:PATH和PS1。
3.1 PATH
PATH的值是一系列路径字符串,是系统查找命令的路径,各个路径之间用冒号分割。
Linux中绝大多数的系统命令都是二进制的可执行文件。
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
修改PATH的值:
PATH="$PATH":/root/sh
将字符串 :/root/sh 拼接到环境变量PATH的值的后面。
注意:这种更改环境变量PATH的值的方式只会临时生效,一旦重启,就会恢复原来的值。要想永久生效,需修改环境变量配置文件。
3.2 PS1
PS1的作用是定义系统提示符的格式,默认值是’[\u@\h \W]$ ‘。
注意:最后有一个空格。
[root@localhost ~]# echo $PS1 [\u@\h \W]\$
对于PS1的值,可选的特殊字符有:
\d 显示当前日期。格式为“星期 月 日”。
\h 显示简写主机名。默认主机名为“localhost”。
\t 显示24小时制时间。格式为“HH:MM:SS”。
\T 显示12小时制时间。格式为“HH:MM:SS”。
\A 显示24小时制时间(不包含秒)。格式为“HH:MM”。
\u 显示当前用户名。
\w 显示用户当前所在目录的完整名称。
\W 显示用户当前所在目录的最后一个文件夹。
\# 显示这是第几条命令。
\$ 起始符。root用户,显示#;普通用户,显示$。
修改PS1的值:
PS1='[\u@\h \A \w]\$ '
修改环境变量PS1的值,进而修改系统的提示符。
只会临时生效。