常用環境變量
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參數…。