環境變量(全)

概念

?環境變量(environment variables)一般是指在操作系統中用來指定操作系統運行環境的一些參數
如:我們在編寫C/C++代碼的時候,在鏈接的時候,從來不知道我們的所鏈接的動態靜態庫在哪里,但是照樣可以鏈接成功,生成可執行程序,原因就是有相關環境變量幫助編譯器進行查找。
環境變量通常具有某些特殊用途,還有在系統當中通常具有全局特性

三個常見環境變量

PATH : 指定命令的搜索路徑
HOME : 指定用戶的主工作目錄(即用戶登陸到Linux系統中時,默認的目錄)

PWD:環境變量存儲當前工作目錄的路徑

PATH

眾所周知,命令的本質就是一個個可執行程序

那么都是可執行程序,為什么我們自己的可執行程序運行時需要加“./”呢?

因為運行可執行程序時系統會自動在PATH環境變量里面進行路徑搜索

自己的可執行程序:

系統的命令:

如果我們想要自己的可執行程序執行起來也不需要“./”改怎么做?

很簡單,只要讓環境變量里有我們可執行程序的路徑或者把我們的可執行程序放在PATH原有的路徑下即可

查看PATH的默認路徑:

把我們的命令的路徑追加到PATH環境變量中并運行:

路徑恢復(直接將原有路徑賦值給PATH):

當然,如果直接賦值一個空串,大部分命令就是用不了了

不過不用擔心,重啟xshell就行

但是有幾個命令卻依然可以使用

例:echo,export

Linux的命令分類:
1.常規命令,shell fork讓子進程成執行的
2.內建命令,shell命令行的一個函數,當然可以直接讀取shell內部定義的本地變量嘍!

默認更改環境變量,僅限于本次登錄,重新登錄,環境變量自動恢復(像網吧的機子)

如果我們把對應的可執行程序拷貝到PATH包含的路徑下也可以實現---這個行為也可以稱為---程序安裝(簡易版)相對的把對應可執行程序從PATH的路徑下刪除---這個行為可以稱為---程序卸載

which尋找路徑也是通過PATH去尋找的

HOME

會根據用戶名來初始化家目錄:

此時我是一個普通用戶:

此時我是root用戶:

cd $HOME直接返回家目錄

PWD

環境變量存儲當前工作目錄的路徑

pwd命令就是讀取PWD的值然后打印出來

本地/環境變量

本地變量

命令行直接定義 左側名稱=右側內容

本地變量只在bash進程內部有效,不會被子進程繼承下去


環境變量

通過繼承父進程bash的環境變量

具有全局性通過讓所有的子進程繼承的方式,實現自身的全局性!

系統環境變量通常具有全局屬性,會被所有的子進程繼承

查看/獲取環境變量

查看
1.env

2.set

set查看包含環境變量的其他本地變量,env只能查看環境變量

獲取
1.getenv

2.main傳參

main函數的三個參數

3.environ

環境變量的組織方式

每個程序都會收到一張環境表,環境表是一個字符指針數組,每個指針指向一個以’\0’結尾的環境字符串

設置環境變量

我們直接更改的是bash進程內部的環境變量信息!
每一次重新登陸,都會給我們形成新的bas解釋器并且新的bash解釋器自動從 讀取形成自己的環境變量表信息

父進程的環境變量信息又從哪里來??
環境變量信息是以腳本配置文件的形式存在的!

每一次登陸的時候,你的bash進程都會讀取vim .bash_profile
配置文件中的內容,為我們bash進程形成一張環境變量表信息!

shell的本地變量

export導出環境變量(只導出在父進程bash的上下文中,只導出在內存中,并不在配置中,重啟shell就會消失)

unset取消環境變量

在配置文件中配置環境變量并導出(重啟shell并不會消失)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10873.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10873.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10873.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

今日arXiv最熱NLP大模型論文:揭露大語言模型短板,北京大學提出事件推理測試基準

