shell基础-bash变量-环境变量

时间:2022-12-12 23:38:48

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的值,进而修改系统的提示符。
只会临时生效。