前言
本章包含該書第三章的部分內容,主要是在講如何自訂指令。
一、純shell檔案
1. 撰寫shell檔
透過vim或是其他方式或下方會提到的heredoc都可,下稱filename
2. 將該檔案設定成可執(zhí)行,例如:
3. 執(zhí)行看看
此時若直接執(zhí)行
會報錯說沒有這個指令,那是因為linux預設會去撈$PATH變數(shù)設定的資料夾底下,看有沒有符合名稱的指令可以叫,若沒有的話就當作沒有這個指令。
根據(jù)POSIX標準,指定檔案時若有含./則會忽略PATH,執(zhí)行檔案使用。所以請在前方加上./
4. 將該檔案的位置加進$PATH中。
echo 'PATH=$PATH:{檔案位置}' > ~/.bashrc |
大意是說將系統(tǒng)原本的變數(shù)加上檔案位置後存取來供小黑窗使用。
是否是寫至.bashrc要看作業(yè)系統(tǒng)跟使用的小黑窗程式而定。
書中涉及比較多實做,提到了個有趣的細節(jié):
1. heredoc
cat << EOF > main.php #! ./bin/php echo('haha this is code!'); EOF |
除了heredoc的格式外,第一行指定運行程式的直譯器的寫法名為shebang。
這樣的做法可以套用在直譯式語言上。
二、第三方需編譯的套件
書裡頭以C搭配gcc作範例,大致上介紹了一個以C為底的套件,若沒有提供binary的話要如何安裝。
書中以entr為範例,該套件可以監(jiān)聽C的程式碼,並即時跑出結果。
這類的套件安裝,大抵會有三個步驟:
1. 確認環(huán)境 (本套件的./configure)
2. 編譯&測試 (本套件的make test)
3. 安裝 (本套件的make install)
安裝時,可能會安裝超過一個檔案至電腦。若日後要清除的話因為沒有套件管理系統(tǒng)所以很麻煩。
所以有一種工具可以將此類的套件轉成可被套件管理的格式,書中舉了CheckInstall這個案例。
CheckInstall可以將這類套件轉成.deb,這樣就能透過dpkg的方式管理套件了。
apt install -y CheckInstall; //安裝CI sudo checkinstall //在套件目錄下執(zhí)行,透過CI安裝套件 |
由於本身沒有在開發(fā)編譯式語言,所以就先簡單紀錄一下,淺嚐即止。