日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

详解/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途

發(fā)布時(shí)間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 详解/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
之前安裝 Linux的一些軟件時(shí),總要修改Linux的配置文件。當(dāng)時(shí)也是一知半解。而且,網(wǎng)上有些安裝教程,會(huì)說(shuō),修改配置文件后要重啟Linux。但事實(shí)上是不需要重啟的。

?

? ? ? ? Linux安裝時(shí)可能要修改的配置文件:/etc/profile、/etc/bashrc(ubuntu沒(méi)有這個(gè)文件,對(duì)應(yīng)地,其有/etc/bash.bashrc文件。我用的是ubuntu系統(tǒng),所以下面將一律使用/etc/bash.bashrc來(lái)敘述)、~/.bash_profile、~/.bash_login、~/.profile、~/.bashrc。

我的ubuntu系統(tǒng)(版本為10.04)默認(rèn)情況下,只有/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc這四個(gè)文件。其他文件可以創(chuàng)建。

?

? ? ? ??現(xiàn)在來(lái)簡(jiǎn)單說(shuō)一下這些配置文件。

?

1.這些文件的作用

? ? ? ??這些文件的作用有很多,比如環(huán)境變量的設(shè)定、定制符合自己風(fēng)格的shell、還可以設(shè)置縮寫(xiě)功能,那個(gè)ll命令是 ls –alF命令的縮寫(xiě)。

? ? ? ??相信大家最關(guān)心這些文件在安裝軟件時(shí)候的作用。為什么要配置這些文件?配置后,要不要重啟Linux才能使得生效。

?

? ? ? ??要弄清這些問(wèn)題。首先要知道打開(kāi)一個(gè)終端或者打開(kāi)一個(gè)新shell時(shí)(注意,兩者是不同的。比如在終端里輸入bash,會(huì)進(jìn)入一個(gè)新shell。此時(shí)并沒(méi)有打開(kāi)新終端),會(huì)讀取到哪些文件。

? ? ? ??之所以是要配置這些文件,是因?yàn)檫@些軟件要在環(huán)境變量中添加屬于自己的信息,或者新建一個(gè)屬于自己的環(huán)境變量(如安裝JDK時(shí)要新建一個(gè)JAVA_HOME環(huán)境變量)。系統(tǒng)會(huì)根據(jù)環(huán)境變量里的值,找到軟件的一些文件的路徑。

2.這些文件的訪問(wèn)順序

2.1測(cè)試

? ? ? ??如果對(duì)測(cè)試過(guò)程沒(méi)興趣的,直接跳過(guò)這一步,到結(jié)論部分看結(jié)論。

?

? ? ? ??分別在這個(gè)四個(gè)文件的最后,加入一個(gè)新的環(huán)境變量TESTBASH。每一個(gè)文件都為這個(gè)環(huán)境變量加入不同的值。如下圖所示:

/etc/profile ?

/etc/bash.bashrc?

~/.profile?

~/.bashrc?

?

? ? ? ??都保存后,在原來(lái)這個(gè)終端輸入$export(這個(gè)命令可以用來(lái)導(dǎo)入和查看環(huán)境變量),并沒(méi)有在輸出中看到這個(gè)TESTBASH。現(xiàn)在輸入$bash?,打開(kāi)一個(gè)新的shell。再輸入$export?可以看到輸出已經(jīng)有這個(gè)環(huán)境變量了(如果在一大串輸出中沒(méi)有找到這個(gè)TESTBASH,那么就用命令$echo $TESTBASH)。并且,該環(huán)境變量的值為: /etc/bash.bashrc:/home/luotuo/.bashrc。

? ? ? ??現(xiàn)在打開(kāi)一個(gè)新的終端。輸入$export?可以看到其結(jié)果和輸入$bash命令,再輸入$export?一樣。只有其中兩項(xiàng)。

?

? ? ? ??現(xiàn)在輸入$su root?切換到root用戶。再輸入$export?其結(jié)果是在原來(lái)的基礎(chǔ)上加上了?/home/luotuo/.bashrc:/etc/bash.bashrc。

? ? ? ??輸入$exit?退出root。然后再輸入$su –l root?切換到root用戶,此時(shí)輸入$export?看到其結(jié)果僅僅為?/etc/bash.bashrc:/etc/profile。

? ? ? ??(這兩種方式是不同的。分別叫做nonlogin shelllogin shell。另外,在終端輸入bash打開(kāi)一個(gè)新的shell也是non login?

?

? ? ? ??現(xiàn)在是時(shí)候重啟Linux了。

?

? ? ? ??重啟之后,在終端輸入?$export?,其結(jié)果為: ??

? ? ? ??已經(jīng)有/etc/profile和/etc/bash.bashrc了。

? ? ? ??此時(shí),輸入$bash?打開(kāi)一個(gè)新的shell 。再輸入$export?.可以看到:

? ? ? ??

? ? ? ??是在原來(lái)的基礎(chǔ)上加入了 /etc/bash.bashrc:/home/luotuo/.bashrc

?

? ? ? ??輸入$exit?退出這個(gè)shell(注意,此時(shí)這個(gè)終端是沒(méi)有被關(guān)閉了。因?yàn)樵谶@個(gè)終端打開(kāi)了兩個(gè)shell。一個(gè)exit只能退出一個(gè)).

