日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 环境变量详解,linux环境变量实例详解

發布時間:2025/3/12 linux 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 环境变量详解,linux环境变量实例详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.環境變量

簡單理解了變量的概念,就很容易理解環境變量了。環境變量的作用域比自定義變量的要大,如?Shell?的環境變量作用于自身和它的子進程。在所有的?UNIX?和類?UNIX?系統中,每個進程都有其各自的環境變量設置,且默認情況下,當一個進程被創建時,除了創建過程中明確指定的話,它將繼承其父進程的絕大部分環境設置。Shell?程序也作為一個進程運行在操作系統之上,而我們在?Shell?中運行的大部分命令都將以?Shell?的子進程的方式運行。

通常我們會涉及到的變量類型有三種:

當前 Shell 進程私有用戶自定義變量,如上面我們創建的 tmp 變量,只在當前 Shell 中有效。

Shell 本身內建的變量。

從自定義變量導出的環境變量。

也有三個與上述三種環境變量相關的命令:set,env,export。這三個命令很相似,都是用于打印環境變量信息,區別在于涉及的變量范圍不同。詳見下表:

命令

說明

set

顯示當前?Shell?所有變量,包括其內建環境變量(與?Shell?外觀等相關),用戶自定義變量及導出的環境變量。

env

顯示與當前用戶相關的環境變量,還可以讓命令在指定環境中運行。

export

顯示從?Shell?中導出成環境變量的變量,也能通過它將自定義變量導出為環境變量。

2.永久生效

但是問題來了,當你關機后,或者關閉當前的?shell?之后,環境變量就沒了啊。怎么才能讓環境變量永久生效呢?

按變量的生存周期來劃分,Linux?變量可分為兩類:

1.????永久的:需要修改配置文件,變量永久生效;

2.????臨時的:使用?export?命令行聲明即可,變量在關閉?shell?時失效。

這里介紹兩個重要文件?/etc/bashrc(有的?Linux?沒有這個文件)和?/etc/profile?,它們分別存放的是?shell?變量和環境變量。還有要注意區別的是每個用戶目錄下的一個隱藏文件:

.profile 可以用 ls -a查看

cd /home/shiyanlou

ls -a

這個?.profile?只對當前用戶永久生效。而寫在?/etc/profile?里面的是對所有用戶永久生效,所以如果想要添加一個永久生效的環境變量,只需要打開?/etc/profile,在最后加上你想添加的環境變量就好啦。

3.?命令的查找路徑與順序

你可能很早之前就有疑問,我們在?Shell?中輸入一個命令,Shell?是怎么知道去哪找到這個命令然后執行的呢?這是通過環境變量?PATH?來進行搜索的,熟悉?Windows?的用戶可能知道?Windows?中的也是有這么一個?PATH?環境變量。這個?PATH?里面就保存了?Shell?中執行的命令的搜索路徑。

查看?PATH?環境變量的內容:

$ echo$PATH

默認情況下你會看到如下輸出:

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

如果你還記得?Linux?目錄結構那一節的內容,你就應該知道上面這些目錄下放的是哪一類文件了。通常這一類目錄下放的都是可執行文件,當我們在?Shell?中執行一個命令時,系統就會按照?PATH?中設定的路徑按照順序依次到目錄中去查找,如果存在同名的命令,則執行先找到的那個。

下面我們將練習創建一個最簡單的可執行?Shell?腳本和一個使用?C?語言創建的“ helloworld ”程序,如果這兩部分內容你之前沒有學習過,那么你可以進行一個入門學習:

C?語言入門教程

高級?Bash?腳本編程指南

Linux ShellScripting Tutorial (LSST) v2.0?。

創建一個?Shell?腳本文件:

$ gedit hello_shell.sh

在腳本中添加如下內容,保存并退出(注意不要省掉第一行,這不是注釋,論壇有用戶反映有語法錯誤,就是因為沒有了第一行):

修改和刪除已有變量

變量修改

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

變量設置方式

說明

${變量名#匹配字串}

從頭向后開始匹配,刪除符合匹配字串的最短數據

${變量名##匹配字串}

從頭向后開始匹配,刪除符合匹配字串的最長數據

${變量名%匹配字串}

從尾向前開始匹配,刪除符合匹配字串的最短數據

${變量名%%匹配字串}

從尾向前開始匹配,刪除符合匹配字串的最長數據

${變量名/舊的字串/新的字串}

將符合舊字串的第一個字串替換為新的字串

${變量名//舊的字串/新的字串}

將符合舊字串的全部字串替換為新的字串

比如要修改我們前面添加到?PATH?的環境變量。為了避免操作失誤導致命令找不到,我們先將?PATH?賦值給一個新的自定義變量?path:

$ path=$PATH

$ echo$path

$ path=${path%/home/shiyanlou/mybin}

# 或使用通配符,*表示任意多個任意字符

$ path=${path%*/mybin}

變量刪除

可以使用?unset?命令刪除一個環境變量:

$ unset temp

6.?如何讓環境變量立即生效

前面我們在?Shell?中修改了一個配置腳本文件之后(比如?zsh?的配置文件?home?目錄下的?.zshrc),每次都要退出終端重新打開甚至重啟主機之后其才能生效,很是麻煩,我們可以使用?source?命令來讓其立即生效,如:

$ source .zshrc

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

$ . ./.zshrc

注意第一個點后面有一個空格,而且后面的文件必須指定完整的絕對或相對路徑名,source?則不需要。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux 环境变量详解,linux环境变量实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。