人工智能領域又一里程碑時刻!北京大學、北京智源人工智能研究院等機構聯合推出大型事件推理評測基準 。這是首個同時在知識和推理層面全面評估大模型事件推理能力的數據集。 總所周知,事件推理需要豐富的事件知識和強大的推理能力,涉及多種推…

consul啟動Error_server_rejoin_age_max (168h0m0s) - consider wiping your data dir

consul 啟動報錯: consul[11880]: 2024-05-12T08:37:51.095-0400 [ERROR] agent: startup error: error"refusing to rejoin cluster because server has been offline for more than the configured server_rejoin_age_max (168h0m0s) - consider wiping you…

【GD32】02-ADC模擬數字轉換器

ADC 在電子和通信技術中,ADC(模擬數字轉換器)是一種將模擬信號轉換為數字信號的電子設備。這種轉換是電子系統中非常關鍵的一個環節,因為數字信號更易于處理、存儲和傳輸。ADC的工作原理通常包括采樣、保持、量化和編碼等步驟。采…

http協議 tomcat如何訪問資源 servlet理論介紹

tomcat介紹 bin是啟動命令; conf是配置,可以修改端口號; lib是依賴的jar包; logs是日志 webapps是重點,在這里新建我們自己的javaWeb項目 tomcat如何訪問資源 tomcat通過統一資源定位符(URL)來…

鄉村振興與農村基礎設施建設:加大農村基礎設施建設投入,提升農村公共服務水平,改善農民生產生活條件,構建宜居宜業的美麗鄉村

一、引言 鄉村振興是我國現代化進程中的重要戰略,而農村基礎設施建設則是鄉村振興的基石。隨著城市化進程的加快,農村基礎設施建設滯后的問題日益凸顯,成為制約鄉村發展的瓶頸。因此,加大農村基礎設施建設投入,提升農…

打造一套在線教育系統,如何在教育這個慢行業打造品牌?

品牌對于教育行業非常重要,很多從事教育行業的朋友一直想塑造屬于自己的品牌形象,但做起來卻沒那么容易。因為教育行業相對來說是一個慢行業,用戶必須看到效果才會認可,而教育的效果往往需要經過長期的學習才能看到。 我覺得&…

AI大模型探索之路-訓練篇21:Llama2微調實戰-LoRA技術微調步驟詳解

系列篇章💥 AI大模型探索之路-訓練篇1:大語言模型微調基礎認知 AI大模型探索之路-訓練篇2:大語言模型預訓練基礎認知 AI大模型探索之路-訓練篇3:大語言模型全景解讀 AI大模型探索之路-訓練篇4:大語言模型訓練數據集概…

華為OD機試 - 執行任務賺積分 - 動態規劃(Java 2024 C卷 100分)

華為OD機試 2024C卷題庫瘋狂收錄中,刷題點這里 專欄導讀 本專欄收錄于《華為OD機試(JAVA)真題(A卷+B卷+C卷)》。 刷的越多,抽中的概率越大,每一題都有詳細的答題思路、詳細的代碼注釋、樣例測試,發現新題目,隨時更新,全天CSDN在線答疑。 一、題目描述 現有 N 個任…

Gradle基礎學習(六) 認識任務Task

理解Gradle中的任務 Gradle的構建過程基于任務(Task)的概念,而每個任務都可以包含一個或多個動作(Action)。 任務是構建中執行的一些獨立的工作單元,例如編譯類、創建JAR、生成Javadoc或將存檔發布到倉庫…

4.5網安學習第四階段第五周回顧(個人學習記錄使用)

本周重點 ①部署域環境(Win2008) ②域組策略 ③域內信息收集 ④(重點)哈希傳遞攻擊PTH ⑤MS14-068 提權漏洞 ⑥黃金票據偽造 ⑦白銀票據偽造 ⑧ZeroLogon (CVE-2020-1472) 漏洞復現 本周主要內容 ①部署域環境(Win2008)…

