在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 環(huán)境
通信工具
信號和 Traps
文件管理
vi 編輯器使用向?qū)?/span>
替代
變量
環(huán)境
進(jìn)程管理
實(shí)用工具
引用機(jī)制
Manpage 幫助
文件系統(tǒng)基礎(chǔ)知識
系統(tǒng)日志
循環(huán)
正則表達(dá)式和 SED
目錄
函數(shù)
管道和過濾器
特殊變量
輸入/輸出重定向
系統(tǒng)性能
用戶管理
循環(huán)控制
決策
什么是 UNIX ?
數(shù)組
什么是 Shell 腳本
基本操作符
文件權(quán)限

環(huán)境

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

一個(gè)變量是由一個(gè)字符組成的串,并且我們會(huì)給它賦值。給變量賦的值可以是一個(gè)數(shù)字,文本,文件名,設(shè)備或任何其他類型的數(shù)據(jù)。

例如,首先,我們設(shè)置一個(gè)名稱為 TEST 的變量,然后我們使用 echo 命令查看它的值:

$TEST="Unix Programming"
$echo $TEST
Unix Programming

注意,設(shè)置環(huán)境變量不使用 $ 符號,但在訪問他們的時(shí)候,我們使用 $ 符號作為前綴。這些變量保存它們的值,直到我們退出 shell。

當(dāng)你登錄到系統(tǒng),shell 經(jīng)過初始化階段,在該階段會(huì)設(shè)置各種環(huán)境變量。這通常會(huì)涉及到兩步的處理過程,shell 會(huì)讀取以下文件:

  • /etc/profile
  • profile

處理流程如下:

  1. shell 程序檢查 /etc/profile 文件是否存在。
  2. 如果該文件存在,shell 程序會(huì)讀取該文件。否則,就會(huì)跳過該文件。同時(shí)也不會(huì)顯示任何錯(cuò)誤信息。
  3. shell 程序檢查 .profile 文件是否在你的根目錄下面存在。您的根目錄就是你在登錄之后進(jìn)入的目錄。
  4. 如果該文件存在,shell 程序就會(huì)讀取它。否則,shell 程序跳過它,不會(huì)顯示任何錯(cuò)誤信息。

一旦這兩個(gè)文件讀取完成,shell 顯示一個(gè)等待輸入命令:

    $

這是提示,在它后面你可以輸入命令來執(zhí)行。

注意:Shell 初始化的詳細(xì)過程通常利用的是 Bourne Shell,但是其他的一些文件處理是利用 bashksh shell 程序。

.profile 文件

/etc/profile 文件是由 UNIX 的系統(tǒng)管理員維護(hù)的,并且該文件中包含了 Shell 初始化的信息,這個(gè)信息可以被任何系統(tǒng)中的任何用戶查看。

如果你有對 .profile 文件操作的權(quán)限,那么你就可以在這個(gè)文件中添加你想要的盡可能多的定制 Shell 信息。

  • 你使用的終止符的類型
  • 命令存在的一系列文件的列表
  • 一些列的變量設(shè)置你的終端顯示的效果

你可以在你的根目錄下面查看 .profile 文件。利用 vi 編輯器打開它,查看其中設(shè)置的所有環(huán)境變量。

設(shè)置終結(jié)符的類型

通常您所使用的終端的類型由 logingetty 程序自動(dòng)配置。有時(shí),自動(dòng)配置過程會(huì)推測你的終端類型是不對的。

如果您的終端設(shè)置錯(cuò)誤,命令的輸出可能看起來很奇怪,或者你可能無法與 Shell 正常交互。

確保這不是這種情況,大多數(shù)用戶的終端最少相同的特性如下:

$TERM=vt 100
$

設(shè)置 PATH 變量

當(dāng)你在命令提示符下輸入任何命令,Shell 只有確定了命令所在的目錄才能執(zhí)行命令。

Shell 是在環(huán)境變量 PATH 中尋找命令所在的目錄。通常,它設(shè)置如下:

$PATH=/bin:/usr/bin
$

這里的每一個(gè)由冒號,:,分開的實(shí)體是目錄。如果你請求 Shell 執(zhí)行一個(gè)命令,但是它不能在 PATH 環(huán)境變量中找到任何命令所在的路徑,這時(shí)會(huì)出現(xiàn)一個(gè)類似如下的消息:

$hello
hello: not found
$

還有類似于 PS1 和 PS2 這樣的變量,將會(huì)在下一節(jié)說明。

PS1 和 PS2 變量

shell 顯示給你的命令提示符存儲在變量 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)鍵的部分,不要讓下面的信息對你造成過多的壓力。

轉(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)前命令的編號。每輸入一條命令編號加 1。
\$ 如果有效的 UID 是 0(也就是說,如果你以 root 用戶進(jìn)行登錄),命令提示符會(huì)變成 #,否則,提示符是 $。

你可以通過修改 .profile 文件,在每次登錄的時(shí)候進(jìn)行上面的那些轉(zhuǎn)換。這樣每次登錄就會(huì)自動(dòng)的改變 PS1 的值。

當(dāng)你輸入一個(gè)不完整的命令是,shell 將再次顯示一個(gè)命令輸入符,等待你再次完成命令并回車。

默認(rèn)二級提示 >(大于號),但可以改變通過設(shè)置 PS2 變量進(jìn)行修改:

下面的示例使用默認(rèn)的二級提示:

    $ 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)識符,默認(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)鏈接器,包含以冒號分隔的目錄列表,在執(zhí)行后,動(dòng)態(tài)連接器構(gòu)建過程圖像過程中,在搜索其他目錄之前,先搜索共享對象。
PATH 命令的搜索路徑。它是由冒號分隔開一系列目錄,也就是 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è)變量對于決定內(nèi)置的退出命令是否終止當(dāng)前會(huì)話是很有用的。
TERM 顯示類型。
TZ 時(shí)間區(qū)域。它能被賦值為 GMT,AST 等。
UID 數(shù)值類型標(biāo)識當(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
$
上一篇:數(shù)組下一篇:變量