Linux環境變數配置全攻略

2021-09-19 18:32:41 字數 4169 閱讀 8265

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...