1. 程式人生 > >Ubuntu配置檔案/etc/profile說明

Ubuntu配置檔案/etc/profile說明

對於/etc/profile這個檔案,是系統啟動是要自動執行的檔案,任何一個使用者登入系統都會執行這個檔案。
這個檔案裡面的配置,是全域性配置。所以,如果你需要讓你的變數讓所有的使用者都能使用的話,那麼可以考慮在此配置檔案裡面新增。
比如JAVA_HOME變數的配置。
但是,儘量的,我們不要去修改這個配置檔案,因為這個是系統的配置檔案。我們儘量的修改我們自己獨立配置檔案。
在可能的時候,或者重新配置的時候,你可以隨時修改你自己的配置檔案而不致於影響他人或者此伺服器系統。


同樣的道理,修改/etc/rd.local也可以達到同樣的效果。
但是和上面的一樣,不是一個好的選擇。


替代方案是什麼呢?
先來看/etc/profile的原始碼


if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi


if [ "$PS1" ]; then
  if [ "$BASH" ]; then
    PS1='"
[email protected]
"h:"w"$ '
    if [ -f /etc/bash.bashrc ]; then
    . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi


紅色的程式碼部分,說明/etc/profile會首先執行/etc/profile.d/目錄下的所有*.sh檔案。
這也就給我們一個可擴充套件的思路。


如果我們需要配置JDK,那麼就在/etc/profile.d/下建立jdk.sh檔案
如果需要配置oracle,那麼就在//etc/profile.d/下建立oracle.sh檔案


然後,在對應的配置檔案裡面新增你自己的配置就可以了。

另外有結論

1./etc/environment中的echo沒有顯示,但是定義的變數可以在父/子bash shell中使用,呼叫export發現,該變數被自動的export。
2.密碼登入父bash shell時,顯示結果如下:
    bash.bashrc
    profile
    .bashrc
    .profile
    定義的變數可以使用,但沒有被自動export。
3.bash命令免登入進入子bash shell時,顯示結果如下:
    bash.bashrc
    .bashrc
    定義的變數可以使用,但沒有被自動export。


4.exit命令退出子bash shell時,無顯示
5.exit命令退出父bash shell時,顯示:
    .bash_logout

實驗結果分析:    
1. /etc/environment 設定整個系統的環境【主要PATH,初始語言LANG】,由kernel載入(第一個bash shell執行前),裡面定義的變數將作用於所有的子bash shell(自動export),此時bash shell尚未就位,最好不要修改。
2. /etc/bash.bashrc 相當於很多linux下的/etc/bashrc,用來設定bash的變數【sudo,xterm等】,所有bash shell建立的時候載入,裡面定義的變數將作用於本bash session。一般情況下不需要修改。
3. /etc/profile 設定全部使用者的配置資訊【PS1等】,在任何使用者密碼登入後,該檔案執行,非密碼登入時,不再呼叫。該檔案會自動呼叫/etc/bash.bashrc。此檔案會自動呼叫/etc/profile.d/目錄下的所有shell指令碼,如果有全部使用者都需要的變數,比如JAVA_HOME,可以考慮建立一個指令碼放到該目錄下。另外,如果變數需要在子shell中使用,需要自行新增export。

4. ~/.bashrc 用來設定使用者自定義的bash變數【自定義PS1,alias等】,在bash shell建立的時候載入,裡面定義的變數將作用於本bash session。使用者可以通過修改此檔案定製自己的bash。另外,也可以將alias寫到~/.bash_aliases檔案中,~/.bashrc會自動載入該檔案。

5. ~/.profile 用來設定使用者自定義的配置資訊,該檔案會自動載入~/.bashrc,並且重置使用者語言等變數。使用者可以通過修改此檔案,修改變數或者export新變數。

6. ~/.bash_logout 用來在bash shell退出之前載入,清理環境。使用者可以修改此檔案來在登入後重置bash狀態。
7. 登入和免登入bash方式都會呼叫/etc/bash.bashrc和~/.bashrc。只有登入方式bash才會呼叫/etc/profile和~/.profile(包括su)。呼叫順序為全域性配置操作完之後執行個人配置。
8. ~/.bash_history 用來記錄使用者上一次登入的命令記錄(預設1000條)。黑客的最愛。想讀本次命令記錄用history。

相關推薦

Ubuntu配置檔案/etc/profile說明

對於/etc/profile這個檔案,是系統啟動是要自動執行的檔案,任何一個使用者登入系統都會執行這個檔案。 這個檔案裡面的配置,是全域性配置。所以,如果你需要讓你的變數讓所有的使用者都能使用的話,那麼可以考慮在此配置檔案裡面新增。 比如JAVA_HOME變數的配置。 但是

