搜尋
首頁系統教程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的主要目的是什麼?Linux的主要目的是什麼?Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

互聯網在Linux上運行嗎?互聯網在Linux上運行嗎?Apr 14, 2025 am 12:03 AM

互聯網運行不依賴單一操作系統,但Linux在其中扮演重要角色。 Linux廣泛應用於服務器和網絡設備,因其穩定性、安全性和可擴展性受歡迎。

Linux操作是什麼?Linux操作是什麼?Apr 13, 2025 am 12:20 AM

Linux操作系統的核心是其命令行界面,通過命令行可以執行各種操作。 1.文件和目錄操作使用ls、cd、mkdir、rm等命令管理文件和目錄。 2.用戶和權限管理通過useradd、passwd、chmod等命令確保系統安全和資源分配。 3.進程管理使用ps、kill等命令監控和控制系統進程。 4.網絡操作包括ping、ifconfig、ssh等命令配置和管理網絡連接。 5.系統監控和維護通過top、df、du等命令了解系統運行狀態和資源使用情況。

使用Linux別名提高自定義命令快捷方式的生產率使用Linux別名提高自定義命令快捷方式的生產率Apr 12, 2025 am 11:43 AM

介紹 Linux是一個強大的操作系統,由於其靈活性和效率,開發人員,系統管理員和電源用戶都喜歡。但是,經常使用長而復雜的命令可能是乏味的

Linux實際上有什麼好處?Linux實際上有什麼好處?Apr 12, 2025 am 12:20 AM

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

在Linux上掌握道德黑客的基本工具和框架在Linux上掌握道德黑客的基本工具和框架Apr 11, 2025 am 09:11 AM

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要

如何學習Linux基礎知識?如何學習Linux基礎知識?Apr 10, 2025 am 09:32 AM

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux最有用的是什麼?Linux最有用的是什麼?Apr 09, 2025 am 12:02 AM

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器