搜尋
首頁系統教程LinuxLinux中環境變數的使用方法相同的生存週期來劃分

序言:

1.環境變數是作業系統環境設定的變量,適用於整個系統的使用者程序;

2.環境變數可以在指令中設置,而使用者登出的時侯將會遺失這種設定值;

3.若要重複適用,最好在.profile中定義;環境變數的使用與本機變數的使用方式相同,

4.並且在使用之前,必須用export指令導入。

一、環境變數檔介紹

Linux中環境變數包含系統層級和使用者層級,系統層級的環境變數是每位登陸到系統的使用者都要讀取的系統變量,而使用者層級的環境變數則是該使用者使用系統時所載入的環境變量,所以管理環境變數的檔案也分為系統級和使用者級的。

二、Linux的變數種類

依變數的生存週期來界定,Linux變數可分為兩類:

1.永久的:須要更改配置文件,變數永久生效

2.暫時的:使用export指令申明即可,變數在關掉shell時失效

三、Linux環境變數檔

linux變數檔案有/etc/environment或/etc/profile或~/.profile或/etc/bash.bashrc或~/.bashrc,以及~/.bash_profile(通常是使用者在自己目錄下新建的) ,~/.bash_logout.

系統級:

1./etc/environment:是系統在登陸時讀取的第一個文件,該文件設置的是整個系統的環境,只要啟動系統才會讀取該文件redhat linux下載,用於為所有進程設定環境變數。系統使用此檔案時並不是執行此檔案中的指令,而是依照而是依照KEY=VALUE模式的程式碼,對KEY形參以VALUE,因而檔案中假如要定義PATH環境變量,只需加入一行形如PATH=$PATH:/xxx/bin的程式碼即可

2./etc/profile:此檔案是系統登陸時執行的第二個檔案。為系統的每位使用者設定環境訊息,當使用者第一次登陸時,該檔案被執行。並從/etc/profile.d目錄的設定檔中蒐集shell的設定。 (/etc/profile可以用來設定全系統所有使用者的環境變量,環境變數週期為永久性)

3./etc/bashrc:是針對所有使用者的bash初始化文件,在此中設定的環境變數將應用於所有使用者的shell中,此文件會在使用者每次開啟shell時執行一次。 (即每次新開一個終端,就會執行/etc/bashrc)。

使用者級(這種檔案處於家目錄下):

1.~/.profile:對應目前登入使用者的profile文件,用於訂定目前使用者的個人工作環境(變數是永久性),每位使用者都可使用該文件輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。這兒是推薦放置個人設定的地方

2.~/.bashrc:該檔案包含專用於你的bashshell的bash訊息,當登陸時以及每次開啟新的shell時,該檔案被讀取。 (~/.bashrc只針對目前用戶,變數的生命週期是永久的)

不建議放在這裡,由於每開一個shell,這個檔案會讀取一次在linux系統,預設的shell是什麼,效率肯定有影響。

3.~/.bash_profileor~./bash_login:~/.bash_profile是交互式login形式步入bash運行的,~/.bashrc是交互式non-login形式步入bash運行的一般兩者設定大致相同,所以一般後者會呼叫前者。每位使用者都可使用該檔案輸入專用於自己使用的shell訊息,當使用者登入時,該檔案僅執行一次。預設情況下,他設定一些環境變量,執行使用者的.bashrc檔。 (假如~/目錄下沒有.bash_profile則新建一個)這兒是推薦放置個人設定的地方

當一個shell關掉時,在bash_profile中定義的系統變數則會失效。為此,每開啟新的shell時都要執行一次sourcebash_profile.並且針對目前使用者。

4.~/.pam_environment:用戶級的環境變數設定文件,沒有做測試,不曉得管不管用。

5.~/.bash_logout:當每次退出系統(退出bashshell)時,執行該檔案。另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等設定的變數(局部)只能承繼/etc/profile中的變數,她們是"母子"關係。

四、Linux環境變數檔執行順序

1.在登陸Linux時要執行檔案的程序如下:

在剛登陸Linux時在linux系統,預設的shell是什麼

先啟動/etc/profile文件,