bash配置檔案/etc/profile,/etc/bashrc,~/.bash_profile,~/.bashrc詳解及修改PATH環境變數

 1.bash的配置檔案 1)、全域性配置與個人配置 全域性配置 /etc/profile, /rtc/profile.d/*.sh,/etc/bashrc 個人配置 ~/.bash_pr

ubuntu中環境變數檔案/etc/profile、.profile、.bashrc、/etc/bash.bashrc之間的區別和聯絡(轉)

寫在前面:不同的發行版裡面檔案的命名可能有所不同,如有的發行版etc目錄下有bashrc,有的發行版下面是bash.bashrc。這個根據每個人不同的發行版注意下具體的檔名稱。 /etc/profile:此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行.並從/etc/pro

Ubuntu 網絡卡配置檔案/etc/network/interfaces重啟失效

Iptables的儲存和呼叫 先加埠 /sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 2888 -j ACCEPT /sbin/i

httpd配置檔案 /etc/httpd/conf.d/*.conf

httpd服務程式的配置資訊被寫到  /etc/httpd/conf.d/xxx.conf 這樣的檔案中,其實也就等於寫在主配置檔案 /etc/httpd/conf/httpd.conf裡。   因為這寫檔案在httpd主配置檔案生效的時候,就已經被載入進來了。

spring Boot 配置檔案Profile

1、多Profile 我們在主配置檔案編寫的時候,檔名可以是 application-{profile}.properties/yml 預設使用application.properties的配置; 2 yml檔案---代表不同的doucement          啟

ubuntu dns檔案/etc/resolv.conf詳解

etc/resolv.conf 檔案功能:DNS客戶機配置檔案,設定DNS伺服器的IP地址及DNS域名 相關檔案:/etc/host.conf 檔案格式: domainname 域名 search 域名 nameserver Primary_DNS_Server_

Ubuntu修改vim /etc/profile環境變數後導致開機不能登入!

1.首先進入grub模式:開機時按Shift鍵;2.進入Ubuntu高階選項;3.進入recovery mode的Ubuntu;4.進入root(·····root······shell····)選項;5.按Enter進入系統;(進入命令列後稍等一會後,不知道為什麼會跳出很多

Mysql資料庫伺服器配置檔案/etc/my.cnf的詳細配置

以下是 Mysql數 據庫伺服器配置檔案 /etc/my.cnf的詳細配置。應用場合是 InnoDB引擎, 4核 CPU, 32位 SUSE。 [client]port        = 3306 socket      = /tmp/mysql.sock # The My

ubuntu 配置檔案揭祕

在網上找到很多關於ubuntu的配置檔案的文章,大部分為轉載,而且錯誤很多,為了確認真正的情況,做了一個實驗。 測試環境ubuntu 11.10 實現過程如下: 1.實驗檔案 /etc/environment, /etc/bash.bashrc, /etc/profile

sudo配置檔案/etc/sudoers詳解及實戰用法

一、sudo執行命令的流程 將當前使用者切換到超級使用者下,或切換到指定的使用者下, 然後以超級使用者或其指定切換到的使用者身份執行命令,執行完成後,直接退回到當前使用者。 具體工作過程如下: 當用戶執行sudo時,系統會主動尋找/etc/sudoers檔案,判斷該使用者是否

Linux 網路配置 修改DNS配置檔案/etc/resolv.conf後,重啟網路,DNS配置丟失

在執行命令: ping www.baidu.com ping不通,報錯如下: 圖1 很明顯,這很有可能是DNS配置檔案/etc/resolv.conf的問題。 去檢視DNS配置檔案,果然沒有DNS配置資訊。 圖2 新增DNS配置資訊: nameserver 202.96

Apache 2.2主配置檔案/etc/httpd/conf/httpd.conf配置解說

Apache為網路管理員提供了豐富多彩的功能,包括目錄索引、目錄別名、內容協商、可配置的HTTP錯誤報告、CGI程式的SetUID執行、子 程序資源管理、伺服器端圖象對映、重寫URL、URL拼寫檢查以及聯機手冊man等。也就是說,如果您在Linux Server上成功安裝

prometheus容器內預設環境下的配置檔案/etc/prometheus/prometheus.yml

# my global configglobal:  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.  evaluation_

Linux hostname主機名配置檔案/etc/hosts詳解

點評:這篇文章為大家介紹linux hostname主機名配置檔案/etc/hosts,包括主機名的用途、配置檔案的操作方法等,有需要的朋友,可以參考下 本文轉自:http://www.jb51.net/LINUXjishu/77329.html 好文章,謝謝分享! 1、

nfs的配置檔案/etc/exports

/etc/exports  檔案格式     <輸出目錄> [客戶端1 選項(訪問許可權,使用者對映,其他)] [客戶端2 選項(訪問許可權,使用者對映,其他)]     a. 輸出目錄:輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;     b. 客戶端:客戶端是指網路中可以訪問這個NFS

Redis 修改配置檔案/etc/redis.conf

第一步:開啟redis.conf 配置檔案 修改一下配置  註釋掉: #bind 127.0.0.1 修改為 no protected-mode no第二步: 啟動redis 並且指定配置檔案./red

CentOS重新啟動網路配置,檔案/etc/resolv.conf會被錯誤覆蓋或清空解決

錯誤: centos從5.6就有這個問題,CentOS重新啟動網路配置,檔案/etc/resolv.conf會被錯誤覆蓋或清空。原因: 在檔案[/etc/sysconfig/network-scrip

修改DNS配置檔案/etc/resolv.conf後,重啟網路,DNS配置丟失

在執行命令: ping www.baidu.com ping不通,報錯如下: 圖1 很明顯,這很有可能是DNS配置檔案/etc/resolv.conf的問題。 去檢視DNS配置檔案,果然沒有DNS配置資訊。 圖2 新增DNS配置資訊: nameserver 202.96

瞭解Ubuntu中的幾個配置檔案profile和bash.bashrc

一、profile 使用者登入載入該配置檔案或者說是shell指令碼 二、bash.bashrc 當開啟終端時會載入改配置檔案 注意:這兩個配置檔案都是shell指令碼,也就是說你可以在裡面新增一些自己的風格,比如開啟終端先來個動畫愉悅一下^^