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

1.動態庫路徑的設置

Linux下調用動態庫和windows不一樣.linux 可執行程序是靠配置文件去讀取路徑的,因此有些時候需要設置路徑
具體操作如下

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

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

你可以修改配置文件實現任何session都有效

2.環境變量的設置

一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設置環境變量。例如我的mips-linux-gcc編譯器在“/opt/au1200_rm/build_tools/bin”目錄下,build_tools就是我的編譯工具,則有如下三種方法來設置環境變量:

1、直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已經設好,可用命令export查看:
[root@localhost bin]# export
declare -x BASH_ENV="/root/.bashrc"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x INPUTRC="/etc/inputrc"
declare -x LANG="zh_CN.GB18030"
declare -x LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD="/opt/au1200_rm/build_tools"
declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/au1200_rm/build_tools/bin"
declare -x PWD="/opt/au1200_rm/build_tools/bin"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_AUTH_SOCK="/tmp/ssh-XX3LKWhz/agent.4242"
declare -x SSH_CLIENT="10.3.37.152 2236 22"
declare -x SSH_CONNECTION="10.3.37.152 2236 10.3.37.186 22"
declare -x SSH_TTY="/dev/pts/2"
declare -x TERM="linux"
declare -x USER="root"
declare -x USERNAME="root"
可以看到,環境變量已經設好,PATH裏面已經有了我要加的編譯器的路徑。

2、修改profile文件:
#vi /etc/profile
在裏面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"

讓環境變量立即生效需要執行如下命令:

#source /etc/profile

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 ,詳細講解了環境變量定製的問題。

2、變量簡介

  Linux 是一個多用戶的操作系統。每個用戶登錄系統後,都會有一個專用的運行環境。通常每個用戶默認的環境都是相同的,這個默認環境實際上就是一組環境變量的定義。用戶可以對自己的運行環境進行定製,其方法就是修改相應的系統環境變量。

3、常見的環境變量

  $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  

4、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! 

 

5、定製環境變量

  環境變量是和 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 搜索的路徑之外的程序了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章