前言:環境變數 , 要是你學過c語言,你可以以這樣的思想去理解,變數,變數,是乙個變化的量,用乙個簡單的「字眼」來代替另外乙個比較複雜或者是容易變動的資料(出自鳥哥的私房菜),根據需求,改變這個變數的值。
正解:變數就是一組文字或者符號(這些文字和符號都是你自己定義的)來代替一些設定或者是一串保留的資料。
例如:你設定乙個字元name(變數)就是m_j,那後續凡是遇到name,系統就會知道這個name就是m_j。
而linux當中的環境變數經常就是些路徑,username=/var/spool/mail/user,後面遇到的username就都指示為/var/spool/mail/user了。
現在有了變數了,那要如何顯示變數呢? 顯示變數就用echo(用於檢視變數)或者unset(用於取消變數),使用echo命令的時候,要在變數前面加上$這個符號,
如下:root@mj:/# echo $path 這個是檢視變數命令,下面就是顯示的變數路徑
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/embedsky/4.4.6/bin:/usr/local/games
如何設定和修改變數: 利用「=」連線變數和它的內容就ok 如下,剛開始這個變數還沒有被設定,所以用echo檢視是空的
root@mj:/# echo $name
root@mj:/# name=m_j 現在被設定為m_j了
root@mj:/# echo $name 所以顯示就會顯示m_j
m_j
這樣,name這個變數就表示m_j了,
取消變數設定:
root@mj:/# unset name 取消變數的命令
root@mj:/# echo $name 再次檢視該變數,下面顯示為空
root@mj:/#
需要注意的幾點:
1.等號兩邊不能直接接空格符,但是若變數內容中含有空格符怎麼辦?別怕。聰明的人類說:利用雙引號或者單引號將變數的內容擴起來,(注意單引號和雙引號必須要成對)對於雙引號裡面的一些特殊字元如:$,可以保持原狀。這裡舉個例子來表述單引號和雙引號的區別:
root@mj:/# echo $name 檢視下變數name的值 下面顯示沒有
root@mj:/# name=m_j 設定變數name的值為m_j
root@mj:/# echo $name 再次檢視name的值 顯示m_j
m_jroot@mj:/# myname="$name ju de li zi" 使用雙引號
root@mj:/# echo $myname
m_j ju de li zi
root@mj:/# myname='$name ju de li zi' 使用單引號
root@mj:/# echo $myname
$name ju de li zi
看看他們的區別,總結為使用單引號的時候,變數name就不會代表m_j的值了,僅顯示為一般字元,所以 這裡要注意喲(-_-)
2.變數名稱只能是英文和數字,而且開頭字元不能是數字
3.可以利用轉義字元「\」將一些特殊字元(enter、#、!、空格符等)變為一般字元
4.對於系統的一些變數,系統自己使用的是大寫。我們自己設定變數的時候,我們可以利用小寫
5.如果該變數需要在其它子程序使用,則需要利用export來是變數變成環境變數。如export path,這裡多說下子程序(在開啟當前的這個shell的情況下,再去開啟另外乙個新的shell,那個新的shell就是子程序,一般的情況下,父程序的一些自定義變數不能在子程序中使用,所以就需要使用export將變數變成環境變數,這樣,這個父程序的變數就能夠在子程序中使用了。這和c語言中變數的作用域很像,c語言的話就需要用extern來宣告 -_-)
說一說如何累加變數:(看操作-_-)
root@mj:/# echo $path 先使用命令檢視下path變數 如下
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/embedsky/4.4.6/bin:/usr/local/games
現在要在path變數下加入/home/dmtsai/bin 變數,直接以:連線path新增上變數路徑就ojbk了。
root@mj:/# echo $path:/home/dmtsai/bin
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/embedsky/4.4.6/bin:/usr/local/games:/home/dmtsai/bin
小竅門:
如果你經常去某乙個目錄,但是這個目錄的路徑特別長,切換的話,要切換好多次,是不是很麻煩呢
那麼有了這個變數了 就可以這樣子:
root@mj:/# study="/opt/embedsky/qt-4.5/build/build_arm/" 比如我經常去這個目錄下,所以我現在就設定乙個變數study,並且給它設定路徑值,那麼下次我去這個目錄的時候,我就可以直接輸入下面的命令,就直接到達那個目錄了,還是特別的方便了呢
root@mj:/# cd $study
root@mj:/opt/embedsky/qt-4.5/build/build_arm#
結合鳥哥的私房菜所寫 2023年07月26日15:22:04
Linux之環境變數
按環境變數的生存週期來劃分可分為兩類 1 永久生效的環境變數 環境變數是定義在配置檔案中的,修改時需要修改配置檔案。1 在 etc profile檔案中使用export定義環境變數,對所有使用者都生效 2 在某使用者的家目錄的.bash profile檔案中使用export定義環境變數,對該使用者生...
linux學習 環境變數
1 環境變數檔案 etc profile 2 輸出環境變數值 echo path 3 linux bash command not found,解決 為防止如上異常,請先初始化環境變數 1 修改profile檔案 所有使用者 vi etc profile 加入 export path path us...
Linux學習筆記之《檢視環境變數》
1.linux檢視環境變數顯示環境變數home echo home home redbooks 2.linux檢視環境變數設定乙個新的環境變數hello export hello hello echo hello hello 3.linux檢視環境變數使用env命令顯示所有的環境變數 env hos...