之後再啟動使用者目錄下的~/.bash_profile、~/.bash_login或~/.profile檔案中的其中一個,用房主目錄下檔案的執行的順序為:

~/.bash_profile->~/.bash_login->~/.profile。

假如~/.bash_profile檔案存在的話,通常都會執行~/.bashrc檔案。

由於在~/.bash_profile檔案中通常會有下邊的程式碼:

if [ -f ~/.bashrc ] ; then
 . ./bashrc
fi

~/.bashrc中,通常都會有以下程式碼:

if [ -f /etc/bashrc ] ; then
 . /etc/bashrc
fi

所以,~/.bashrc會呼叫/etc/bashrc檔。最後,在退出shell時,就會執行~/.bash_logout檔。

執行順序為:/etc/profile->(~/.bash_profile|~/.bash_login|~/.profile)->~/.bashrc->/etc/bashrc->~/. bash_logout

/etc/profile和/etc/environment等各類別環境變數設定檔的好處

1)先將exportLANG=zh_CN加入/etc/profile,退出系統重新登陸,登陸提示顯示中文。

2)先將/etc/profile中的exportLANG=zh_CN刪掉,將LNAG=zh_CN加入/etc/environment,退出系統重新登陸,登陸提示顯示英文。

使用者環境完善的過程中總是先執行/etc/profile,之後再讀取/etc/environment。

為何會有如上所敘的不同呢?而不是先執行/etc/environment,然後執行/etc/profile呢?

這是由於:/etc/environment是設定整個系統的環境,而/etc/profile是設定所有使用者的環境,後者與登入使用者無關,前者與登入使用者有關。

系統應用程式的執行與用戶環境可以是無關的,但與系統環境是相關的,所以當你登錄時,你看見的提示信息,如日期、時間信息的顯示格式與系統環境的LANG是相關的,缺省LANG=en_US,假若係統環境LANG=zh_CN,則提示訊息是英文的,否則是英語的。

對於使用者的shell初始化而言是先執行/etc/profile中標麒麟linux,再讀取檔案/etc/environment;對整個系統是先執行/etc/environment。這樣理解正確嗎?

登入系統時的次序應為:

/etc/enviroment-->/etc/profile-->HOME/.profile−−>HOME/.env(假如存在)

/etc/profile是所有使用者的環境變數

/etc/enviroment是系統的環境變數

登入系統時shell讀取的順序應當是:

/etc/profile->/etc/enviroment-->HOME/.profile−−>HOME/.env

緣由應當是使用者環境和系統環境的區別了,若果同一個變數在使用者環境(/etc/profile)和系統環境(/etc/environment)有不同的值,則應是以使用者環境為準了。

五、Linux中常見的環境變數及其作用

Linux中常見的環境變數有:

1.PATH:指定指令的搜尋路徑

2.HOME:指定使用者的主工作目錄(即使用者登入Linux系統時,預設的目錄)

3.HISTSIZE:指保存歷史指令記錄的條數。

4.LOGNAME:指目前使用者的登陸名。

5.HOSTNAME:指主機的名稱,許多應用程式假如要用到主機名稱的話,一般是從這個環境變數中來取得的。

6.SHELL:指目前使用者用的是哪一種Shell。

7.LANG/LANGUGE:和語言相關的環境變量,使用多種語言的使用者可以更改此環境變量。

在linux系统,默认的shell是什么_在linux系统,默认的shell是什么_在linux系统,默认的shell是什么

#8.MAIL:指目前使用者的電郵儲存目錄。

9.PS1:指令基本提示符,對root使用者是#,對一般使用者是$。

10.PS2:附屬提示符,預設是「>」。

備註:可以透過變更此環境變數來變更目前的命令符,例如下述指令會將提示符號變更成字串「Hello,MyNewPrompt」。

#PS1="Hello,MyNewPrompt"

注意:上述變數的名子並不固定,如HOSTNAME在個別Linux系統中可能設定成HOST

其實,我所列出的上述環境變數並非用盡列舉!

Linux也提供了一個更改和查看環境變數的命令!下邊透過幾個實例來說明:

1.echo顯示某個環境變數值echo$PATH

