Linux下環境變數配置方法梳理(.bash_profile和.bashrc的區別)

散盡浮華發表於2017-12-20

 

在linux系統下,如果下載並安裝了應用程式,在啟動時很有可能在鍵入它的名稱時出現"command not found"的提示內容。如果每次都到安裝目標資料夾內,找到可執行檔案
來進行操作就太繁瑣了,這種情況下就涉及到環境變數PATH的設定問題,而PATH的設定也是在linux下定製環境變數的一個組成部分。

環境變數配置的兩個方法:

1)修改/etc/profile檔案
推薦使用這種方法,因為所有使用者的shell都有權使用這些環境變數,缺點是可能會給系統帶來安全性問題。 這裡是針對所有的使用者的,所有的shell; 
[root@test ~]# vim /etc/profile 
....
export PATH=$PATH:/usr/local/mysql/bin

使用source命令使修改立刻生效:  
[root@test ~]# source  /etc/profile

2)修改.bashrc檔案,這種方法更為安全,它可以把使用這些環境變數的許可權控制到使用者級別,這裡是針對某一個特定的使用者,如果需要給某個使用者許可權
使用這些環境變數,只需要修改其個人使用者主目錄下的.bashrc檔案就可以了。
[root@test ~]# vim /root/.bashrc 
export PATH=$PATH:/usr/local/mysql/bin

[root@test ~]# source  /root/.bashrc

需要注意的是:
在/etc/profile裡設定系統環境變數時,路徑末尾不能以"/"結尾,否則將導致整個PATH變數出錯。

[app@test ~]$ vim ~/.bashrc 
......
KETTLE_HOME=/data/nstc/kettle3.2
export KETTLE_HOME

注意:配置好環境變數後,要記得export輸出這個變數,否則如下source後無效!
[app@test ~]$ source .bashrc //使之生效
[app@test ~]$ echo $KETTLE_HOME
/data/nstc/kettle3.2
[app@test ~]$ env
.........
KETTLE_HOME=/data/nstc/kettle3.2

.bash_profile和.bashrc的區別:

/etc/profile: 此檔案為系統的每個使用者設定環境資訊,當使用者第一次登入時,該檔案被執行.並從/etc/profile.d目錄的配置檔案中搜集shell的設定.
/etc/bashrc:  為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取.
~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該檔案. 

另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是"父子"關係.

=========================設定終端登入超時時間================

遠端登入linux伺服器,如何設定終端失效時間(即過了多久不操作,終端即將失效)。方法如下:
[root@mq-console-nameserver ~]# vim /etc/profile
......
export TMOUT=600
[root@mq-console-nameserver ~]# source /etc/profile

如上設定後,登入這臺伺服器的終端在10分鐘內不做操作,則該終端就將失效!

相關文章