Linux 環境變數 006

2022-07-07 16:18:10 字數 4114 閱讀 8647

***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...