【算法】滑動窗口——串聯所有單詞的子串

今天來以“滑動窗口”的思想來詳解一道比較困難的題目——串聯所有單詞的子串,有需要借鑒即可。 目錄 1.題目2.下面是示例代碼3.總結 1.題目 題目鏈接:LINK 這道題如果把每個字符串看成一個字母,就是另外一道中等難度的題目,即&…

對象,字符串的解構賦值

大家想了解更多,可以去看阮一峰的ECMAScript6(ES6)標準入門課程 對象 簡介 解構不僅可以用于數組,還可以用于對象。 let { foo, bar } { foo: aaa, bar: bbb }; foo // "aaa" bar // "bbb" 對象的解構與數組有一個重要的不同。…

[CAM_REQ_MGR_EVENT_MAX]高通6225平臺相機老化異常重啟

報錯log 相機老化出現20/7萬比例的老化異常重啟&#xff0c;具體報錯log入下 <4>[ 167.506585] [1970:01:02 18:52:26](0) [0:swapper/0]cam_v4l2_event_queue_notify_error: 251 callbacks suppressed 7 3339<6>[ 167.506602] [1970:01:02 18:52:26](0) [0:swap…

面試試題一

封裝&#xff08;Encapsulation&#xff09; 面試問題&#xff1a; 封裝在面向對象編程中扮演什么角色&#xff1f;如何在Java中實現封裝&#xff1f;有哪些最佳實踐可以幫助提高類的封裝性&#xff1f; 詳細答案&#xff1a; 封裝的角色&#xff1a; 封裝是面向對象編程的核…

CMake 的繼承關系

1. CMake如何確定繼承關系 在 CMake 中&#xff0c;父子關系是通過文件系統中的目錄結構來定義的。當你在一個目錄中創建一個 CMakeLists.txt 文件時&#xff0c;該目錄就被視為一個 CMake 項目的目錄&#xff0c;而該文件中的內容將被用于配置和構建該目錄中的項目。 當你在父…

不同路徑| 和 不同路徑||

不同路徑| 一個機器人位于一個 m x n 網格的左上角 &#xff08;起始點在下圖中標記為 “Start” &#xff09;。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角&#xff08;在下圖中標記為 “Finish” &#xff09;。 問總共有多少條不同的路徑&#xf…

Tomcat啟動閃退問題解決辦法

本文將通過一系列診斷步驟幫助您找出原因&#xff0c;并提供相應的解決辦法。 診斷步驟 查看日志文件 Tomcat的日志文件是解決啟動問題的第一線工具。查看logs目錄下的catalina.out和其他日志文件&#xff0c;這些文件經常記錄了錯誤信息和系統崩潰的線索。 cat /path/to/to…

C++編程與朱元墇的關系

學編程和英語沒關系&#xff0c;我說這句話&#xff0c;沒人會相信&#xff0c;也不會有人說我什么嘩眾取寵。 我說學編程和朱元墇有關系&#xff0c;一定有人說我放P&#xff0c;其實這個P也和朱元墇有關系&#xff0c; 和朱元墇有什么P關系啊。 真有這P事啊&#xff0c; 朱元…

LeetCode刷題筆記之圖論

1. 797【所有可能的路徑】 題目&#xff1a; 給你一個有 n 個節點的 有向無環圖&#xff08;DAG&#xff09;&#xff0c;請你找出所有從節點 0 到節點 n-1 的路徑并輸出&#xff08;不要求按特定順序&#xff09;。graph[i] 是一個從節點 i 可以訪問的所有節點的列表&#xf…

大學生體質測試|基于Springboot+vue的大學生體質測試管理系統設計與實現(源碼+數據庫+文檔)

大學生體質測試管理系統 目錄 基于Springboot&#xff0b;vue的大學生體質測試管理系統設計與實現 一、前言 二、系統設計 三、系統功能設計 1系統功能模塊 2管理員功能模塊 3用戶功能模塊 4教師功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算…