歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix資訊 >> 解析一個Unix操作系統環境變量

解析一個Unix操作系統環境變量

日期:2017/3/6 11:41:09   编辑:Unix資訊

Unix操作系統中,環境變量可以作用於用戶的整個工作環境。同時相關的應用程序也需要利用這些環境變量來獲取進程運行的環境變量。今天,我們就來學習下Unix操作系統提示符的作用。

Unix操作系統提示符的作用

DOS下的提示符是比較直觀的。先是盤符,然後是當前的絕對路徑,然後以>符號結尾。但是在Unix系統中卻不是如此。在Unix系統下,其路徑不是決定路徑,而只是顯示當前目錄的名稱。這就給平時的維護造成了一定的困難。那麼在Unix系統下能否按DOS下的提示符格式來顯示呢?即顯示當前的絕對路徑。要實現這個功能,就需要從Unix的提示符說起了。

提示符信息也是Unix操作系統中的環境變量。在shell環境中有兩個提示符,分別為PS1與PS2。其中PS1為主提示字符串,即大家平常所看到的那個提示符(可能是一個美元符號$或者一個#字號)。通常情況下,如果當前用戶是特權用戶,則其主提示符可能為#;如果當前用戶為普通用戶,則其主提示符就為$符號。另外在shell進程中,還可以運行多條命令。此時系統會顯示>提示符,這個提示符就是次級提示符,保存在PS2環境變量中。那麼如何通過這個提示符來實現如上的需求呢?且聽筆者慢慢道來。

1、首先需要顯示的就是不管是主提示符還是次級提示符,都以>結束。此時系統工程師可以通過改變主提示符的值來實現。如可以通過$PS1=”>”命令來實現。這個命令的作用就是改變這個環境變量的值。另外有些人可能還喜歡在前面加入c:盤符,此時就可以把主提示符PS1的值設置為”c:>”。不過需要注意的是,Unix的文件系統跟微軟的文件系統不一樣。在Unix操作系統中,其只有一個跟目錄,即一個樹狀結構;而在Windows操作系統中,每個分區都有一個根目錄,都有一個獨立的樹狀結構。故在Unix操作系統中沒有C、D、E盤的區分。

2、其次是要實現在提示符中顯示絕對路徑。此時需要PWD環境變量的幫助。在Linux系統中,pwd命令可以用來顯示當前的絕對路徑。不過在Unix操作系統中的BASH中(shell的一種),專門提供了一個PWD環境變量。這個環境變量主要用來存儲當前光標所在的絕對路徑。PWD是一個動態的環境變量。當用戶每次切換目錄時,這個環境變量都將被重新賦值。如果要在提示符中顯示當前的絕對路徑,那麼只需要把這個變量賦於給主提示符PS1即可。由於PWD變量動態改變的特性,此時主提示符也會隨著PWD環境變量(絕對路徑)的改變而改變。具體的賦值命令為:$PS1=’ $PWD’。

這裡筆者要強調一個小細節。當把一個環境變量賦值給另外一個環境變量時,則需要加入$符號。否則的話,Unix操作系統會把這個變量當作一個普通的字符串來對待。筆者在給學員進行培訓時,這是他們經常犯的錯誤。這注意是因為他們可能受到以前經驗的影響。因為在一些開發環境中編程的時候,在把某個變量的值賦值給其他變量時,不需要在變量前加入$等類似的特殊符號。但是這裡需要注意,在Unix操作系統中如果把某個環境變量的值賦值給另外一個環境變量,必須要用$符號來標示,否則的話系統會

提示符除了可以模擬實現DOS提示符顯示格式之外,還有其他一些重要的作用。如大部分系統工程師在管理Unix服務器的時候,不會直接通過Unix終端控制台來進行。而是利用ssh等遠程連接協議進行遠程登陸,進行遠程維護。

如果企業中Unix服務器比較多的話,系統工程師就可能會比較麻煩。因為在默認情況下,利用ssh協議遠程登陸到Unix操作系統,在終端上不會顯示Unix主機的名字。為此如果系統工程師在同一時刻連接了多台Unix服務器的話,則其就不能夠一目了然的知道到底是哪台Unix服務器。在這種情況下,系統工程師就希望在提示符中能夠顯示Unix主機的名字。在bash環境中,有一個轉義字符可以實現類似的需求。

\h這個轉義字符就是用來顯示當前主機的名字。為此如果系統工程師需要提示符中顯示主機的名字,則可以通過如下的命令來實現,$PS1=”\h”。如此設置後,在Unix操作系統提示符中就會顯示當前主機的名字。這方面在Linux系統上就做的比較好,其默認情況下就會顯示主機的名字。

在這裡,我們就舉出一個Unix操作系統環境變量在實際工作中對於用戶的價值。其實在日常工作中,這些環境變量的價值往往被人所忽視。

Copyright © Linux教程網 All Rights Reserved