linux環境變量

bashrc與profile的區別

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

交互式模式就是shell等待你的輸入,並且執行你提交的命令。這種模式被稱作交互式是因爲shell與用戶進行交互。這種模式也是大多數用戶非常熟悉的:登錄、執行一些命令、簽退。當你簽退後,shell也終止了。

 shell也可以運行在另外一種模式:非交互式模式。在這種模式下,shell不與你進行交互,而是讀取存放在文件中的命令,並且執行它們。當它讀到文件的結尾,shell也就終止了。

bashrc與profile都用於保存用戶的環境信息,bashrc用於交互式non-loginshell,而profile用於交互式loginshell。系統中存在許多bashrc和profile文件,下面逐一介紹:

/etc/bashrc,用戶目錄下.bashrc有什麼區別? 

一個是針對整個系統所有用戶的,一個是針對特定用戶的./etc/bashrc修改了以後要重啓系統才生效,而用戶目錄下.bashrc修改了以後重新登錄就生效 

2。/etc/profile與/etc/bashrc的區別? 

前一個主要用來設置一些系統變量,比如JAVA_HOME等等,後面一個主要用來保存一些bash的設置.  

/etc/profile:此文件爲系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.

並從/etc/profile.d目錄的配置文件中搜集shell的設置. 

/etc/bashrc:爲每一個運行bashshell的用戶執行此文件.當bash shell被打開時,該文件被讀取. 

~/.bash_profile:每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該 

文件僅僅執行一次!默認情況下,他設置一些環境變量,執行用戶的.bashrc文件. 

~/.bashrc:該文件包含專用於你的bashshell的bash信息,當登錄時以及每次打開新的shell時,該 

該文件被讀取. 

~/.bash_logout:當每次退出系統(退出bashshell)時,執行該文件. 

另外,/etc/profile中設定的變量(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變量(局部)只能繼承/etc/profile中的變量,他們是"父子"關係. 

~/.bash_profile是交互式、login 方式進入 bash 運行的 

~/.bashrc是交互式 non-login 方式進入 bash 運行的 

通常二者設置大致相同,所以通常前者會調用後者。 

.bash_profile文件在通過控制檯(或遠程登錄, 比如ssh)登錄(login)系統的時候被執行的shell腳本. 

而 .bashrc則是在打開虛擬終端的時候纔會起作用,比如在GNOME,KDE中執行rxvt.

 

通俗的理解

~/.bash_profile是交互式、login 方式進入 bash 運行的 

~/.bashrc是交互式 non-login 方式進入 bash 運行的 

 

 

 

 

 

【環境變量配置的原因】

在windows系統下,很多軟件的安裝都需要設置環境變量,如安裝Mysql、如果不設置環境變量,在非軟件的安裝目錄下運行mysql命令,將會報告找不到文件類的錯誤。

那麼、什麼是環境變量呢?通俗的說,就是指定一個目錄、運行軟件的時候,相關的程序會到該目錄尋找相關的文件。

設置變量對於一般人最實用的功能就是:需要找某些執行程序或執行某些shell腳本的時候,不用去到該目錄下中執行、系統中的PATH路徑會幫你完成搜索查找的功能,通俗的說法就是,只要你的目錄在PATH路徑中,都屬於環境變量,執行任何東西PATH都會幫你找到。

 

在Linux系統中,如果你下載並安裝了應用程序,很有可能在鍵入執行名稱時出現“command not found"命令找不到的提示內容,如果每次都到安裝程序目錄內,找到可執行文件,那個就太煩躁,

這就涉及到環境變量設置的問題了

 

【Linux 配置環境變量的三個方法】

 

如果想將一個路徑加入到$PATH中方法有下面三種

1shell中設置環境變量,不過不贊成這種方法,因爲換個shell或重啓shell你的設置就無效了,只

   能臨時使用

      配置例子如下

 

   $PATH="$PATH:/新的路徑名稱"    (關閉shell,配置失效)

 

 

計算機生成了可選文字:[root@shell、]#mkdlrxx[root@shell門#echo$PATH/usr/11b64/qt一3.3/bin:/usr/local/sbin:/root/bln[root@shell']#pwd/root[root@Shell、]#PATH=$PATH:/root/xx[root@shell']#echo$PATH-/usr/1lb64/qt一3.3/bln:/usr/local/sbin:/root/bln:/root/xx[root@Shell']#/usr/local/bin:/sbln:/bln:/usr/sbln:/usr/bin:叮飛贏二曰11山./usr/local/bln:/sbln:/bln:/usr/sbln:/usr/binJ、廠\、}勺,’巴f,.~,.r~.屍了戶飛屍“主n添加進去

 

 

2、修改/etc/profile文件,如果你的計算機沒有用在重要的辦公環境中,只是用來做一些測試、可以

      使用這個方法,如果不是不推薦使用這種方法,因爲這種方法系統裏面所有的用戶都能使用這個環

      境變量,會給系統帶來安全性問題

     配置方法如下

    vim /etc/profile

    在這個配置文件裏面加入

   export PATH="$PATH:/新的路徑"      (這個配置方法系統所有的用戶都可能使用這個變量)

計算機生成了可選文字:且lbfbl乙七二‘口{:一“」;它hen廠一一一exportHISTCONTROL=lgnorebothexportHISTCONTROL=ignoredupsr.LeSf11.1.1efexportPATHUSERLOGNAME做ILHOSTN劫伍HISTSIZEHISTCOXTROLPATH=,·/root/xx"井Bydefault,wewantumasktogetset.ThissetsItforloglnshell#Currentthresholdforsystemreserveduid/gids15200#YoucouldcheckuldgidreservationvalidltyIn#/usr/share/doc/setup一*/uldgidfileIf[一gt199]撇["/usr/bin/,u一gn"=一/usr/bin/id一un'"];lllllask6lseUmask,J"/etc/proflle"79L,1863C己寫入[root@shell門#Sour。e/etc/profile[root@shell門#echo$PATH/usr/1lb64/qt一3.3/bin:/usr/local/sbln:/usr/local/bin:/sbln:/bln:/usr/s/root/bln:/root/xx[root@shell、1#

 

3、修改用戶的 ".bashrc"文件,這種方法是針對用戶級別的相對比較安全,如果要給某個用戶使用環境

      變量直接修改用戶主目錄下的 ".bashrc"文件夾即可

     配置方法如下

   vim ~/.bash_profile

   在這個文件裏面加入

  exportPATH="$PATH"/新的路徑"

計算機生成了可選文字:#.bash一roflle#GettheallasesandfUnctionsif[一f、/.bashrc]:then、/.bashrcfi皿價產在卜主雲,分#USerSp揚i。。nvironmen:。ndStartu。。rogr二sPATH=eXportPATH川着入/bln卜二屯洲湯娜口口I還止林坦護石自砂把一大_1口門曰曰..山目曰二山如擊御~,戶側.J曰..''.曰.一~~一~.口目,目門.,

 

 

後面的兩種方法需要重新啓動西東才能生效或者輸入所有用戶變量source /etc/profile

單個用戶suorce~/.bash_profile

QQ交流羣:11511420

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章