新聞中心
UNIX 環(huán)境
UNIX 中一個(gè)重要的概念是環(huán)境,它是由環(huán)境變量所定義。一些環(huán)境變量是由系統(tǒng)設(shè)置,有一些是由用戶設(shè)置的,還有一些是被 Shell,或任何會(huì)加載另一個(gè)程序的程序所設(shè)置。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的松陽網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
一個(gè)變量是由一個(gè)字符組成的串,并且我們會(huì)給它賦值。給變量賦的值可以是一個(gè)數(shù)字,文本,文件名,設(shè)備或任何其他類型的數(shù)據(jù)。
例如,首先,我們設(shè)置一個(gè)名稱為 TEST 的變量,然后我們使用 echo 命令查看它的值:
$TEST="Unix Programming"
$echo $TEST
Unix Programming注意,設(shè)置環(huán)境變量不使用 $ 符號(hào),但在訪問他們的時(shí)候,我們使用 $ 符號(hào)作為前綴。這些變量保存它們的值,直到我們退出 shell。
當(dāng)你登錄到系統(tǒng),shell 經(jīng)過初始化階段,在該階段會(huì)設(shè)置各種環(huán)境變量。這通常會(huì)涉及到兩步的處理過程,shell 會(huì)讀取以下文件:
/etc/profile- profile
處理流程如下:
- shell 程序檢查 /etc/profile 文件是否存在。
- 如果該文件存在,shell 程序會(huì)讀取該文件。否則,就會(huì)跳過該文件。同時(shí)也不會(huì)顯示任何錯(cuò)誤信息。
- shell 程序檢查 .profile 文件是否在你的根目錄下面存在。您的根目錄就是你在登錄之后進(jìn)入的目錄。
- 如果該文件存在,shell 程序就會(huì)讀取它。否則,shell 程序跳過它,不會(huì)顯示任何錯(cuò)誤信息。
一旦這兩個(gè)文件讀取完成,shell 顯示一個(gè)等待輸入命令:
$這是提示,在它后面你可以輸入命令來執(zhí)行。
注意:Shell 初始化的詳細(xì)過程通常利用的是 Bourne Shell,但是其他的一些文件處理是利用 bash 和 ksh shell 程序。
.profile 文件
/etc/profile 文件是由 UNIX 的系統(tǒng)管理員維護(hù)的,并且該文件中包含了 Shell 初始化的信息,這個(gè)信息可以被任何系統(tǒng)中的任何用戶查看。
如果你有對(duì) .profile 文件操作的權(quán)限,那么你就可以在這個(gè)文件中添加你想要的盡可能多的定制 Shell 信息。
- 你使用的終止符的類型
- 命令存在的一系列文件的列表
- 一些列的變量設(shè)置你的終端顯示的效果
你可以在你的根目錄下面查看 .profile 文件。利用 vi 編輯器打開它,查看其中設(shè)置的所有環(huán)境變量。
設(shè)置終結(jié)符的類型
通常您所使用的終端的類型由 login 或 getty 程序自動(dòng)配置。有時(shí),自動(dòng)配置過程會(huì)推測你的終端類型是不對(duì)的。
如果您的終端設(shè)置錯(cuò)誤,命令的輸出可能看起來很奇怪,或者你可能無法與 Shell 正常交互。
確保這不是這種情況,大多數(shù)用戶的終端最少相同的特性如下:
$TERM=vt 100
$
設(shè)置 PATH 變量
當(dāng)你在命令提示符下輸入任何命令,Shell 只有確定了命令所在的目錄才能執(zhí)行命令。
Shell 是在環(huán)境變量 PATH 中尋找命令所在的目錄。通常,它設(shè)置如下:
$PATH=/bin:/usr/bin
$這里的每一個(gè)由冒號(hào),:,分開的實(shí)體是目錄。如果你請求 Shell 執(zhí)行一個(gè)命令,但是它不能在 PATH 環(huán)境變量中找到任何命令所在的路徑,這時(shí)會(huì)出現(xiàn)一個(gè)類似如下的消息:
$hello
hello: not found
$還有類似于 PS1 和 PS2 這樣的變量,將會(huì)在下一節(jié)說明。
PS1 和 PS2 變量
shell 顯示給你的命令提示符存儲(chǔ)在變量 PS1 中。你可以改變這個(gè)變量成任何你想要的字符。只要你改變它,它就會(huì)從你改變后開始起作用。
例如,如果你輸入如下的命令:
$PS1='=>'
=>
=>
=>你的提示輸入符將會(huì)變成 =>。設(shè)置 PS1 的值,讓它顯示工作目錄,輸入如下的命令:
=>PS1="[\u@\h \w]\$"
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
[root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$該命令的結(jié)果是,顯示用戶的用戶名、機(jī)器名稱(主機(jī)名),和工作目錄。
有相當(dāng)多的轉(zhuǎn)義序列,可以用作 PS1 的參數(shù),盡量讓自己只關(guān)注最關(guān)鍵的部分,不要讓下面的信息對(duì)你造成過多的壓力。
| 轉(zhuǎn)義序列 | 描述 |
|---|---|
| \t | 將當(dāng)前的時(shí)間表示成 HH:MM:SS 的形式 |
| \d | 將當(dāng)前的日期表示成 周 月 日 |
| \n | 新的一行。 |
| \s | 當(dāng)前的環(huán)境變量。 |
| \W | 工作目錄。 |
| \w | 工作目錄的完整路徑。 |
| \u | 當(dāng)前用戶的用戶名。 |
| \h | 當(dāng)前機(jī)器的主機(jī)名稱。 |
| \# | 當(dāng)前命令的編號(hào)。每輸入一條命令編號(hào)加 1。 |
| \$ | 如果有效的 UID 是 0(也就是說,如果你以 root 用戶進(jìn)行登錄),命令提示符會(huì)變成 #,否則,提示符是 $。 |
你可以通過修改 .profile 文件,在每次登錄的時(shí)候進(jìn)行上面的那些轉(zhuǎn)換。這樣每次登錄就會(huì)自動(dòng)的改變 PS1 的值。
當(dāng)你輸入一個(gè)不完整的命令是,shell 將再次顯示一個(gè)命令輸入符,等待你再次完成命令并回車。
默認(rèn)二級(jí)提示 >(大于號(hào)),但可以改變通過設(shè)置 PS2 變量進(jìn)行修改:
下面的示例使用默認(rèn)的二級(jí)提示:
$ echo "this is a
> test"
this is a
test
$下面是一個(gè)通過重新定義 PS2 變量自定義輸入符的示例:
$ PS2="secondary prompt->"
$ echo "this is a
secondary prompt->test"
this is a
test
$
環(huán)境變量
以下是部分重要的環(huán)境變量的列表。這些變量將按照上面提到的方式被設(shè)置和訪問:
| 變量 | 描述 |
|---|---|
| DISPLAY | 包含顯示設(shè)備的標(biāo)識(shí)符,默認(rèn)情況下它的值是 X11。 |
| HOME | 表明當(dāng)前用戶的根目錄,默認(rèn)的參數(shù)中會(huì)內(nèi)置 cd 命令。 |
| IFS | 表明系統(tǒng)內(nèi)部所使用字段分隔符,它通常用在解析器分割單詞中。 |
| LANG | LANG 擴(kuò)展系統(tǒng)默認(rèn)的語言:LC_ALL 可以用來覆蓋這個(gè)變量。例如,如果它的值是 pt_BR,那么系統(tǒng)的語言就被設(shè)置成(Brazillian)Portuguese 和地區(qū)被設(shè)置成 Brazil。 |
| LD_LIBRARY_PATH | 許多 UNIX 系統(tǒng)動(dòng)態(tài)鏈接器,包含以冒號(hào)分隔的目錄列表,在執(zhí)行后,動(dòng)態(tài)連接器構(gòu)建過程圖像過程中,在搜索其他目錄之前,先搜索共享對(duì)象。 |
| PATH | 命令的搜索路徑。它是由冒號(hào)分隔開一系列目錄,也就是 shell 尋找命令所在的目錄。 |
| PWD | 當(dāng)前的工作目錄,由 cd 命令設(shè)置的。 |
| RANDOM | 每次被引用的時(shí)候就會(huì)生成一個(gè) 0 到 32,767 范圍內(nèi)的一個(gè)隨機(jī)整數(shù)。 |
| SHLVL | 每次一個(gè) bash 實(shí)例被啟動(dòng)這個(gè)值就會(huì)加 1。這個(gè)變量對(duì)于決定內(nèi)置的退出命令是否終止當(dāng)前會(huì)話是很有用的。 |
| TERM | 顯示類型。 |
| TZ | 時(shí)間區(qū)域。它能被賦值為 GMT,AST 等。 |
| UID | 數(shù)值類型標(biāo)識(shí)當(dāng)前用戶,它在 shell 啟動(dòng)的時(shí)候被初始化。 |
如下是幾個(gè)簡單的例子顯示幾個(gè)環(huán)境變量:
$ echo $HOME
/root
]$ echo $DISPLAY
$ echo $TERM
xterm
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin
$ 文章題目:創(chuàng)新互聯(lián)UNIX教程:UNIX環(huán)境
轉(zhuǎn)載來源:http://m.fisionsoft.com.cn/article/cohjeih.html


咨詢
建站咨詢
