linux環境變數設定

2021-07-06 02:43:03 字數 3925 閱讀 1274

一、什麼是環境變數?

linux是乙個多使用者的作業系統。多使用者意味著每個使用者登入系統後,都有自己專用的執行環境。而這個環境是由一組變數所定義,這組變數被稱為環境變數。使用者可以對自己的環境變數進行修改以達到對環境的要求。

二、定製環境變數 

環境變數是和shell緊密相關的,它是通過shell命令來設定的。環境變數又可以被所有當前使用者所執行的程式所使用。對於bash來說,可以通過變數名來訪問相應的環境變數。

下面通過幾個例項來說明

1.設定乙個新的環境變數name

$ export name="raidcheng"

$ echo $name

raidcheng

2.使用env命令顯示所有的環境變數 

$ env

3.使用set命令顯示所有本地定義的shell變數或者設定變數 

語  法:set [+-abcdefhhklmnpptuvx]

補充說明:set指令能設定所使用shell的執行方式,可依照不同的需求來做設定

4.使用unset命令來清除環境變數 

$ export name="raidcheng"

$ echo $name

raidcheng

$ unset name

$ echo $name

5.使用readonly命令設定唯讀變數 

$ export name="raidcheng"

$ readonly name

$ unset name

-bash: unset: name: cannot unset: readonly variable

$ name="new"

#會發現此也變數不能被修改

-bash: test: readonly variable

6. 顯示某乙個環境變數,如顯示home 

$ echo $home 

/home/terry 

三、常見的環境變數 

path      路徑變數,決定了shell將到哪些目錄中尋找命令或程式

ld_library_path,  

home      當前使用者主目錄

histsize    歷史記錄數

logname     當前使用者的登入名 

hostname    指主機的名稱

shell      前使用者shell型別 

languge     語言相關的環境變數,多語言可以修改此環境變數

mail      當前使用者的郵件存放目錄 

ps1       基本提示符,對於root使用者是#,對於普通使用者是$

ps2       附屬提示符,預設是「>」

四、通過c程式來訪問和設定環境變數 

對於c程式的使用者來說,可以使用下列三個函式來設定或訪問乙個環境變數。 

getenv()訪問乙個環境變數。輸入引數是需要訪問的變數名字,返回值是乙個字串。如果所訪問的環境變數不存在,則會返回null

setenv()在程式裡面設定某個環境變數的函式

unsetenv()清除某個特定的環境變數的函式

另外,還有乙個指標變數environ,它指向的是包含所有的環境變數的乙個列表。下面的程式可以列印出當前執行環境裡面的所有環境變數:

#include 

extern char**environ;

int main ()

五、環境變數檔案

通過修改一些相關的環境定義檔案來修改環境變數,比如對於fedora,與環境相關的檔案有/etc/profile和~/.bash_profile和~/.bashrc等。修改完畢後重新登入一次或執行命令source ***就生效了。 /etc/profile中設定的環境變數對整個系統有效。~/.bashrc和~/.bash_profile中設定的變數只對某乙個使用者有效。

六、恢復環境變數

linux環境變數設定錯誤後,如何恢復解決方案:在命令列中輸入:export path=/usr/bin:/usr/sbin:/bin:/sbin:/usr/x11r6/bin 後回車

七、linux中profile與bashrc的區別

ubuntu 的相關目錄下

/ect/ 

/root 

/home/myuser

profile 

.profile 

.profile 

bash.bashrc 

.bashrc 

.bashrc

profile.d

fedora的相關目錄

/ect/ 

/root 

/home/myuser

profile 

profile 

bashrc 

.bashrc 

bashrc

profile.d                     profile.d

說明:myuser 是你新增建立的使用者

在網上找了半天也不能包括所有的,所以只能比較個大概。

bashrc與profile的區別

要搞清bashrc與profile的區別,首先要弄明白什麼是互動式shell和非互動式shell,什麼是login shell 和non-login shell。

互動式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你簽退後,shell也終止了。 shell也可以執行在另外一種模式:非互動式模式。在這種模式下,shell不與你進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。

bashrc與profile都用於儲存使用者的環境資訊,bashrc用於互動式non-loginshell,而profile用於互動式login shell。系統中存在許多bashrc和profile檔案,下面逐一介紹:

/etc/pro此檔案為系統的每個使用者設定環境資訊,當第乙個使用者登入時,該檔案被執行.

並從/etc/profile.d目錄的配置檔案中蒐集shell的設定.

/etc/bashrc:為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。有些linux版本中的/etc目錄下已經沒有了bashrc檔案。

~/. pro每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該

檔案僅僅執行一次!預設情況下,它設定一些環境變數,然後執行使用者的.bashrc檔案.

~/.bashrc:該檔案包含專用於某個使用者的bash shell的bash資訊,當該使用者登入時以及每次開啟新的shell時,該檔案被讀取.

另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是"父子"關係.

某網友總結如下:

/etc/profile,/etc/bashrc 是系統全域性環境變數設定

~/.profile,~/.bashrc使用者家目錄下的私有環境變數設定

當登入系統時候獲得乙個shell程序時,其讀取環境設定檔有三步

1首先讀入的是全域性環境變數設定檔/etc/profile,然後根據其內容讀取額外的設定的文件,如

/etc/profile.d和/etc/inputrc

2然後根據不同使用者帳號,去其家目錄讀取~/.bash_profile,如果這讀取不了就讀取~/.bash_login,這個也讀取不了才會讀取

~/.profile,這三個文件設定基本上是一樣的,讀取有優先關係

3然後在根據使用者帳號讀取~/.bashrc

至於~/.profile與~/.bashrc的不區別

都具有個性化定製功能

~/.profile可以設定本使用者專有的路徑,環境變數,等,它只能登入的時候執行一次

~/.bashrc也是某使用者專有設定文件,可以設定路徑,命令別名,每次shell script的執行都會使用它一次

Linux環境變數設定

1 直接用export命令 export path path 自定義路徑 檢視是否已經設好,可用命令export檢視 root localhost bin export path path 自定義路徑 2 修改profile檔案 vi etc profile 在裡面加入 export path pa...

Linux環境變數設定

linux環境變數設定 linux環境變數設定 1 引言 在 linux系統 command not found 的提示內容。如果每次都到安裝目標資料夾內,找到可執行檔案來進行操作就太繁瑣了。這涉及到環境變數 path 的設定問題,而 path 的設定也是在 linux 下定製環境變數的乙個組成部分...

Linux 環境變數設定

環境變數檢視命令env env 環境變數的設定位於 etc profile檔案 path manipulation if euid 0 then pathmunge sbin pathmunge usr sbin pathmunge usr local sbin pathmunge usr loca...