1. 程式人生 > >Linux 環境下/etc/profile和/etc/profile.d 的區別和用法

Linux 環境下/etc/profile和/etc/profile.d 的區別和用法

區別:
1. 兩個檔案都是設定環境變數檔案的,/etc/profile是永久性的環境變數,是全域性變數,/etc/profile.d/設定所有使用者生效

2. /etc/profile.d/比/etc/profile好維護,不想要什麼變數直接刪除/etc/profile.d/下對應的shell指令碼即可,不用像/etc/profile需要改動此檔案

用法:

CentOS 中每個使用者都要指定各自的環境變數,其中包括可執行的 path路徑,這些路徑決定了每個使用者在執行時的命令工具。 

一般情況下,可以再每個使用者的環境變數裡設定各自的 path變數值,然後再執行export PATH使其生效,但如果使用者比較多,安裝命令工具也原來越多,且出來本身使用者可以執行這些工具,root使用者或其他使用者也可以執行命令,這時在每個使用者環境變數裡新增就比較複雜了。

所以可以用另外一種方法:

可以再 /etc/profile.d/ 目錄下建立一個 path.sh 指令碼,指令碼內容如下:

例子:
用程式碼格式表示內容如下:
# cat /etc/profile.d/path.sh

export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/php/sbin:/usr/local/mysql/bin:/usr/local/redis/bin:/usr/local/daemontools/bin:/usr/local/daemontools/sbin:/usr/local/percona-xtrabackup/bin"

可以將需要各個使用者需要執行的命令路徑都寫在該命令中,這樣每次
作業系統
其中後,會自動執行path.sh指令碼,將所有的環境變數生效,讓各個使用者都可以直接執行各自的命令。 以後安裝了新軟體後,只需要將軟體相關路徑加入 /etc/profile.d/path.sh 指令碼中,不需要再多個地方重複新增,使指令碼生效後,各個使用者都可以使用了。 <摘自百度知道>