LINUX中 export的作用
一般來說,配置交叉編譯工具鏈的時候需要指定編譯工具的路徑,此時就需要設定環境變數。例如我的mips-linux-gcc編譯器在“/opt/au1200_rm/build_tools/bin”目錄下,build_tools就是我的編譯工具,則有如下三種方法來設定環境變數:
1、直接用export命令:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
檢視是否已經設好,可用命令export檢視:
[[email protected] 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"
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。
相關的環境變數生效後,就不必老跑到軟體的可執行檔案目錄裡去操作了。