2 Linux Linux環境變數配置

2021-10-24 04:57:55 字數 4303 閱讀 4630

臨時儲存, 原文連線:

在自定義安裝軟體的時候,經常需要配置環境變數,下面列舉出各種對環境變數的配置方法。

下面所有例子的環境說明如下:

系統: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 ...