Linux裏設置環境變量的方法(export PATH)

1.動態庫路徑的設置

Linux下調用動態庫和windows不同.linux 可執行程序是靠配置文件去讀取路徑的,所以有些時候須要設置路徑
具體操做以下java

export LD_LIBRARY_PATH=/home/.....(動態庫的目錄)linux

不過這種設置方法只是在當前的session中有效shell

你能夠修改配置文件實現任何session都有效windows

2.環境變量的設置

通常來講,配置交叉編譯工具鏈的時候須要指定編譯工具的路徑,此時就須要設置環境變量。例如個人mips-linux-gcc編譯器在「/opt /au1200_rm/build_tools/bin」目錄下,build_tools就是個人編譯工具,則有以下三種方法來設置環境變量:安全

2.一、直接用export命令:

#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已經設好,可用命令export查看:
能夠看到,環境變量已經設好,PATH裏面已經有了我要加的編譯器的路徑。bash

2.二、修改profile文件:

#vi /etc/profile
在裏面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"session

讓環境變量當即生效須要執行以下命令:編輯器

#source /etc/profile函數

2.3. 修改.bashrc文件:

# vi /root/.bashrc
在裏面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"工具

後兩種方法通常須要從新註銷系統才能生效,最後能夠經過echo命令測試一下:
# echo $PATH
看看輸出裏面是否是已經有了/my_new_path這個路徑了。
-----------------------------------------------------------------------------------

「/bin」、「/sbin」、「/usr/bin」、「/usr/sbin」、「/usr/local/bin」等路徑已經在系統環境變量中了,若是可執行文件在這幾個標準位置,在終端命令行輸入該軟件可執行文件的文件名和參數(若是須要參數),回車便可。

若是不在標準位置,文件名前面須要加上完整的路徑。不過每次都這樣跑就太麻煩了,一個「一勞永逸」的辦法是把這個路徑加入環境變量。命令 「PATH=$PATH:路徑」能夠把這個路徑加入環境變量,可是退出這個命令行就失效了。要想永久生效,須要把這行添加到環境變量文件裏。有兩個文件可選:「/etc/profile」和用戶主目錄下的「.bash_profile」,「/etc/profile」對系統裏全部用戶都有效,用戶主目錄下的「.bash_profile」只對這個用戶有效。

「PATH=$PATH:路徑1:路徑2:...:路徑n」,意思是可執行文件的路徑包括原先設定的路徑,也包括從「路徑1」到「路徑n」的全部路徑。當用戶輸入一個一串字符並按回車後,shell會依次在這些路徑裏找對應的可執行文件並交給系統核心執行。那個「$PATH」表示原先設定的路徑仍然有效,注意不要漏掉。某些軟件可能還有「PATH」之外類型的環境變量須要添加,但方法與此相同,而且也須要注意「$」。

注意,與DOS/Window不一樣,UNIX類系統環境變量中路徑名用冒號分隔,不是分號。另外,軟件越裝越多,環境變量越添越多,爲了不形成混亂,建議全部語句都添加在文件結尾,按軟件的安裝順序添加。

格式以下():

# 軟件名-版本號

PATH=$PATH:路徑1:路徑2:...:路徑n

其餘環境變量=$其餘環境變量:...

在「profile」和「.bash_profile」中,「#」是註釋符號,寫在這裏除了視覺分隔外沒有任何效果。

設置完畢,註銷並從新登陸,設置就生效了。若是不註銷,直接在shell裏執行這些語句,也能生效,可是做用範圍只限於執行了這些語句的shell。

相關的環境變量生效後,就沒必要老跑到軟件的可執行文件目錄裏去操做了。

from: http://blog.csdn.net/kpgood/archive/2009/03/07/3965446.aspx

 

使用linux的朋友愈來愈多了,在linux下作開發首先就是須要配置環境變量,下面以配置Java環境變量爲例介紹三種配置環境變量的方法。

1.修改/etc/profile文件

若是你的計算機僅僅做爲開發使用時推薦使用這種方法,由於全部用戶的shell都有權使用這些環境變量,可能會給系統帶來安全性問題。

(1)用文本編輯器打開/etc/profile

(2)在profile文件末尾加入:

JAVA_HOME=/usr/share/jdk1.5.0_05

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

(3)從新登陸

註解:

