Linux 環境變量設置的三種方式

功能說明:設置或顯示環境變量mysql

語法:export [-fnp][變量名稱]=[變量設置值]linux

補充說明:在shell中執行程序時,shell會提供一組環境變量。 export可新增,修改或刪除環境變量,供後續執行的程序使用。sql

export的效力僅及於該此登錄操做。shell

參數bash

  -f  表明[變量名稱]中爲函數名稱。less

 -n  刪除指定的變量。變量實際上並未刪除,只是不會輸出到後續指令的執行環境中。ssh

 -p  列出全部的shell賦予程序的環境變量。函數

一個變量建立時,它不會自動地爲在它以後建立的shell進程所知。而命令export能夠向後面的shell傳遞變量的值。當一個spa

shell腳本調用並執行時,它不會自動獲得原爲腳本(調用者)裏定義的變量的訪問權,除非這些變量已經被顯式地設置爲可用。命令行

export命令能夠用於傳遞一個或多個變量的值到任何後繼腳本

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

若是使用源碼包安裝的軟件,在安裝完成後通常狀況下要設置該軟件命令執行的路徑,那就是 PATH 變量。如何來設置 PAHT變量呢?咱們又三種方法實現

1.直接使用 export 命令 (咱們以 mysql 服務舉例說明)

[root@ www.linuxidc.com ~]# export PATH=$PATH:/usr/local/mysql/bin

查看是否已經設置好,可使用命令 export 命令來查看

[root@ www.linuxidc.com ~]# export

declare -x CVS_RSH="ssh"

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME=" www.linuxidc.com"

declare -x INPUTRC="/etc/inputrc"

declare -x LANG="en_US.UTF-8"

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:*NaNd=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

declare -x PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin"

declare -x PWD="/root"

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-AbUtqs3354/agent.3354"

declare -x SSH_CLIENT="192.168.1.102 2640 22"

declare -x SSH_CONNECTION="192.168.1.102 2640 192.168.1.110 22"

declare -x SSH_TTY="/dev/pts/0"

declare -x TERM="vt100"

declare -x USER="root"

須要注意: 直接使用 export 設置的變量都是臨時變量,也就是說退出當前的 shell ,爲該變量定義的值便不會生效了。如何能讓咱們定義的變量永久生效呢?那就看咱們的第二種定義的方式

2. 修改 /etc/profile

[root@ www.linuxidc.com ~]# vi /etc/profile

export PATH=$PATH:/usr/local/mysql/bin  # 在配置文件中加入此行配置

須要注意的是:修改完這個文件必需要使用 如下命令在不用重啓系統的狀況下使修改的內容生效

[root@ www.linuxidc.com ~]# source /etc/profile

或者是:

[root@ www.linuxidc.com ~]# . /etc/profile

[root@ www.linuxidc.com ~]# echo $PATH

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

# 配置已經生效

3. 修改 .bashrc 文件是在當前用戶 shell 下生效

# vi /root/.bashrc
在裏面加入:

export PATH=$PATH:/usr/local/mysql/bin

修改這個文件以後一樣也須要使用 source 或者是 . 使配置文件生效。

再來使用 echo $PATH看下變量是否生效

[root@ www.linuxidc.com ~]# echo $PATH

/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

###############################################

「/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。

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

相關文章
相關標籤/搜索