在Linux中,環境變量是一個很重要的概念。環境變量可以由系統、用戶、Shell以及其他程序來設定。
變量就是一個可以被賦值的字符串,賦值范圍包括數字、文本、文件名、設備以及其他類型的數據。
下面的例子,我們將為變量 TEST 賦值,然後使用 echo 命令輸出:
$TEST="Linux Programming" $echo $TEST Linux Programming
注意:變量賦值時前面不能加 $ 符號,變量輸出時必須要加 $ 前綴。退出 Shell 時,變量將消失。
登錄系統後,Shell會有一個初始化的過程,用來設置環境變量。這個階段,Shell會讀取 /etc/profile 和 .profile 兩個文件,過程如下:
讀取完上面兩個文件,Shell就會出現 $ 命令提示符:
$
出現這個提示符,就可以輸入命令並調用相應的程序了。
注意:上面是Bourne Shell的初始化過程,bash 和 ksh 在初始化過程中還會檢查其他文件。
/etc/profile文件包含了通用的Shell初始化信息,由Linux管理員維護,一般用戶無權修改。
但是你可以修改主目錄下的 .profile 文件,增加一些“私人定制”初始化信息,包括:
找到主目錄下的 .profile 文件,使用 vi 編輯器打開並查看內容。
一般情況下,我們使用的終端是由 login 或 getty 程序設置的,可能會不符合我們的習慣。
對於沒有使用過的終端,可能會比較生疏,不習慣命令的輸出樣式,交互起來略顯吃力。所以,一般用戶會將終端設置成下面的類型:
$TERM=vt100 $
vt100 是 virtual terminate 100 的縮寫。虛擬終端是一種假的終端,真正有自己的顯示器和鍵盤的終端,會通過特殊電纜(如串口)連到計算機主機。vt100 是被絕大多數Linux系統所支持的一種虛擬終端規范,常用的還有ansi、xterm等。
在命令提示符下輸入一個命令時,Shell 會根據 PATH 變量來查找該命令對應的程序,PATH變量指明了這些程序所在的路徑。
一般情況下PATH變量的設置如下:
$PATH=/bin:/usr/bin $
多個路徑使用冒號(:)分隔。如果用戶輸入的命令在PATH設置的路徑下沒有找到,就會報錯,例如:
$hello hello: not found $
PS1變量用來保存命令提示符,可以隨意修改,如果你不習慣使用 $ 作為提示符,也可以改成其他字符。PS1變量被修改後,提示符會立即改變。
例如,把命令提示符設置成’=>’:
$PS1='=>' => => =>
也可以將提示信息設置成當前目錄,例如:
=>PS1="[\u@\h \w]\$" [root@ip-72-167-112-17 /var/www/tutorialspoint/Linux]$ [root@ip-72-167-112-17 /var/www/tutorialspoint/Linux]$
命令提示信息包含了用戶名、主機名和當前目錄。
下表中的轉義字符可以被用作PS1的參數,豐富命令提示符信息。
你可以在每次登錄的時候修改提示符,也可以在 .profile 文件中增加 PS1 變量,這樣每次登錄時會自動修改提示符。
如果用戶輸入的命令不完整,Shell還會使用第二提示符來等待用戶完成命令的輸入。默認的第二命令提示符是 >,保存在 PS2 變量,可以隨意修改。
下面的例子使用默認的第二命令提示符:
$ echo "this is a > test" this is a test $
下面的例子通過PS2變量改變提示符:
$ PS2="secondary prompt->" $ echo "this is a secondary prompt->test" this is a test $
下表列出了部分重要的環境變量,這些變量可以通過上面提到的方式修改。
下面的例子中使用了部分環境變量:
$ echo $HOME /root ]$ echo $DISPLAY $ echo $TERM xterm $ echo $PATH /usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin $