博客專欄

        EEPW首頁 > 博客 > Linux /etc/profile文件詳解

        Linux /etc/profile文件詳解

        發(fā)布人:電子禪石 時間:2020-11-05 來源:工程師 發(fā)布文章
        Linux /etc/profile文件詳解
         

        轉(zhuǎn)載地址:http://linux.chinaitlab.com/administer/820910.html

         

         

        linux /etc/profile文件的改變會涉及到系統(tǒng)的環(huán)境,也就是有關(guān)Linux環(huán)境變量的東西,學習Linux要了解Linux profile文件的相關(guān)原理,這里對則以文件進行具體分析。這里修改會對所有用戶起作用。

          1、Linux是一個多用戶的操作系統(tǒng)。每個用戶登錄系統(tǒng)后,都會有一個專用的運行環(huán)境。通常每個用戶默認的環(huán)境都是相同的,這個默認環(huán)境實際上就是一組環(huán)境變量的定義。用戶可以對自己的運行環(huán)境進行定制,其方法就是修改相應(yīng)的系統(tǒng)環(huán)境變量。

          2、常在/etc/profile文件中修改環(huán)境變量,在這里修改的內(nèi)容是對所有用戶起作用的。以下主要操作將在該文件中進行。

          3、如何添加環(huán)境變量。

          例如添加”NAME=liheng“ 。在profile文件的最后添加如下內(nèi)容export NAME=liheng

          變量值liheng可以加引號也可以不加,效果一樣。

          4、在profile文件添加或修改的內(nèi)容需要注銷系統(tǒng)才能生效。

          5、重復定義變量怎樣理解。

          經(jīng)常出現(xiàn)的是對PATH變量的定義。

          例如:在peofile文件默認對PATH變量都有設(shè)置PATH=¥¥¥¥¥¥¥(記不住了),在以后可能在對PATH設(shè)置,一般都加在profile 文件的最后PATH=······(打個比方)。而系統(tǒng)之中認定的PATH=·······¥¥¥¥¥¥¥¥¥,也就是說相同名字的環(huán)境變量,后寫入的先起作用(通俗地講)。大家一定要注意。

          6、特殊字符介紹。

          例如在profile中有如下內(nèi)容,通過以下內(nèi)容說明特殊符號的用法。

          export A=/q/jing:aaa/cc/ld

          export B=.:/liheng/wang export A=/cd/cdr:$A

          大家注意紅色的符號:

          : 表示并列含義,例如A變量值有多個,用:符號進行分離。

          . 表示你操作的當前目錄。例如pap命令會查找B環(huán)境變量。

          在/home鍵入pap命令,系統(tǒng)首先在/home目錄下(即當前路徑)查找關(guān)于 B 的內(nèi)容,<a href="http://www.%3Ca%20class%3D/" channel_keylink"="" target="_blank" style="margin: 0px; padding: 0px; word-wrap: break-word; text-decoration: none; color: rgb(51, 51, 51);">linuxidc.com">www.linuxidc.com如果沒有在/liheng/wang目錄下查找關(guān)于B的內(nèi)容。 表示該變量本次定義之前的值,例如A代表/q/jing:aaa/cc/ld。也就是說 A=/cd/cdr:/q/jing:aaa/cc/ld

          7、使用env命令顯示所有的環(huán)境變量 。在命令提示符下鍵入env就行了。

          set命令顯示所有本地定義的Shell變量。

          8、常見的環(huán)境變量

          PATH:決定了shell將到哪些目錄中尋找命令或程序

          HOME:當前用戶主目錄

          MAIL:是指當前用戶的郵件存放目錄。

          SHELL:是指當前用戶用的是哪種Shell。

          HISTSIZE:是指保存歷史命令記錄的條數(shù)。

          LOGNAME:是指當前用戶的登錄名。

          HOSTNAME:是指主機的名稱,許多應(yīng)用程序如果要用到主機名的話,通常是從這個環(huán)境變量中來取得的。

          LANG/LANGUGE:是和語言相關(guān)的環(huán)境變量,使用多種語言的用戶可以修改此環(huán)境變量。

          PS1:是基本提示符,對于root用戶是#,對于普通用戶是$。

          PS2:是附屬提示符,默認是“>”。可以通過修改此環(huán)境變量來修改當前的命令符,比如下列命令會將提示符修改成字符串“Hello,My NewPrompt :) ”。

          # PS1=” Hello,My NewPrompt :) “

          9、使用修改.bashrc文件(在用戶的家目錄下)進行環(huán)境變量的編輯,只對當前用戶有用。使用修改 /etc/profile 文件進行環(huán)境變量的編輯,是對所有用戶有用。大家一定要注意區(qū)別。

          10、Linux profile文件在系統(tǒng)啟動時將被運行。大家可以在里面加入其他命令,但是一定要加正確,不然的話系統(tǒng)會啟動不起來的。

         

         

         

        續(xù)

         

        1./etc/profile , /etc/profile.d ,~/.bashrc, ~/.bash_file,這幾個文件的區(qū)別是啥,可能很多新人,很疑惑。即使很多配置一些軟件環(huán)境變量的人也是很疑惑

           ~/.bashrc, ~/.bash_file這兩個看到~這個符合,應(yīng)該明白,這是宿主目錄下的,即里面的環(huán)境變量也叫shell變量,是局部的,只對特定的shell有效,修改過別忘了source 命令一下。

           /etc/profile , /etc/profile.d,前面的是文件,后面一看也就明白.d表示目錄, /etc/profile里面的變量是全局的,對所有用戶的shell有效。

        2. 我們每當在終端輸入命令,系統(tǒng)會有響應(yīng),最重要的就是搜索路徑啦,可以通過echo $PATH看到,系統(tǒng)所以命令的搜索路徑,以:符合分開。

            當我們下載一個軟件,如果我們希望不加入路徑就能啟動該程序,如在shell中任意位置輸入eclipse,即啟動程序,我們就可以把eclipse程序的可執(zhí)行程序的路徑加入到PATH中即可。

            其實我們還可以有另一種方法,請看如下代碼

        # The default umask is now handled by pam_umask.
        # See pam_umask(8) and /etc/login.defs.


        if [ -d /etc/profile.d ]; then              # 判斷/etc/profile.d 是不是一個目錄
          for i in /etc/profile.d/*.sh; do       #如果是一個目錄,到該目錄下,取出每一個shell程序
            if [ -r $i ]; then                             #如果該shell可以執(zhí)行

              . $i                                               # 則執(zhí)行它
            fi
          done
          unset i
        fi

        改代碼是/etc/profile中的部分內(nèi)容,說明/etc/profile會首先執(zhí)行/etc/profile.d/目錄下的所有*.sh文件。這也就給我們一個可擴展的思路。如果我們需要配置JDK,那么就在/etc/profile.d/下創(chuàng)建jvm.sh文件如果需要配置ant,那么就在/etc/profile.d/下創(chuàng)建ant.sh文件
         這樣獲得的效果一致,不信你自己試試。
        然后,在對應(yīng)的配置文件里面添加你自己的配置就可以了。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞:

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 利辛县| 东山县| 碌曲县| 故城县| 社会| 民权县| 邯郸县| 新安县| 马尔康县| 汝阳县| 巴林左旗| 临泽县| 昌都县| 文化| 于田县| 杭锦后旗| 商都县| 河曲县| 塔城市| 长顺县| 扶沟县| 无为县| 大化| 泾源县| 永州市| 彭泽县| 手游| 甘泉县| 新余市| 牙克石市| 措勤县| 嫩江县| 英吉沙县| 平阴县| 榆中县| 乌鲁木齐县| 垫江县| 陵川县| 宝山区| 黑河市| 乌审旗|