Linux命令列與Shell指令碼程式設計(六)

2021-09-05 10:44:19 字數 1819 閱讀 6906

bash shell用乙個叫做環境變數的特性來儲存有關shell會話和工作環境的資訊。

環境變數分為:全域性變數和區域性變數

全域性環境變數對於shell會話和所有生成的字shell都是可見的。區域性變數則只對建立它們的shell可見。

檢視全域性變數,可以使用 env 或 printenv 命令。

set 命令:顯示為某個特定程序設定的所有環境變數。包括全域性變數、區域性變數以及使用者定義變數

env、printenv、set區別:

set命令會顯示出全域性變數、區域性變數以及使用者定義變數。它還會按照字母順序對結果進行排序。env 和 printenv 命令同set命令的區別在於前兩個命令不會對變數排序,也不會輸出區域性變數和使用者定義變數,在這種情況下,env 和 printenv 的輸出是重複的。

使用者自定義變數

如果定義變數中含有空格的字串,必須用單引號來界定字串的首和尾。

注意: 定義的區域性環境變數用的是小寫字母,而到目前為止所看到的系統環境變數都是大寫字母。

變數名、等號和值之間沒有空格。

設定區域性使用者定義變數

在子shell設定的區域性變數後,只能在此子shell中使用該變數,一旦離開此子shell,則不能用該變數。

設定全域性環境變數

建立全域性環境變數的方法是先建立乙個區域性環境變數。然後再把它匯出到全域性環境中。

例:

使用  export  命令使 my_variable 變成了全域性環境變數。

在子shell中可以使用全域性環境的值。但在子shell中修改全域性環境變數並不會影響到父shell中該變數的值。

子shell甚至無法使用export 命令改變父shell中全域性環境變數的值。

儘管子shell重新定義並匯出了變數my_variable ,但父shell中的my_variable 變數依然保留原先的值。

unset 命令:刪除已存在的環境變數。

在子shell中刪除的全域性變數,在父程序中還是可以照常使用全域性變數。

path環境變數定義了用於進行命令和程式查詢的目錄。

如果命令或程式的位置沒有包括在path變數中,那麼shell是沒法找到的。

如果想要子shell找到該命令,需要將該命令的路徑新增到path中;

例如:path=$path:/etc/passwd     -->路徑為絕對路徑

對於path變數的修改只能持續到退出或重啟系統,這種效果不能一直持續。

/etc/profile 檔案使系統上預設的bash shell的主啟動檔案。系統上的每個使用者登入時都會執行這個啟動檔案。

例子:

使用unset刪除某個值:

說明:當unset 刪除陣列中的數值時,只是將陣列中的某個數值刪除,置為空。

Linux命令列與shell指令碼

路徑 cd destinationcp 命令在複製檔案時有兩個引數,源物件和目標物件 cp source destinationpwd 命令可以顯示出shell會話的當前目錄 單點符 表示當前目錄 雙點符 表示當前目錄的父目錄 ls 列表命令,輸出的列表是按字母 按列排序的 ls l 顯示附加資訊,...

Linux命令列與shell指令碼

一 linux簡介 1.linux系統內部結構 劃分為以下四部分 linux核心 gnu工具元件 圖形化桌面環境 應用軟體。2.linux系統的核心 核心 核心基本負責以下四項主要功能 系統記憶體管理 包括物理記憶體和虛擬記憶體 軟體程式管理 硬體裝置管理 檔案系統管理。1 系統記憶體管理 可以檢視...

Linux命令列與shell的區別

答 shell翻譯成殼的意思,它是包裹在linux核心外層的,乙個可通過一系列的linux命令對作業系統發出相關指令的人機介面。shell可以通過其條件語句和迴圈語句等,把一系列linux命令結合在一起,形成乙個相當於面向過程的程式,shell script,來實現一些較為複雜的功能。總括,shel...