環境變數配置檔案的作用 L63

2021-07-09 18:07:26 字數 2433 閱讀 2613

上節課講了五種配置檔案,分為兩類,一類是放到/etc目錄下的對所有使用者生效。

一類是放到~/目錄下(~代表家目錄),也就是每個使用者家目錄下的,只對當前使用者生效。

一、環境變數配置檔案的執行流程圖。

好,我們就按照這個流程圖來進行演示一下。

1、/etc/profile的作用

上圖所示在我們登入系統還沒有拿到提示符之前,也就是還沒有顯示讓我們操作命令的提示符之前,首先進入的就是/etc/profile這個檔案。我們開啟這個檔案看一下,如圖:

可以說這個配置檔案是所有環境變數配置檔案當中最複雜的乙個。我們來介紹一下:

user變數:

logname變數:

mail變數:

path變數:

hostname變數:

histsize變數:

umask:

呼叫/etc/profile.d/*.sh檔案

首先是判斷user使用者,logname當前登入使用者名稱,登入郵箱。

然後我們看配置檔案裡的這段判斷語句:

這就是定義環境變數path的判斷語句,首先判斷登入的euid變數值,如果是0就代表是超級使用者,那麼就在下面三段超級使用者的路徑/sbin去搜尋命令,而如果euid不是0就代表是普通使用者,於是就跳過超級使用者的搜尋命令而執行else後面的語句。這個判斷語句我們後面會學到,如果…否則…的意思,我們這裡先了解個大概就可以,知道配置檔案呼叫的順序就好。

執行完path後繼續定義

hostname變數:

histsize變數:

umask:

最後呼叫/etc/profile.d/下所有以*.sh結尾的檔案

2、我們再來看看/etc/profile.d下都有哪些配置檔案。

那麼這麼多檔案並沒有一下全部都呼叫,最主要的是他先呼叫lang.sh檔案,也就是語言包,用來呼叫系統語言,我們再回到最開始的那個流程圖看看,是不是呼叫完/etc/profile.d/後就繼續呼叫裡面的lang.sh配置檔案。

我們來看看lang.sh配置檔案的內容:

然後又呼叫了/etc/sysconfig/i18n

那麼這個檔案裡又是存放什麼內容呢?繼續開啟看一下,如圖:

存放的是我們系統預設的語言環境。

到這裡最下面一路已經完事了,從/etc/profile開始,到/etc/profile.d/lang.sh最後到/etc/sysconfig/i18n結束。

3、最下面這組呼叫完後把呼叫到的值傳遞給上面一路,也就是使用者家目錄的配置檔案。

我們開啟這個配置檔案看看,我們現在是root使用者,我們就去root的家目錄看下這個檔案內容。

[root@localhost ~]# vim /root/.bash_profile

如圖:看,首先他判斷家目錄下.bashrc配置檔案是否存在,存在就直接呼叫,同時給環境變數path追加」:$home/bin」目錄。

並且把path宣告為環境變數。

那麼也就是說如果我們想讓哪個使用者的一些命令或指令碼能夠直接執行,而不用寫路徑的話,那就寫入這個配置檔案就會永久生效了。

這就是~/.bash_profile配置檔案的作用。

那麼他呼叫了家目錄下的.bashrc配置檔案,我們開啟來看看。

[root@localhost ~]# vim /root/.bashrc

如圖:這個檔案內容是不是很熟悉啊,其實是設定系統命令別名的配置檔案。

那麼其實這些命令我們還可以寫在上面的檔案~/.bash_profile配置檔案裡,甚至可以寫在/etc/profile配置檔案裡,但是呢,這樣一來就不單單是在家目錄生效了,而是全域性都生效,因為前面說了/etc下的配置檔案是針對全域性的。

所以大家一定要弄清除/etc目錄和~/目錄下的配置檔案的作用範圍是不同的。

也就是說我們一定要弄明白優先順序。

那麼.bashrc檔案的作用,一方面是定義系統命令別名,一方面繼續呼叫下乙個配置檔案/etc/bashrc。

我們繼續看一下最後乙個配置檔案,如圖:

這個檔案裡面的內容作用,首先是呼叫變數ps1,然後輸出到提示符結束。

為什麼/etc/profile和這個檔案都去呼叫/etc/profile.d/*.sh呢?

大家仔細可以發現這兩個檔案裡的內容,其中/etc/profile是配置登入使用者的變數,而/etc/bashrc是配置不用登入的shell的變數環境的。

也就是說我們有的時候是不用登入就直接切換使用者的情況,比如用su命令切換到其他使用者,這時候呢呼叫的就是/etc/bashrc這個檔案的內容了。

提示未登入使用者的變數在這裡配置生效。

其實我們想要開機就能執行某個命令或變數,我們直接寫入這些配置檔案任意乙個裡面都行,但要注意的是作用範圍,還要注意寫到後面的變數會覆蓋前面的變數的值,除非你用變數疊加的方式。

這個也好理解,比如:

[root@localhost ~]# a=2

[root@localhost ~]# a=3

那麼生效的是哪個啊?肯定是後面的唄。所以寫入配置檔案的道理也相同。

環境變數配置檔案簡介

一 環境變數作用 定義使用者的操作環境。例如 path ps1 二 source命令 sourece 配置檔案 或 配置檔案 修改配置檔案後,必須登出重新登入才能生效,使用source命令可以不用重新登入。三 環境變數配置檔案簡介 path histsize ps1 hostname等環境變數寫入對...

linux環境變數配置檔案

linux環境變數定義了使用者的操作環境,主要的引數設定在下面配置檔案 使用者正常登入後會以下面過程載入環境變數配置檔案 etc profile bash profile bashrc etc bashrc 1.cat etc profile檢視,主要設定了 export path user log...

Linux Shell 環境變數配置檔案

研究學習 linux shell 的系列文章.這篇文章主要以 centos 為例講環境變數的配置檔案.變數型別 環境變數在命令列中修改只能臨時生效,把它寫入配置檔案才能永久生效.path histsize ps1 hostname 等環境變數寫入對應的環境配置檔案,在登陸 shell 時自動載入生效...