Linux 環境變量_006

 

 

  ***Linux 環境變量指系統運行程序或命令的能快速找到其位置等其它功能,不用輸入複雜命令。以$PATH環境變量爲例子,linux

$PATH決定了shell指定尋找命令或程序的路徑,比較執行ls命令,若是沒有$PATH環境變量,執行ls命令須要絕對路徑執行/bin/ls,shell

若是設置了$PATH環境變量,只要執行ls命令就會自動執行。vim

 

  ***Linux環境變量分單一用戶環境變量和系統全局用戶環境變量,單一用戶環境變量配置文件在用戶家目錄.bash_profilebash

修改此配置文件只對當前用戶生效,其它用戶不會生效;系統全局用戶環境變量是針對全部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

相關文章
相關標籤/搜索