***Linux 環境變量指系統運行程序或命令的能快速找到其位置等其它功能,不用輸入複雜命令。以$PATH環境變量爲例子,linux
$PATH決定了shell指定尋找命令或程序的路徑,比較執行ls命令,若是沒有$PATH環境變量,執行ls命令須要絕對路徑執行/bin/ls,shell
若是設置了$PATH環境變量,只要執行ls命令就會自動執行。vim
***Linux環境變量分單一用戶環境變量和系統全局用戶環境變量,單一用戶環境變量配置文件在用戶家目錄.bash_profile,bash
修改此配置文件只對當前用戶生效,其它用戶不會生效;系統全局用戶環境變量是針對全部Linux的用戶都生效,配置文件在/etc/profile測試
Linux 兩種辦法修改環境變量:(以$PATH環境變量爲例)spa
準備測試文本:命令行
[root@oldboy ~]# echo $PATH ##默認$PATH環境變量blog
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binci
[root@oldboy ~]# ls -l /tmp/test.sh ##建立一個測試文本get
-rwxr-xr-x 1 root root 20 Nov 28 14:00 /tmp/test.sh
[root@oldboy ~]# chmod +x test.sh ##賦予文本可執行權限
[root@oldboy ~]# /tmp/test.sh ##測試文本運行顯示
You set OK!
1、設置臨時生效的環境變量,當用戶退出登陸或重啓系統環境變量就恢復默認值
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@oldboy ~]$ export PATH=$PATH:/tmp
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/tmp
[oldboy@oldboy ~]$ test.sh
You set OK!
[oldboy@oldboy ~]$ su - root
Password:
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# test.sh
-bash: test.sh: command not found
2、 設置永久生效的環境變量
一、針對單一用戶設置的環境變量
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
[oldboy@oldboy ~]$ vim .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/tmp
export PATH
[oldboy@oldboy ~]$ source .bash_profile
[oldboy@oldboy ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin:/home/oldboy/bin:/tmp
[oldboy@oldboy ~]$ test.sh
You set OK!
二、針對系統全局用戶設置的環境變量
[oldboy@oldboy ~]$ ls -l /etc/profile
-rw-r--r-- 1 root root 1820 Nov 27 16:35 /etc/profile
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# cp -a /etc/profile /root
[root@oldboy ~]# echo "PATH=$PATH:/tmp" >> /etc/profile
[root@oldboy ~]# grep "PATH=$PATH" /etc/profile
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@oldboy ~]# source /etc/profile
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp
[root@oldboy ~]# test.sh
You set OK!
******特殊的環境變量******
一、PATH環境變量
做用指定讓命令自動搜索路徑
[root@oldboy ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
二、PS1命令行提示符顯示
做用修改指定的用戶命令行提示符顯示
[root@oldboy ~]echo $PS1
[\u@\h \w]
[root@oldboy ~]export PS1='[\u@\h \w\t]'
[root@oldboy ~14:47:13]echo $PS1
[\u@\h \w\t]
提示符 |
功能描述 |
\u |
當前用戶的帳號名稱 如:root |
\h |
僅取主機的第一個名字,如上例,則爲debian,.linux則被省略 |
\w |
完整的工做目錄名稱。家目錄會以 ~代替 ,如cd /etc/sysconfig顯示/etc/sysconfig |
\W |
利用basename取得工做目錄名稱,因此只會列出最後一個目錄 如上例則只顯示sysconfig |
\$ |
提示字符,若是是root時,提示符爲:# ,普通用戶則爲:$ |
\t |
顯示時間爲24小時格式,如:HH:MM:SS |
\T |
顯示時間爲12小時格式 |
\A |
顯示時間爲24小時格式:HH:MM |
\v |
顯示時間爲24小時格式:HH:MM |
\# |
下達的第幾個命令 |
\d |
表明日期,格式爲weekday month date,例如:Wed Dec 12 |
\H |
完整的主機名稱。例如:hostname是debian.linux |
感謝老男孩博客提供參考 https://blog.51cto.com/oldboy