環境變數
環境變數是和 Shell 緊密相關的,使用者登入系統後就啟動了一個 Shell 。對於 Linux 來說一般是 bash ,但也可以重新設定或切換到其它的 Shell 。根據發行版本的情況, bash 有兩個基本的系統級設定檔: /etc/bashrc 和 /etc/profile 。這些設定檔包含兩組不同的變數: shell 變數和環境變數。前者只是在特定的 shell 中固定(如 bash ),後者在不同 shell 中固定。很明顯, shell 變數是局部的,而環境變數是全域的。環境變數是通過 Shell 命令來設定的,設定好的環境變數又可以被所有目前使用者所啟動並執行程式所使用。對於 bash 這個 Shell 程式來說,可以通過變數名來訪問相應的環境變數,通過 export 來設定環境變數
方法一:直接運行命令
代碼如下 |
複製代碼 |
export PATH=$PATH:/usr/local/webserver/php/bin 和 export PATH=$PATH:/usr/local/webserver/mysql/bin
|
使用這種方法,只會對當前會話有效,也就是說每當登出或登出系統以後,PATH 設定就會失效,只是臨時生效。
方法二:執行vi ~/.bash_profile修改檔案中PATH一行,將/usr/local/webserver/php/bin 和 /usr/local/webserver/mysql/bin 加入到PATH=$PATH:$HOME/bin一行之後
這種方法只對當前登入使用者生效
方法三:修改/etc/profile檔案使其永久性生效,並對所有系統使用者生效,在檔案末尾加上如下兩行代碼
代碼如下 |
複製代碼 |
PATH=$PATH:/usr/local/webserver/php/bin:/usr/local/webserver/mysql/bin export PATH [root@CentOS ~]# vi /etc/profile |
在檔案末尾加上如下兩行代碼
代碼如下 |
複製代碼 |
PATH=/usr/local/webserver/php/bin:$PATH export PATH # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`id -u` UID=`id -ru` fi USER="`id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi
# Path manipulation if [ "$EUID" = "0" ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin else pathmunge /usr/local/sbin after pathmunge /usr/sbin after pathmunge /sbin after fi HOSTNAME=`/bin/hostname 2>/dev/null` HISTSIZE=1000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell # Current threshold for system reserved uid/gids is 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done unset i unset pathmunge PATH=/usr/local/webserver/php/bin:$PATH export PATH |
要是剛才的修改馬上生效,需要執行以下代碼
代碼如下 |
複製代碼 |
[root@CentOS ~]# source /etc/profile |
這時再查看系統內容變數,就能看見剛才加的東西已經生效了
代碼如下 |
複製代碼 |
[root@CentOS ~]# echo $PATH /usr/local/webserver/php/bin:/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin |