Linux環境變數

2021-09-06 18:20:40 字數 3362 閱讀 7752

bash shell用乙個稱作環境變數的特性來儲存有關shell會話和工作環境的資訊,它允許你在記憶體中儲存資料,以便執行在shell上的程式和指令碼訪問

在bash shell中,環境變數分為兩類:全域性變數和區域性變數

全域性環境變數不僅對shell會話可見,對所有shell建立的子程序中需要獲得父程序資訊的程式來說非常有用。linux系統在你開始bash會話之前就設定了一些全域性環境變數

系統環境變數的一律用全大寫字母以區別與普通使用者的環境變數

檢視全域性變數,可以使用printenv命令(由於結果太多,不寫出來)

要顯示單個環境變數,可以使用echo命令。當引用環境變數時,必須在環境變數的名稱前放置乙個$符:

wu@ubuntu:~/ccode$ echo $home

/home/wu

區域性環境變數只能在定義它們的程序中可見,檢視區域性環境變數的列表有點複雜,在linux系統中並沒有這樣的乙個命令只顯示區域性環境變數

set命令會顯示某個特定程序設定的所有環境變數,當然也包括全域性變數

一旦啟動了bash shell,你就能建立在這個shell程序內可見的區域性變數了,你可以通過等號來給環境變數賦值,值可以是數值或字串:

wu@ubuntu:~$ test=testing

wu@ubuntu:~$ echo $test

testing

如果要給變數賦乙個含有空格的字串,必須用單引號來界定字串的開始和結尾:

wu@ubuntu:~$ test=testing a long string

a: command not found

wu@ubuntu:~$ test='testing a long string'

wu@ubuntu:~$ echo $test

testing a long string

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

這個過程通過export命令來完成:

wu@ubuntu:~$ echo $test

testing a long string

wu@ubuntu:~$ export test

wu@ubuntu:~$ bash

wu@ubuntu:~$ echo $test

testing a long string

可以使用unset命令來刪除環境變數:

wu@ubuntu:~$ echo $test

testing a long string

wu@ubuntu:~$ unset test

wu@ubuntu:~$ echo $test

wu@ubuntu:~$

1、bash :記錄當前bash shell的路徑。

2、bash_subshell  :記錄當前子shell的層次。bash_subshell是從0開始計數的整數。

3、bash_versinfo  :是乙個陣列包含六個元素,這六個元素顯示bash的版本資訊。

4、bash_version  :顯示shell版本的資訊。

5、dirstack  :記錄了棧頂的目錄值,初值為空。

6、globlgnore :是由冒號分割的模式列表,表示通配時忽略的檔名集合。

7、groups   :記錄當前使用者所屬的組。

8、home :記錄當前使用者的家目錄,由/etc/passwd的倒數第二個域決定。

9、hostname  :記錄主機名。

10、hosttype和machtype :都是記錄系統的硬體架構。

11、ifs  :用於設定指定shell域分隔符,預設情況下為空格。

12、oldpwd   :記錄舊的工作目錄。

13、ostype  :記錄作業系統型別。

14、path  :環境變數,顯示當前path環境變數的內容。

15、ppid :是建立當前程序的程序號,即當前程序的父程序號

16、ps1  :提示符變數,用於設定提示符格式,用於設定一級shell提示符環境變數。

17、ps2  :用於設定二級shell提示符環境變數。

18、pwd :記錄當前路徑

19、reply  :reply變數與read和select有關。

20、seconds:記錄指令碼從開始到結束耗費的時間。

21、shell :顯示當前所用的shell

22、shellopts  :記錄了處於「開」狀態的shell選項列表,它只是乙個唯讀變數。

23、shlvl   :記錄了bash巢狀的層次,一般來說,我們啟動第乙個shell時。  $shlvl=1。如果在這個shell中執行指令碼,指令碼中的$shlvl=2 。

24、tmout  :用來設定指令碼過期的時間,比如tmout=3,表示該指令碼3秒後過期。

25、uid : 已登使用者的id

26、user :顯示當前使用者名字

path定義了命令列輸入命令的搜素路徑,如果找不到命令,它會產生乙個錯誤:

wu@ubuntu:~$ myprog

myprog: command not found

可以新增新的搜素目錄到現有的path環境變數,無需從頭定義,path中的目錄之間是用冒號分隔的,所以你只需引用原來的path值,然後再給字串新增新的目錄就行

環境變數乙個很好的功能就是它們可作為陣列使用,要給某個環境變數設定多個值,可以把值放在括號裡,值與值之間用空格隔開:

wu@ubuntu:~$ mytest=(one two three four five)

wu@ubuntu:~$ echo $mytest

one

只有第乙個值顯示出來了。要引用乙個單獨的陣列元素,必須用代表它在陣列中位置的數值索引值,數值要用方括號括起來:

wu@ubuntu:~$ echo $

three

要顯示整個陣列變數,可用星號作為萬用字元放在索引值的位置:

wu@ubuntu:~$ echo $

one two three four five

你也可以改變某個索引位置的值:

wu@ubuntu:~$ mytest[2]=seven

wu@ubuntu:~$ echo $

one two seven four five

你甚至可以用unset命令來刪除陣列中的某個值,但是要小心:

wu@ubuntu:~$ unset mytest[2]

wu@ubuntu:~$ echo $

one two four five

wu@ubuntu:~$ echo $

wu@ubuntu:~$ echo $

four

最後,可以在unset命令後跟上陣列名來刪除整個陣列:

wu@ubuntu:~$ unset mytest

wu@ubuntu:~$ echo $

wu@ubuntu:~$

linux環境程式設計 環境變數 列印環境變數

在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...

linux環境變數

初次學習lliux對環境變數的知識甚是不解決,特花費乙個上午的時間總結了一下,可以說是全面!如各位有更加詳細的見解不妨告知!定製環境變數 環境變數是和shell緊密相關的,使用者登入系統後就啟動了乙個shell。對於linux來說一般是bash,但也可以重新設定或切換到其它的 shell。環境變數是...

Linux環境變數

好吧,我承認這篇文章是轉的.1.顯示環境變數home echo home home redbooks 2.設定乙個新的環境變數hello export hello hello echo hello hello 3.使用env命令顯示所有的環境變數 env hostname redbooks.safe...