***linux 環境變數指系統執行程式或命令的能快速找到其位置等其它功能,不用輸入複雜命令。以$path環境變數為例子,
$path決定了shell指定尋找命令或程式的路徑,比較執行ls命令,如果沒有$path環境變數,執行ls命令需要絕對路徑執行/bin/ls,
如果設定了$path環境變數,只要執行ls命令就會自動執行。
***
linux環境變數分單一使用者環境變數和系統全域性使用者環境變數,單一使用者環境變數配置檔案在使用者家目錄.bash_profile,
修改此配置檔案只對當前使用者生效,其它使用者不會生效;系統全域性使用者環境變數是針對所有linux的使用者都生效,配置檔案在/etc/profile
linux兩種辦法修改環境變數:(以$path環境變數為例)
準備測試文字:
[root@oldboy ~]# echo $path ##預設$path環境變數
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# ls -l /tmp/test.sh ##建立乙個測試文字
-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!
一、設定臨時生效的環境變數,當使用者退出登入或重啟系統環境變數就恢復預設值
[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
二、設定永久生效的環境變數
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 ~]$ 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!
2、針對系統全域性使用者設定的環境變數
[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!
******特殊的環境變數******
1、path環境變數
作用指定讓命令自動搜尋路徑
[root@oldboy ~]# echo $path
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
2、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
感謝老男孩部落格提供參考
linux環境程式設計 環境變數 列印環境變數
在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...
linux環境變數
初次學習lliux對環境變數的知識甚是不解決,特花費乙個上午的時間總結了一下,可以說是全面!如各位有更加詳細的見解不妨告知!定製環境變數 環境變數是和shell緊密相關的,使用者登入系統後就啟動了乙個shell。對於linux來說一般是bash,但也可以重新設定或切換到其它的 shell。環境變數是...
Linux環境變數
好吧,我承認這篇文章是轉的.1.顯示環境變數home echo home home redbooks 2.設定乙個新的環境變數hello export hello hello echo hello hello 3.使用env命令顯示所有的環境變數 env hostname redbooks.safe...