使用Linux環境變量–筆記
什麼是環境變量
設置環境變量刪除環境變量
默認shell環境變量
設置PATH環境變量
定位系統環境變量
可變數組
使用命令別名
主要學習linux環境變量:他們存儲在哪裏,怎樣使用,以及怎樣創建自己的環境變量。使用別名alias等。
什麼是環境變量
bash shell用作一個稱做環境變量的特性來存儲有關shell會話和工作環境的信息。它允許在內存中存儲數據,以便運行在shell 上的程序和腳本訪問。這也是存儲永久數據的一種簡便方法,這些數據可以是用來識別用戶賬戶、系統、shell的特性以及任何其他需要存儲的數據。
bash shell 中,環境變量分爲兩類
全局變量和局部變量
全局環境變量不僅對shell會話可見,對所有shell創建的子進程也可見。局部變量則只對創建他們的shell可見。折讓全局環境變量對那些子進程中需要獲得父進程信息的程序來說非常有用。查看全局變量
[root@richy ~]# printenv
HOSTNAME=richy
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.0.25 52567 22
SSH_TTY=/dev/pts/0
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=en_US.UTF-8
MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
LOADEDMODULES=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
CVS_RSH=ssh
SSH_CONNECTION=192.168.0.25 52567 192.168.0.66 22
MODULESHOME=/usr/share/Modules
LESSOPEN=||/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
BASH_FUNC_module()=() { eval `/usr/bin/modulecmd bash $*`
}
_=/usr/bin/printenv
要顯示單個環境變量可以使用 echo $HOME
[root@richy ~]# echo $HOME
/root
局部環境變量可以用set查看,set包含了全局變量裏面的內容,但也增加了除了全局變量以外的其他內容。可見全局變量的繼承性質。
設置環境變量
設置自己的環境變量,通過交互式shell 或者shell腳本創建自己的環境變量並引用他們。
設置局部環境變量
test=testing
如果需要給變量賦值帶有空格字符的值,則需要用單引號來界定字符串的開始和結尾如test='testing a long string'
echo $test
創建新的環境變量時,最好使用小寫字母,這樣方便以後區別用戶個人環境變量和系統環境變量。
testing a long string
局部變量只在當前的shell下可用。設置全局環境變量
全局環境變量在設定該全局環境變量的進程創建的所有子進程中都是可見的。創建全局環境變量的方法是先創建一個局部環境變量,然後再把他導出到全局環境變量中。[root@richy ~]# echo $test
testing a long string
[root@richy ~]# export test
刪除環境變量
刪除環境變量可以使用unset命令來刪除。
[root@oldboy ~]#[root@richy ~]# echo $test
testing a long string
[root@richy ~]# unset test
[root@richy ~]# echo $test注意在unset後面不需要接$ 這個符號
在處理全局環境變量時,事情就有點複雜了,如果實在子進程中刪除了一個全局環境變量,它只對子進程有效。該全局環境全局變量在父進程中依然有效。
默認shell環境變量
bash shell 支持的Bounme環境變量有
CDPATH----冒號分隔的目錄列表,作爲cd命令的搜索路徑
HOME-------當前用戶的主目錄
IFS-----------shell用來分隔文本字符串的一列字符
MAIL--------當前用戶收件箱的文件名;bash shell 會檢查這個文件來看有沒有新郵件
MAILPATH-冒號分隔的當前用戶收件箱的文件名列表;bash shell 會檢查列表中的每個文件來看有沒有新的郵件
OPTARG----getopts 命令處理的最後一個選項參數值
OPTIND----getopts 命令處理的最後一個選項參數的索引號
PATH-------冒號分隔的shell 查找命令的目錄列表
PS1----------shell 命令行界面的主提示符
PS2----------shell 命令行界面的次提示符
以上列表中最常用的有PATH PS1 HOME ,其中最重要的是PATH
除了默認的Bourne的環境變量,bash shell 還提供一些自有的變量。
設置PATH環境變量
PATH環境變量是Linux 系統上造成最多問題的變量。他靈異了命令行輸入命令的搜索路徑。如果找不到命令他會產生一個錯誤:
[root@richy ~]# luruiqi
-bash: hkdsf: command not found
[root@richy ~]#
添加新的變量到PATH環境變量中,引用原來的PATH值,然後再給字符串添加新的目錄就行了,列如:
[root@richy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@richy ~]# PATH=$PATH:/home/user/test
[root@richy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/user/test