a. 你要將 /usr/share/jdk1.5.0_05jdk 改成你的jdk安裝目錄

b. linux下用冒號「:」來分隔路徑

c. $PATH / $CLASSPATH / $JAVA_HOME 是用來引用原來的環境變量的值,在設置環境變量時特別要注意不能把原來的值給覆蓋掉了,這是一種常見的錯誤。

d. CLASSPATH中當前目錄「.」不能丟,把當前目錄丟掉也是常見的錯誤。

e. export是把這三個變量導出爲全局變量。

f. 大小寫必須嚴格區分。

2. 修改.bashrc文件

這種方法更爲安全,它能夠把使用這些環境變量的權限控制到用戶級別,若是你須要給某個用戶權限使用這些環境變量,你只須要修改其我的用戶主目錄下的.bashrc文件就能夠了。

(1)用文本編輯器打開用戶目錄下的.bashrc文件

(2)在.bashrc文件末尾加入:

set JAVA_HOME=/usr/share/jdk1.5.0_05

export JAVA_HOME

set PATH=$JAVA_HOME/bin:$PATH

export PATH

set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export CLASSPATH

(3)從新登陸

3. 直接在shell下設置變量

不同意使用這種方法,由於換個shell,你的設置就無效了,所以這種方法僅僅是臨時使用,之後要使用的時候又要從新設置,比較麻煩。

只需在shell終端執行下列命令:

export JAVA_HOME=/usr/share/jdk1.5.0_05

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

在 linux系統 下,若是你下載並安裝了應用程序,頗有可能在鍵入它的名稱時出現「 command not found 」的提示內容。若是每次都到安裝目標文件夾內,找到可執行文件來進行操做就太繁瑣了。這涉及到環境變量 PATH 的設置問題,而 PATH 的設置也是在 linux 下定製環境變量的一個組成部分。本文基於 RedHat 9.0 ,詳細講解了環境變量定製的問題。

二、變量簡介

Linux 是一個多用戶的操做系統。每一個用戶登陸系統後,都會有一個專用的運行環境。一般每一個用戶默認的環境都是相同的,這個默認環境實際上就是一組環境變量的定義。用戶能夠對本身的運行環境進行定製,其方法就是修改相應的系統環境變量。

三、常見的環境變量

$PATH:決定了shell將到哪些目錄中尋找命令或程序

$HOME:當前用戶主目錄

$MAIL:是指當前用戶的郵件存放目錄。

$SHELL:是指當前用戶用的是哪一種Shell。

$HISTSIZE:是指保存歷史命令記錄的條數

$LOGNAME:是指當前用戶的登陸名。

$HOSTNAME:是指主機的名稱,許多應用程序若是要用到主機名的話,一般是從這個環境變量中來取得的。

$LANG/LANGUGE:是和語言相關的環境變量,使用多種語言的用戶能夠修改此環境變量。

$PS1:是基本提示符,對於root用戶是#,對於普通用戶是$,也可使用一些更復雜的值。

$PS2:是附屬提示符,默認是「>」。能夠經過修改此環境變量來修改當前的命令符,好比下列命令會將提示符修改爲字符串「Hello,My NewPrompt :) 」。

# PS1=" Hello,My NewPrompt :) "

$IFS:輸入域分隔符。當shell讀取輸入時,用來分隔單詞的一組字符,它們一般是空格、製表符和換行符。

$0:shell腳本的名字。

例如,在個人Linux系統中:

$ echo $0

/bin/bash

$#:傳遞給腳本的參數個數。

:shell腳本的進程號,腳本程序一般會用它生成一個惟一的臨時文件,如/tmp/tmfile_

例如,在個人Linux系統中:

$ echo $$

31038               #表示當前shell進程號爲31038

四、export命令

export命令將做爲他參數的變量導入到子shell中,並使之在子shell中有效。export命令把本身的參數建立爲一個環境變量,而這個環境變量能夠被其餘腳本和當前程序調用的程序看見。

4.1 實驗 導出變量

(1)咱們先列出腳本程序export2

#!/bin/sh

echo "$foo"

echo "$bar"

(2)而後是腳本export1。在這個腳本的結尾,咱們調用export2:

#!/bin/sh

foo="The first meta-syntactic variable"

export bar="The second meta-syntactic variable"

export2

運行這個腳本,將獲得以下的輸出:

$ export1

                                          #這是個空格,是由於變量foo在export2中不可用,因此$foo被複製爲空

The second meta-syntactic variable

$

4.2 設置一個新的環境變量WELCOME

$ export WELCOME="Hello!"
$ echo $WELCOME
Hello!

五、定製環境變量

環境變量是和 Shell 緊密相關的,用戶登陸系統後就啓動了一個 Shell 。對於 Linux 來講通常是 bash ,但也能夠從新設定或切換到其它的 Shell 。根據發行版本的狀況, bash 有兩個基本的系統級配置文件: /etc/bashrc 和 /etc/profile 。這些配置文件包含兩組不一樣的變量: shell 變量和環境變量。前者只是在特定的 shell 中固定(如 bash ),後者在不一樣 shell 中固定。很明顯, shell 變量是局部的,而環境變量是全局的。環境變量是經過 Shell 命令來設置的,設置好的環境變量又能夠被全部當前用戶所運行的程序所使用。對於 bash 這個 Shell 程序來講,能夠經過變量名來訪問相應的環境變量,經過 export 來設置環境變量。下面經過幾個實例來講明。

5.1 使用命令echo 顯示環境變量

#本例使用echo顯示常見的變量HOME

$ echo $HOME

/home/lqm

5.2 設置一個新的環境變量

$ export HELLO=「Hello!」

$ echo $HELLO

Hello!

5.3 使用 env 命令顯示全部的環境變量

$ env

SSH_AGENT_PID=1875

HOSTNAME=lqm

SHELL=/bin/bash

TERM=xterm

HISTSIZE=1000

……

5.4  使用set 命令顯示全部本地定義的Shell 變量

$ set

BASH=/bin/bash

……

5.5  使用 unset 命令來清除環境變量

$ export TEST=「test」       # 增長一個環境變量 TEST

$ env | grep TEST               # 此命令有輸出,證實環境變量 TEST 已經存在了

TEST=test

$ unset $TEST                   #刪除環境變量TEST

$ env | grep TEST              # 此命令無輸出,證實環境變量 TEST 已經存在了

5.6  使用 readonly 命令設置只讀變量

若是使用了 readonly 命令的話,變量就不能夠被修改或清除了。示例以下:

$ export TEST="Test"        # 增長一個環境變量 TEST

$ readonly TEST                  #將環境變量TEST設爲只讀

$ unset TEST                      #會發現此變量不能被刪除

-bash: unset: TEST: cannot unset: readonly variable

$ TEST="New" #會發現此變量不能被修改

-bash: TEST: readonly variable

5.7  用C 程序來訪問和設置環境變量

對於 C 程序的用戶來講,可使用下列三個函數來設置或訪問一個環境變量。

getenv() 訪問一個環境變量。輸入參數是須要訪問的變量名字,返回值是一個字符串。若是所訪問的環境變量不存在,則會返回 NULL 。

setenv() 在程序裏面設置某個環境變量的函數。

unsetenv() 清除某個特定的環境變量的函數。

另外,還有一個指針變量 environ ,它指向的是包含全部的環境變量的一個列表。下面的程序能夠打印出當前運行環境裏面的全部環境變量:

#include <stdio.h>

extern char**environ;

int main ()

{

char**var;

for (var =environ;*var !=NULL;++var)

printf ("%s \n ",*var);

return 0;

}

5.8 經過修改環境變量定義文件來修改環境變量。

須要注意的是,通常狀況下,這僅僅對於普通用戶適用,避免修改根用戶的環境定義文件,由於那樣可能會形成潛在的危險。

$vi /etc/bashrc      #修改shell變量

$vi /etc/profile       #修改環境變量定義文件

而後編輯你的 PATH 聲明,其格式爲:

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

你能夠本身加上指定的路徑,中間用冒號隔開。環境變量更改後,在用戶下次登錄時生效,若是想馬上生效,則可執行下面的語句:$ source .bash_profile

須要注意的是,最好不要把當前路徑 「./」 放到 PATH 裏,這樣可能會受到意想不到的攻擊。完成後,能夠經過 $ echo $PATH 查看當前的搜索路徑。這樣定製後,就能夠避免頻繁的啓動位於 shell 搜索的路徑以外的程序了。

轉至:http://kangyang.blog.51cto.com/471772/590840

相關文章
相關標籤/搜索