一:變量
變量就是計算機中用于記錄一個值(不一定是數(shù)值齐帚,也可以是字符或字符串)的符號,而這些符號將用于不同的運算處理中吐绵。
變量的創(chuàng)建:declare +變量名
變量的賦值:變量名=值
變量的讀燃L省:echo $變量名
二:環(huán)境變量
通常我們會涉及到的變量類型有三種:
當前Shell進程私有用戶自定義變量,如上面我們創(chuàng)建的tmp變量己单,只在當前Shell中有效唉窃。
Shell本身內(nèi)建的變量。
從自定義變量導(dǎo)出的環(huán)境變量纹笼。
也有三個與上述三種環(huán)境變量相關(guān)的命令:set纹份,env,export
關(guān)于哪些變量是環(huán)境變量廷痘,可以簡單地理解成在當前進程的子進程有效則為環(huán)境變量蔓涧,否則不是(有些人也將所有變量統(tǒng)稱為環(huán)境變量削咆,只是以全局環(huán)境變量和局部環(huán)境變量進行區(qū)分。
按變量的生存周期來劃分蠢笋,Linux變量可分為兩類:
1.永久的:需要修改配置文件拨齐,變量永久生效;
2.臨時的:使用export命令行聲明即可昨寞,變量在關(guān)閉shell時失效瞻惋。
注:/etc/bashrc存放shell變量
/etc/profile存放環(huán)境變量
三:命令的查找路徑與順序
當我們在Shell中執(zhí)行一個命令時,系統(tǒng)就會按照PATH中設(shè)定的路徑按照順序依次到目錄中去查找援岩,如果存在同名的命令歼狼,則執(zhí)行先找到的那個。
查看環(huán)境變量的內(nèi)容:echo $PATH
如何做到想使用系統(tǒng)命令一樣執(zhí)行自己創(chuàng)建的腳本文件或者程序呢享怀?那就要將命令所在路徑添加到PATH環(huán)境變量了
4添加自定義路徑到“PATH”環(huán)境變量
形式:PATH=$PATH: +絕對路徑(只是在當前Shell有效)
讓添加的環(huán)境變量全局有效——讓其自啟動
在每個用戶的home目錄中有一個Shell每次啟動時會默認執(zhí)行一個配置腳本羽峰,以初始化環(huán)境,包括添加一些用戶自定義環(huán)境變量等等添瓷。zsh的配置文件是.zshrc梅屉,相應(yīng)Bash的配置文件為.bashrc。它們在etc下還都有一個或多個全局的配置文件鳞贷,不過我們一般只修改用戶目錄下的配置文件坯汤。
我們可以簡單地使用下面命令直接添加內(nèi)容到.zshrc中:
echo “PATH=$PATH: +路徑”>>.zshrc
上述命令中>>表示將標準輸出以追加的方式重定向到一個文件中,注意前面用到的>是以覆蓋的方式重定向到一個文件中搀愧,使用的時候一定要注意分辨惰聂。在指定文件不存在的情況下都會創(chuàng)建新的文件。
5修改和刪除已有變量
變量刪除:unset
+變量名
修改變量:
6如何讓環(huán)境變量立即生效
source .zshrc(“.”與zshrc是一個整體
四:搜索文件
與搜索相關(guān)的命令常用的有whereis咱筛,which搓幌,find和locate。
whereis簡單快速
它并沒有從硬盤中依次查找迅箩,而是直接從數(shù)據(jù)庫中查詢溉愁。whereis只能搜索二進制文件(-b),man 幫助文件(-m)和源代碼文件(-s)沙热。
形式:whereis +文件名
locate快而全
通過“ /var/lib/mlocate/mlocate.db ”數(shù)據(jù)庫查找有時需要手動執(zhí)行updatedb命令
形式:locate +某路徑下的某文件格式
which小而精
which本身是Shell內(nèi)建的一個命令叉钥,我們通常使用which來確定是否安裝了某個指定的軟件,因為它只從PATH環(huán)境變量指定的路徑中去搜索命令篙贸。
形式:which
+PATH環(huán)境變量指定的路徑
find精而細
基本命令格式為find [path] [option] [action]