要解釋環境變數,得先明白變數是什麼,準確的說應該是 shell 變數,所謂變數就是計算機中用於記錄乙個值(不一定是數值,也可以是字元或字串)的符號,而這些符號將用於不同的運算處理中。通常變數與值是一對一的關係,可以通過表示式讀取它的值並賦值給其它變數,也可以直接指定數值賦值給任意變數。為了便於運算和處理,大部分的程式語言會區分變數的型別,用於分別記錄數值、字元或者字串等等資料型別。shell 中的變數也基本如此,有不同型別(但不用專門指定型別名),可以參與運算,有作用域限定。
變數的作用域即變數的有效範圍(比如乙個函式中、乙個原始檔中或者全域性範圍),在該範圍內只能有乙個同名變數。一旦離開則該變數無效,如同不存在這個變數一般。在 shell 中如何建立乙個變數,如何給變數賦值和如何讀取變數的值呢?這部分內容會在 bash 指令碼程式設計 這門課中詳細介紹,這裡我簡單舉例說明一下:
使用 declare 命令建立乙個變數名為 tmp 的變數:
$ declare tmp其實也可以不用 declare 預宣告乙個變數,直接即用即建立,這裡只是告訴你 declare 的作用,這在建立其它指定型別的變數(如陣列)時會用到。
使用 = 號賦值運算子,將變數 tmp 賦值為 shiyanlou:
$ tmp=shiyanlou讀取變數的值,使用 echo 命令和 $ 符號($ 符號用於表示引用乙個變數的值,初學者經常忘記輸入):
$ echo $tmp注意:並不是任何形式的變數名都是可用的,變數名只能是英文本母、數字或者下劃線,且不能以數字作為開頭。
簡單理解了變數的概念,就很容易理解環境變數了。環境變數的作用域比自定義變數的要大,如 shell 的環境變數作用於自身和它的子程序。在所有的 unix 和類 unix 系統中,每個程序都有其各自的環境變數設定,且預設情況下,當乙個程序被建立時,除了建立過程中明確指定的話,它將繼承其父程序的絕大部分環境設定。shell 程式也作為乙個程序執行在作業系統之上,而我們在 shell 中執行的大部分命令都將以 shell 的子程序的方式執行。
通常我們會涉及到的變數型別有三種:
當前 shell 程序私有使用者自定義變數,如上面我們建立的 tmp 變數,只在當前 shell 中有效。
shell 本身內建的變數。
從自定義變數匯出的環境變數。
也有三個與上述三種環境變數相關的命令:set,env,export。這三個命令很相似,都是用於列印環境變數資訊,區別在於涉及的變數範圍不同。詳見下表:
實驗樓之linux學習
cd etc passwd 第二個分號後即是是否需要密碼登入,去掉即可不需要密碼登入 兩種解決方法 1.實驗樓上的解決方案我試過沒有成功,在此列出來.如果哪位大神看到了請指出我的錯誤 以hhh使用者為例,想要在根目錄上建立乙個資料夾,使用命令 sudo mkdir 1 提示is not in the...
Linux之環境變數
按環境變數的生存週期來劃分可分為兩類 1 永久生效的環境變數 環境變數是定義在配置檔案中的,修改時需要修改配置檔案。1 在 etc profile檔案中使用export定義環境變數,對所有使用者都生效 2 在某使用者的家目錄的.bash profile檔案中使用export定義環境變數,對該使用者生...
實驗樓之Linux快捷 使用者及檔案許可權 檔案檢視
實驗二 知識點1 通常不是直接與系統打交道,而是通過乙個叫做shell的中間程式。shell即是使用者互動的介面,又是控制系統的指令碼語言。常用的有bash.zsh,ksh,csh,命令列模式 居然有6種,相互切換用ctrl alt f1 f6,實現。用用ctrl alt f7切回桌面模式。小快捷 ...