臨時儲存, 原文連線:
在自定義安裝軟體的時候,經常需要配置環境變數,下面列舉出各種對環境變數的配置方法。
下面所有例子的環境說明如下:
系統:ubuntu 14.0
使用者名稱:uusama
需要配置mysql環境變數路徑:/home/uusama/mysql/bin
linux讀取環境變數的方法:
export命令顯示當前系統定義的所有環境變數
echo $path命令輸出當前的path環境變數的值
這兩個命令執行的效果如下
uusama@ubuntu:~$ export
declare -x home="/home/uusama"
declare -x lang=「en_us.utf-8」
declare -x language=「en_us:」
declare -x lessclose="/usr/bin/lesspipe %s %s"
declare -x lessopen="| /usr/bin/lesspipe %s"
declare -x logname=「uusama」
declare -x mail="/var/mail/uusama"
declare -x path="/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
declare -x ssh_tty="/dev/pts/0"
declare -x term=「xterm」
declare -x user=「uusama」
uusama@ubuntu:~$ echo $path
/home/uusama/bin:/home/uusama/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
其中path變數定義了執行命令的查詢路徑,以冒號:分割不同的路徑,使用export定義的時候可加雙引號也可不加。
linux環境變數配置方法一:export path
使用export命令直接修改path的值,配置mysql進入環境變數的方法:
export path=/home/uusama/mysql/bin:$path
export path=$path:/home/uusama/mysql/bin
注意事項:
vim ~/.bashrc
export path=$path:/home/uusama/mysql/bin
注意事項:
vim ~/.bash_profile
export path=$path:/home/uusama/mysql/bin
注意事項:
chmod -v u+w /etc/bashrc
vim /etc/bashrc
export path=$path:/home/uusama/mysql/bin
注意事項:
chmod -v u+w /etc/profile
vim /etc/profile
export path=$path:/home/uusama/mysql/bin
注意事項:
chmod -v u+w /etc/environment
vim /etc/profile
export path=$path:/home/uusama/mysql/bin
注意事項:
特定的載入順序會導致相同名稱的環境變數定義被覆蓋或者不生效。
環境變數的分類
環境變數可以簡單的分成使用者自定義的環境變數以及系統級別的環境變數。
使用者級別環境變數定義檔案:/.bashrc、/.bash_profile
系統級別環境變數定義檔案:/etc/bashrc、/etc/bash_profile、/etc/environment
另外在使用者環境變數中,系統會首先讀取/.bash_profile檔案,如果沒有該檔案則讀取/.bash_login,如果也沒有該檔案,則讀取/.profile,根據這些檔案中內容再去讀取/.bashrc。
測試linux環境變數載入順序的方法
為了測試各個不同檔案的環境變數載入順序,我們在每個環境變數定義檔案中的第一行都定義相同的環境變數uu_order,該變數的值為本身的值連線上當前檔名稱。
需要修改的檔案如下:
/etc/environment
/etc/profile
/etc/profile.d/test.sh,新建檔案,沒有資料夾可略過
/etc/bashrc,或者/etc/bash.bashrc
/.bash_profile,或者/.profile
~/.bashrc
在每個檔案中的第一行都加上下面這句**,並相應的把冒號後的內容修改為當前檔案的絕對檔名。
export uu_order="$uu_order:~/.bash_profile"
修改完之後儲存,新開乙個視窗,然後echo $uu_order觀察變數的值:
uusama@ubuntu:~$ echo $uu_order
$uu_order:/etc/environment:/etc/profile:/etc/bash.bashrc:/etc/profile.d/test.sh:/.profile:/.bashrc
可以推測出linux載入環境變數的順序如下:
/etc/environment
/etc/profile
/etc/bash.bashrc
/etc/profile.d/test.sh
~/.profile
~/.bashrc
linux環境變數檔案載入詳解
由上面的測試可容易得出linux載入環境變數的順序如下:
系統環境變數 -> 使用者自定義環境變數
/etc/environment -> /etc/profile -> ~/.profile
開啟/etc/profile檔案你會發現,該檔案的**中會載入/etc/bash.bashrc檔案,然後檢查/etc/profile.d/目錄下的.s**件並載入。
if [ 「ps1
"];t
heni
f[
"ps1" ]; then if [ "
ps1"];
then
if["
bash」 ] && [ 「$bash」 != 「/bin/sh」 ]; then
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fielse
if [ 「id -u
」 -eq 0 ]; then
ps1=』# 』
else
ps1=』$ 』
fifi
fiif [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fidone
unset i
fi其次再開啟/.profile檔案,會發現該檔案中載入了/.bashrc檔案。
if [ -n 「$bash_version」 ]; then
if [ -f 「hom
e/.b
ashr
c"];
then
."
home/.bashrc" ]; then . "
home/.
bash
rc"]
;the
n."home/.bashrc」
fifi
path=「hom
e/bi
n:
home/bin:
home/b
in:home/.local/bin:$path」
從~/.profile檔案中**不難發現,/.profile檔案只在使用者登入的時候讀取一次,而/.bashrc會在每次執行shell指令碼的時候讀取一次。
一些小技巧
可以自定義乙個環境變數檔案,比如在某個專案下定義uusama.profile,在這個檔案中使用export定義一系列變數,然後在~/.profile檔案後面加上:sourc uusama.profile,這樣你每次登陸都可以在shell指令碼中使用自己定義的一系列變數。
也可以使用alias命令定義一些命令的別名,比如alias rm=「rm -i」(雙引號必須),並把這個**加入到~/.profile中,這樣你每次使用rm命令的時候,都相當於使用rm -i命令,非常方便。
Linux Linux下設定環境變數
ubuntu設定環境變數 ubuntu下設定環境變數有三種方法,一種用於當前終端,一種用於當前使用者,一種用於所有使用者 一 用於當前終端 在當前終端中輸入 export path path 你的要加入的路徑 不過上面的方法只適用於當前終端,一旦當前終端關閉或在另乙個終端中,則無效。二 用於當前使用...
linux環境程式設計 環境變數 列印環境變數
在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...
環境變數PATH和環境變數PATHEXT的還原
一,計算機 屬性 高階系統設定 環境變數 然後在系統變數裡新建變數pathext通常預設值為.com exe bat cmd vbs vbe js jse wsf wsh 二,系統變數中新建變數path預設值可以通過以下步驟進行 1 按win r,輸入regedit 2 在登錄檔裡,定位到hkey ...