2.export設定一個新的環境變數exportHELLO="hello"(可以無頓號),在shell的命令列下直接使用[export變數名=變數值]定義變量,該變數只在目前的shell (BASH)或其子shell(BASH)下方是有效的,shell關掉了,變數也就失效了,再開啟新shell時就沒有這個變量,須要使用的話還須要重新定義。

3.env顯示所有環境變數

4.set顯示本地定義(系統中早已存在)的shell變數以及設定shell變數的新變數值,倘若未指定值,則變數值將會設為NULL。

5.unset清理環境變數unsetHELLO

#6.readonly設定只讀環境變數readonlyHELLO,假如使用了readonly指令的話,變數就不可以被更改或清除不僅 ###

以上是Linux中環境變數的使用方法相同的生存週期來劃分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:ITcool。如有侵權,請聯絡admin@php.cn刪除
對於各種任務,Linux和Windows之間的性能有何不同?對於各種任務,Linux和Windows之間的性能有何不同?May 14, 2025 am 12:03 AM

Linux在服務器和開發環境中性能優異,而Windows在桌面和遊戲領域表現更好。 1)Linux的文件系統在處理大量小文件時表現出色。 2)Linux在高並發和高吞吐量網絡場景中表現優異。 3)Linux的內存管理在服務器環境中更具優勢。 4)Linux在執行命令行和腳本任務時效率高,而Windows在圖形界面和多媒體應用上表現更好。

如何使用Pygobject在Linux中創建GUI應用程序如何使用Pygobject在Linux中創建GUI應用程序May 13, 2025 am 11:09 AM

創建圖形用戶界面(GUI)應用程序是使您的想法栩栩如生並使您的程序更加用戶友好的絕佳方法。 PygoBject是一個Python庫,允許開發人員使用Linux桌面上創建GUI應用程序

如何在Arch Linux中使用PhpMyAdmin安裝燈泡如何在Arch Linux中使用PhpMyAdmin安裝燈泡May 13, 2025 am 11:01 AM

Arch Linux提供了靈活的尖端系統環境,是一種非常適合在小型非關鍵系統上開發Web應用程序的解決方案,因為是完全開源的,並且在內核上提供了最新的最新版本

如何在Arch Linux上安裝LEMP(NGINX,PHP,MARIADB)如何在Arch Linux上安裝LEMP(NGINX,PHP,MARIADB)May 13, 2025 am 10:43 AM

由於其滾動釋放模型,該模型包含尖端軟件Arch Linux的設計和開發以作為服務器運行以提供可靠的網絡服務,因為它需要額外的時間進行維護,持續的升級和明智的FI

12必備Linux控制台[終端]文件管理器12必備Linux控制台[終端]文件管理器May 13, 2025 am 10:14 AM

Linux控制台文件管理器在日常任務,在本地計算機上管理文件時或連接到遠程時,可能非常有幫助。目錄的視覺控制台表示可以幫助我們快速執行文件/文件夾操作和SAV

Qbittorrent:強大的開源Bittorrent客戶端Qbittorrent:強大的開源Bittorrent客戶端May 13, 2025 am 10:12 AM

Qbittorrent是一個受歡迎的開源Bittorrent客戶端,允許用戶通過Internet下載和共享文件。最新版本Qbittorrent 5.0最近發行了,並帶有新功能和改進。 本文將

ARCH Linux上的設置NGINX虛擬主機,PhpMyAdmin和SSLARCH Linux上的設置NGINX虛擬主機,PhpMyAdmin和SSLMay 13, 2025 am 10:03 AM

以前的Arch Linux LEMP文章僅涵蓋了基本內容,從安裝網絡服務(NGINX,PHP,MYSQL和PHPMYADMIN)以及配置MySQL Server和PhpMyAdmin所需的最低安全性。 這個主題與形式嚴格有關

Zenity:在外殼腳本中構建GTK對話框Zenity:在外殼腳本中構建GTK對話框May 13, 2025 am 09:38 AM

Zenity是一種工具,可讓您使用命令行在Linux中創建圖形對話框。它使用GTK,這是​​一種用於創建圖形用戶界面(GUI)的工具包,使您可以輕鬆地將視覺元素添加到您的腳本中。 Zenity可能非常

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中