Linux:環境變量

Linux:環境變量

環境變量

變量

變量定義:declare tmp,declare是可選的。shell

變量賦值:tmp=1,=號左右不要有空格。bash

變量引用:echo $tmp,不要忘記了$號。ide

環境變量

簡單理解了變量的概念,就很好解釋環境變量了,環境變量就是做用域比自定義變量要大,如Shell 的環境變量做用於自身和它的子進程。在全部的 UNIX 和類 UNIX 系統中,每一個進程都有其各自的環境變量設置,且默認狀況下,當一個進程被建立時,處理建立過程當中明確指定的話,它將繼承其父進程的絕大部分環境設置。Shell 程序也做爲一個進程運行在操做系統之上,而咱們在 Shell中運行的大部分命令都將以 Shell 的子進程的方式運行。操作系統

一般會涉及三種環境變量:繼承

  • 私有環境變量,只在當前shell中有效,如:tmp=1。
  • shell自己內建的環境變量。
  • 從私有環境變量導出的環境變量。

set顯示shell中全部環境變量。env顯示用戶相關環境變量。export顯示導出的環境變量。
set>env>export。進程

PATH環境變量

修改PATH環境變量:PATH=$PATH:other_path。
在每一個用戶的 home 目錄中有一個 Shell 每次啓動時會默認執行一個配置腳本,以初始化環境,包括添加一些用戶自定義環境變量等等。zsh 的配置文件是.zshrc,相應 Bash 的配置文件爲.bashrc。它們在etc下還都有一個或多個全局的配置文件,不過咱們通常只修改用戶目錄下的配置文件。作用域

咱們能夠簡單的使用下面命令直接添加內容到.zshrc中:echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc。字符串

上述命令中>>表示將標準輸出以追加的方式重定向到一個文件中,注意前面用到的>是以覆蓋的方式重定向到一個文件中,使用的時候必定要注意分辨。在指定文件不存在的狀況下都會建立新的文件。it

變量修改和刪除

變量修改有以下幾種方式:zsh

  • ${變量名#匹配字符串}:從頭向後匹配,刪除符合匹配的最短數據。
  • ${變量名##匹配字符串}:從頭向後匹配,刪除符合匹配的最長數據。
  • ${變量名%匹配字符串}:從後向前匹配,刪除匹配字符串的最短數據。
  • ${變量名%%匹配字符串}:從後向前匹配,刪除匹配字符串的最長數據。
  • ${變量名/舊字符串/新字符串}:將舊字符串的第一個匹配替換爲新字符串。
  • ${變量名//舊字符串/新字符串}:將舊字符串的全部匹配替換爲新字符串。

使用 unset 刪除環境變量。

如何讓環境變量當即生效

在上面咱們在 Shell 中修改了一個配置腳本文件以後(好比 zsh 的配置文件 home 目錄下的.zshrc),每次都要退出終端從新打開甚至重啓主機以後其才能生效,非常麻煩,咱們可使用source命令來讓其當即生效,如:

source .zshrc
source命令還有一個別名就是.,注意與表示當前路徑的那個點區分開,雖然形式同樣,但做用和使用方式同樣,上面的命令若是替換成.的方式就該是

. ./.zshrc注意第一個點後面有一個空格,並且後面的文件必須指定完整的絕對或相對路徑名,source 則不須要。

相關文章
相關標籤/搜索