常用环境变量
HOME: 使用者的目录地址
BASH: 目前使用的shell
HISTSIZE: 保留历史命令的数目上限
PATH:系统默认的可执行文件搜索路径
LANG:系统使用的编码。很多程序是根据系统指定的编码去解析输入文件,如果编码不正确,很多文件就无法正确解析。
RANDOM:随机产生一个0~32767之间的随机数
PS1:即命令提示符的格式,就是shell命令行前方的图标。
$:表示当前shell的pid
$> echo $$
?:上一个shell命令的返回值
OSTYPE:系统类型
HOSTTYPE, MACHTYPE:系统指令集的位数(例如:x86_64)
查看变量
可以使用env命令观察当前shell环境下的环境变量
$> env
可以使用set命令查看当前shell环境下的所有变量(包括用户自定变量)
>$ set
不論是否為環境變數,只要跟我們目前這個 shell 的操作介面有關的變數, 通常都會被設定為大寫字母,也就是說,在 Linux 預設的情況中,使用大写字母來設定的變數一般為系統內定需要的变量。
自定义环境变量
注意,当前的shell生成子shell时,子shell只会继承父shell的环境变量而不继承自定义变量,因此如果要将当前shell定义的变量传入子shell中就需要将之定义为自定义的环境变量,这个就通过export命令完成。
$特殊变量值意义
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。