Linux命令列學習 1 環境變數

2021-10-07 05:48:35 字數 2206 閱讀 8525

2 path環境變數

tips

結尾這是linux學習的第一篇。其實在ubuntu上跑ros,編譯執行c++程式,解決相容性問題,安裝依賴庫,在這段時間裡,對linux的許多命令都已經有了大概的了解。之所以,還要特地抽時間來專門學習一下,是因為我覺得僅憑藉部落格和google上的碎片式的講解雖然可以解燃眉之急,但不是長遠之計。

本系列參考的書本為人民郵電出版社出版的圖靈程式設計叢書中的《linux命令列與shell指令碼程式設計大全(第三版)》。

由於是自我學習筆記,所以定然不是對全書的按部就班的學習,而是只記錄對我而言重要的內容。

linux系統在開始bash會話時,就已經設定了一些全域性環境變數,可以使用env或者printenv來顯示,由於全域性變數是十分繁多的,可以考慮用|grep來做查詢,或者像printenv home那樣,顯示特定的環境變數。

當要使用環境變數時,應在前面加上$,下面命令用echo來顯示了home的值:

echo

$home

/home/host

題外話:波浪號~$home是一樣的。

設定方法很簡單,直接像程式設計那樣用=賦值即可,也無需宣告,但=前後不可以有空格,否則會視為是幾個不同的命令(與c++程式設計規範不太一樣)。如:

my_variable=hello

my_variable=

"hello world"

需要注意的是,自己定義的一定要全小寫,否則一旦不小心改了環境變數,會造成不可預料的後果。

區域性變數僅限當前shell使用,若要設定自定義的全域性環境變數,可以用export實現,變數名前無需$:

export my_variable
需要注意的是,在父shell定義賦值的全域性環境變數,在子shell是無法修改的(無論用=還是export),子shell的區域性變數與父shell中的全域性環境變數可以重名,此時的處理與c++中的處理邏輯一致。

unset命令即可,注意無需$:

unset my_variable
需要注意的是,在子shell中刪除變數不會影響定義在父shell中的全域性環境變數。

path環境變數規定了shell命令列中輸入乙個命令,shell要去搜尋的目錄,以找到相應的程式。在ubuntu裡,path環境變數內容如下:

echo

$path

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

只需引用原來的path,然後給字串新增新目錄即可,注意目錄與目錄之間是用:隔開的:

path=

$path:/home/xyw/scripts

更常用的是用單點符直接把當前路徑匯入到path:

path=

$path:.

在互動式的shell程序中(即不是登入系統時自動啟動的),bash並不會訪問/etc/profile,而是檢查使用者目錄中的.bashrc檔案,實際上像ros裡常用到的source命令,就可以寫在這裡面,這樣就不用每次都手動鍵入。

所以答案也很清楚了,就是修改~/.bashrc就可以實現持久化。

答:要使用到變數就加$,要操作變數就不加,相當於$是乙個解引符(變數可以視為c++中的指標,$可以視為*)。

令人尷尬的事情發生了,我發現好像其他的內容好像都不需要記住。比如df du這類維護硬碟的操作,或者ps kill等與程序相關的操作,或者vim編輯器的使用,或者cat more less的使用,或者tar相關的命令。這些都屬於多且雜,但使用頻率不高的命令,遇到的時候翻一翻就可以了。

而這本書剩下的基本都和shell指令碼程式設計有關,雖然很炫酷,但用python寫指令碼不是更簡單嗎。。

所以這個系列可能剛開始,就要完結了。

linux命令系列10 環境變數

學習基本的linux命令操作,對於我們熟悉linux或者unix系統還是很有幫助的。1 只設定當前shell的環境變數 這種方式只對當前的shell 起作用,換乙個shell設定就無效 path path new path 2 設定所有使用者shell的環境變數 開啟 etc profile 檔案,...

LINUX環境(二) 環境變數

環境變數 getenv,putenv,setenv,unsetenv environ 環境變數 getenv,putenv,setenv,unsetenv 環境變數 getenv 取得環境變數內容 相關函式 putenv setenv unsetenv 表頭檔案 include 定義函式 char ...

Linux環境(二) 環境變數

環境變數 我們在第2章討論了環境變數。這些變數可以用來控制shell指令碼和其他程式的形為。我們也可以使用他們來配置使用者環境。例如,每乙個使用者都有乙個環境變數,home,定義了其使用者主目錄,作為其會話的起始位置。正如我們所知的,我們由shell提示來測試環境變數 echo home home ...