Shell變數分為環境變數和自訂變數,這兩則的差異在於該變數能否被子進程使用,看下面的一個示 意圖:
如果是環境變數,子進程中還可以繼續使用,但如果是自訂的變數,子進程裡將失效。
用env查看環境變數
常見的環境變數如下:
1)HOME:使用者的主目錄(cd ~)
2)SHELL:使用者的預設shell
3)HISTSIZE:記錄條數
4)MAIL:郵件信箱檔案
5)PATH:執行檔案尋找路徑
6)LANG:語系
用set查看環境變數和自訂變數
比較重要的自訂變數有:
1)PS1:提示符設定
2)$:本shell的PID
3)?:上個執行命令的返回碼
用export把自訂變數變成環境變數
上面我們提到過,只有環境變數才能被子進程使用,所以如果你想讓某個自訂變數可以被子進程使 用,就使用export命令把它變成環境變數。
變數的顯示和取消 - echo unset
echo用於顯示變數的值,如:
# echo $SHELL
/bin/bash
unset用於取消變數,如:
# export a=1 # echo $a 1 # unset a # echo $a -- 返回空
語系變數 - locale和LANG
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/Linux/
我們通過locale命令可以獲得當前的語系編碼,如下所示:
# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=
在實際使用中,其實只要設定LANG變數即可。預設的語系變數由以下檔案定義:
# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb- sun16"
變數的聲明 - declare
由declare聲明的變數預設是自訂的變數,如果加上-x參數表示定義為環 境變數(同export的效果一樣)
對使用者的資源限制 - ulimit
執行ulimit -a即可列出目前使用者資源使用限制情況:
# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 29823 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 65535 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited