linux環境變數配置全攻略
在自定義安裝軟體的時候,經常需要配置環境變數,下面列舉出各種對環境變數的配置方法。
下面所有例子的環境說明如下:
系統: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" ]; then
if [ "$bash" ] && [ "$bash" != "/bin/sh" ]; then
# the file bash.bashrc already sets the default ps1.
# ps1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
ps1='# '
else
ps1='$ '
fi
fi
fiif [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi其次再開啟~/.profile檔案,會發現該檔案中載入了~/.bashrc檔案。
if [ -n "$bash_version" ]; then
# include .bashrc if it exists
if [ -f "$home/.bashrc" ]; then
. "$home/.bashrc"
fi
fi
path="$home/bin:$home/.local/bin:$path"
從~/.profile檔案中**不難發現,/.profile檔案只在使用者登入的時候讀取一次,而/.bashrc會在每次執行shell指令碼的時候讀取一次。
一些小技巧
可以自定義乙個環境變數檔案,比如在某個專案下定義uusama.profile,在這個檔案中使用export定義一系列變數,然後在~/.profile檔案後面加上:sourc uusama.profile,這樣你每次登陸都可以在shell指令碼中使用自己定義的一系列變數。
Linux環境變數配置全攻略
linux環境變數配置全攻略 在自定義安裝軟體的時候,經常需要配置環境變數,下面列舉出各種對環境變數的配置方法。下面所有例子的環境說明如下 系統 ubuntu 14.0 使用者名稱 uusama 需要配置mysql環境變數路徑 home uusama mysql bin linux讀取環境變數 讀取...
linux下mysql安裝全攻略
1 新增mysql使用者和組 useradd m s sbin nologin mysql 2 解壓mysql軟體包 tar zxvf mysql 5.0.56.tar.gz cd mysql 5.0.56 3 編譯前的預配置 configure prefix usr local mysql 關於m...
Linux下安裝SVN全攻略
svn是近些年來崛起的版本控制工具。目前絕大多數開源軟體都會使用svn作為 版本管理的工具。可以說是程式設計師居家 旅行的必備工具。本文所講得便是在linux系統下安裝svn工具。使用的系統版本為 但是,在安裝過程中出現了如下錯誤 configure error apr not found plea...