? ? ? ??此時(shí),輸入$su root?切換到root用戶。然后再輸入$export?。可以看到輸出為:

? ? ? ??

? ? ? ??在原來(lái)的基礎(chǔ)上加入了/etc/bash.bashrc。

? ? ? ??現(xiàn)在輸入$pwd?,可以看到其路徑為:

? ? ? ? ?

? ? ? ??現(xiàn)在輸入$exit?退出這個(gè)root。然后輸入$su –l root?切換到root用戶。此時(shí)再輸入$export?其結(jié)果為:

? ? ? ??

? ? ? ??現(xiàn)在輸入$pwd,可以看到其路徑為:

? ? ? ? ?

? ? ? ??兩者有不同的路徑。后者是轉(zhuǎn)到了root用戶的用戶目錄下,而前者還是在之前所在的目錄。

2.2、結(jié)論

? ? ? ??從測(cè)試過(guò)程可以看到。打開(kāi)一個(gè)新的shell(包括打開(kāi)一個(gè)新終端和在終端上輸入bash),都會(huì)重新讀取/etc/bash.bashrc 和 ~/.bashrc文件里面的內(nèi)容。

? ? ? ??而Linux啟動(dòng)登錄時(shí)會(huì)讀取/etc/profile和~/.profile文件的內(nèi)容。所以,在測(cè)試的時(shí)候,重啟登錄時(shí)會(huì)讀取/etc/profile~/.profile文件的內(nèi)容(此時(shí)并不讀取/etc/bash.bashrc~/.bashrc文件)。然后再打開(kāi)終端時(shí),會(huì)去讀取/etc/bash.bashrc?~/.bashrc文件。這就出現(xiàn)了那種結(jié)果。

?

? ? ? ??使用login和non login術(shù)語(yǔ)來(lái)說(shuō),就是使用login 方式是會(huì)讀取/etc/profile 和 ~/.profile文件。使用non login方式的話,會(huì)讀取/etc/bash.bashrc 和 ~/.bashrc文件的內(nèi)容。

也就是說(shuō)/etc/profile 和 ~/.profile文件是在login時(shí)才會(huì)讀取。所以,在不使用su命令的情況下,只有在Linux啟動(dòng)登錄的時(shí)候才會(huì)被讀取(這也就導(dǎo)致了有些軟件安裝后,要重啟才能生效)。

?

? ? ? ??因?yàn)槲业?/span>ubuntu沒(méi)有~/.bash_profile?~/.bash_login文件。如果有這兩個(gè)文件的話,那么用login方式登錄,將只讀取?~/.bash_profile?~/.bash_login~/.profile三個(gè)中的一個(gè)。其讀取順序在上面的排序順序。

?

? ? ? ??說(shuō)了這么多。到講安裝軟件時(shí)的修改這些文件的配置信息 了。安裝軟件修改這個(gè)文件,一般是為了在這個(gè)文件中添加用于那些軟件的環(huán)境變量。在這些配置文件中都可以添加環(huán)境變量。但由于,有些文件會(huì)被讀取,有些文件卻不會(huì)被讀取(這個(gè)上面已經(jīng)說(shuō)了),所以在不同文件下的配置信息的有效性或者說(shuō)生效日期就有所不同了。這也導(dǎo)致了在這些文件添加配置信息,要不要重啟的問(wèn)題。

?

? ? ? ??如果是在/etc/bash.bashrc 和 ~/.bashrc文件中添加配置信息,那么打開(kāi)一個(gè)新的shell,就生效了,可以用了(因?yàn)榇蜷_(kāi)新的shell會(huì)讀取這個(gè)兩個(gè)文件)。也可以輸入$source /etc/bash.bashrc或者$./etc/bash.bashrc命令(?./之間還有一個(gè)空格)來(lái)使得在本shell中,也可以生效使用。

? ? ? ??如果是在/etc/profile 和 ~/.profile 文件中添加配置信息。那么就只能重啟了。因?yàn)檫@個(gè)兩個(gè)文件只會(huì)在login 下才會(huì)讀取。當(dāng)然,也是可以使用$source /etc/profile?命令的。但也只能在使用過(guò)這個(gè)命令的shell才能使用。

?

?

3.總結(jié)

? ? ? ??如果為了一完成配置信息就能使用,那么就不用在/etc/profile 和 ~/.profile文件中添加關(guān)于軟件的配置信息。而是在/etc/bash.bashrc 或者 ~/.bashrc 中添加,這樣就能馬上使用了。

總結(jié)

以上是生活随笔為你收集整理的详解/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。