Linux程式設計的2個專業訣竅

一月 19, 2018
Facebook
Twitter
Linux是個很強大、經過時間考驗的開源作業系統,廣泛用於伺服器和網站的運作,但多數的學生和Maker第一次和它接觸的時機會是用到Raspberry Pi或BeagleBone Black、Intel Galileo等類似的單板電腦的專題。透過更深入瞭解Linux,Maker可以獲得讓專題進展更順利的新技能。
不知道你是否和我一樣,拼字和打字都不是我的強項,好幾次花了二三十秒打一行有很多選項、很長的指令,結果按下Enter才發現中間有錯,必須從頭開始。不只這樣,當有很多選擇時,要記得用來執行特定工作的指令也是難事。幸運的是,Linux的殼層有內建協助處理這兩種問題的工具。

自動完成指令:TAB

按下鍵盤上的Tab鍵就能使用殼層的自動完成功能,自動完成已部份鍵入的指令,並根據鍵入的語境自動完成檔案名稱。

訣竅:依照預設,Tab不會每次都知道指令的可用選項,但能夠自動完成可能用於指令一部分的指令名稱和任何相關檔案名稱。

舉例來說,如果輸入「tou」並按下Tab鍵,殼層會填入缺少的字母,變成「touch」。如果輸入的字母有多種可能的完整字詞,按第一下Tab會沒有反應,再按一下時殼層會顯示以你輸入的字母為開頭的所有可能指令或檔案名稱清單。因此如果輸入「mkd」並按兩下Tab,會看到兩個mkd開頭的指令選項:mkdir和mkdosfs:

pi@raspberrypi ~ $ mkd
  mkdir mkdosfs
  pi@raspberrypi ~ $ mkd
如果繼續輸入字元再按下Tab,最後會排除其他選項,而殼層會在只剩一個選項時完成剩餘的指令或檔案名稱。處理較長的指令和檔名時,這個自動完成功能會省下很多時間,同時會在還不常使用某個指令時排除拼字錯誤。

搜尋先前的指令:UpCTRL-R

Linux會記錄在指令行輸入的所有東西。瀏覽輸入過的指令有個簡單的方法是使用向上方向鍵,從最近的指令開始捲動。如果要找的指令在比較早期的記錄上,可以在指令行按下「Ctrl-R」,並輸入字元。例如要搜尋上一次用nano來編輯檔案的記錄,就按下「Ctrl-R」,並輸入「nano」。

按下Ctrl-R時,即使游標處已經有輸入資訊也沒關係,那段文字不會用來搜尋,只有按下Ctrl-R之後輸入的字元才算。以這種方式搜尋指令記錄時,會發現提示會變成(reverse-i-search),後面接你輸入的字母。

(reverse-i-search)‘nano’: nano hello.sh
如果按下其中一個方向鍵、Home、End或Tab,就會結束搜尋,讓你編輯搜尋到的指令。你也可以在離開搜尋前按多下Ctrl-R來繼續搜尋記錄。

自己試試看:輸入以下指令,切換到主目錄並建立檔案:
cd
  tou <TAB> file1
按下Tab後,它會完成touch這個指令。接著輸入以下指令來切換到Downloads目錄:

cd D <TAB> <TAB>

會看到類似以下文字:

pi@raspberrypi ~ $ cd D
  Desktop/ Documents/Downloads/
  pi@raspberrypi ~ $ cd D
輸入「ow」等字母,並再次按下Tab,自動完成我們要的路徑,接著按下Enter。

​現在來用指令記錄建立第二個檔案,按下Ctrl-R,然後輸入「tou」:

pi@raspberrypi ~ $ cd D

  Desktop/ Documents/Downloads/

  pi@raspberrypi ~ $ cd Downloads/
  (reverse-i-search)‘tou’: touch file1
按下End鍵,並把「file1」(檔案1)變更為「file2」(檔案2),按下Enter來完成工作。現在已經建立了兩個檔案,一個在主目錄、一個在Downloads目錄。這之間少打了很多字!

本文節錄自Aaron Newcomb的著作《Linux for Makers》(暫譯:給MakerLinux教學),原文版於Maker Shed及各大書店皆有販售。

(譯:屠建明)
【原文】
Social media & sharing icons powered by UltimatelySocial