一.實(shí)驗(yàn)名稱
環(huán)境變量與文件查找
二.實(shí)驗(yàn)過程
1.變量的定義
使用命令declare $定義一個(gè)新變量,例如declare $test 定義了一個(gè)名為test的變量迹炼〉鍪裕或者直接通過賦值的形式定義新變量椅亚,例如test = 1 定義了一個(gè)新變量test并賦值為1源武。
打印變量的值可以使用echo命令扼褪,例如echo $test
通常情況下涉及的環(huán)境變量有三種:一是當(dāng)前Shell進(jìn)程私有用戶自定義變量;二是Shell本身內(nèi)建的變量粱栖;三是從自定義變量導(dǎo)出的環(huán)境變量话浇。
相關(guān)命令及其說明:
set|命令顯示當(dāng)前Shell所有環(huán)境變量,包括其內(nèi)建環(huán)境變量(與Shell外觀等有關(guān))查排,用戶自定義的變量及導(dǎo)出的環(huán)境變量凳枝。
env|顯示與當(dāng)前用戶相關(guān)的環(huán)境變量,還可以讓命令在指定環(huán)境下運(yùn)行跋核。
export|命令顯示從Shell中導(dǎo)出的環(huán)境變量的變量,也可以通過該命令將自定義變量導(dǎo)出為環(huán)境變量叛买。
輸出環(huán)境變量可以使用export test命令砂代。
比較文件的命令:vimdiff test1.txt test2.txt test3.txt
(1)命令的查找路徑與順序
$PATH環(huán)境變量設(shè)置命令搜索路徑
echo $PATH命令可以輸出當(dāng)前命令搜索路徑的設(shè)置
$PATH中臨時(shí)添加自定義路徑,用冒號(hào)連接路徑:PATH=$PATH:/home/shiyanlou/code
(2).變量修改
1.${變量名#匹配字符串}:從頭往后匹配率挣,刪除符合匹配字符串的最短數(shù)據(jù)刻伊。
2.${變量名##匹配字符串}:從頭往后匹配,刪除符合匹配字符串的最長數(shù)據(jù)椒功。
3.${變量名%匹配字符串}:從后往前匹配捶箱,刪除符合匹配字符串的最短數(shù)據(jù)。
4.${變量名%%匹配字符串}:從后往前匹配动漾,刪除符合匹配字符串的最長數(shù)據(jù)丁屎。
5.${變量名/舊的字符串/新的字符串}:將舊的字符串的第一個(gè)字符串替換為新的字符串。
6.${變量名//舊的字符串/新的字符串}:將舊的字符串的全部字符串替換為新的字符串旱眯。
(3).變量刪除
使用unset命令刪除一個(gè)環(huán)境變量晨川。例如$unset test证九。
使用source命令使環(huán)境變量立即生效。例如$source .zshrc或者$. ./. zshrc
其中共虑,第二種方式必須完整的絕對(duì)路徑或相對(duì)路徑
2.搜索文件
(1)whereis簡單快捷
whereis直接從數(shù)據(jù)庫中查詢愧怜,并不是從硬盤中依次查找。whereis只能搜索二進(jìn)制文件(-b)妈拌,man幫助文件(-m)和源代碼文件(-s)拥坛。
(2).locate快而全
通過"/var/lib/mlocate/mlocate.db"數(shù)據(jù)庫查找,系統(tǒng)會(huì)使用定時(shí)任務(wù)每天自動(dòng)執(zhí)行updatedb命令更新一次該數(shù)據(jù)庫尘分,有時(shí)需要手動(dòng)執(zhí)行一次updatedb命令將新文件添加進(jìn)數(shù)據(jù)庫猜惋。find命令可以用來查找指定目錄下的不同文件類型,可以通過遞歸子目錄進(jìn)行查找音诫。例如查找/etc下的所有以sh開頭的文件惨奕。例如 locate /etc/sh ? ? ? locate /home/shiyanlou/Code/\ *.txt
(3).which小而精
which命令只能PATH環(huán)境變量指定的路徑中去搜索命令。例如which man
(4)find精而細(xì)
find命令的使用詳情見以下鏈接
www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html http://www.jz123.cn/text/1720453.html