《快樂的Linux命令列》學習記錄——第八章鍵盤高階操作
命令列最為珍視的目標之一就是懶惰;用最少的擊鍵次數來完成最多的工作。
• clear -清空螢幕
• history -顯示歷史列表內容
1.命令列編輯
Bash 使用了一個名為 Readline 的庫(共享的執行緒集合,可以被不同的程式使用),來實現
命令列編輯。
注意:下面一些按鍵組合(尤其使用 Alt 鍵的組合),可能會被 GUI 攔截來觸發其它的功
能。當使用虛擬控制檯時,所有的按鍵組合都應該正確地工作。
2.移動游標——雞肋操作
3.修改文字——雞肋操作
這些命令用來在命令列中編輯字元
4.剪下和貼上文字
Readline 的文件使用術語 killing 和 yanking 來指我們平常所說的剪下和貼上。剪下下來的
本文被儲存在一個叫做剪下環 (kill-ring) 的緩衝區
補充:
元鍵meta key:指的就是Alt鍵。
然而在現代的鍵盤上, Alt 鍵作為元鍵來服務。如果你仍然在使用終端(在 Linux 中,你仍然可以得到一個終端),你也可以按下和釋放 Esc 鍵來得到如控制 Alt 鍵一樣的效果。
5.自動補全
1)shell 能幫助你的另一種方式是通過一種叫做自動補全的機制。當你敲入一個命令時,按下tab 鍵,自動補全就會發生。為了自動補全執行成功,你給它的 “線索” 必須不模稜兩可。
[[email protected] ~]$ ls
Desktop ls-output.txt Pictures Templates Videos
…
[
[email protected] ~]$ ls l
現在按下 tab 鍵後:
[[email protected] ~]$ ls ls-output.txt
2)自動補全也能對變數起作用(如果字的開頭是一個 “$”),使用者名稱字(單詞以”∼” 始),命令(如果單詞是一行的第一個單詞),和主機名(如果單詞的開頭是 “@”)。主機名自動補全只對包含在檔案/etc/hosts 中的主機名有效。
有一系列的控制和元鍵序列與自動補全相關聯——感覺還是有點雞肋
說明:
可程式設計自動補全:可程式設計自動補全是由 shell 函式實現的, shell 函式是一種小巧的 shell 指令碼。
6.利用歷史命令
bash維護著一個已經執行過的命令的歷史列表。這個命令列表被儲存在你主目錄下,一個叫做.bash history 的檔案裡。
7.搜尋歷史命令
1)歷史命令
在預設情況下, bash 會儲存你所輸入的最後 500 個命令。
在任何時候,我們都可以瀏覽歷史列表的內容,通過:
[[email protected] ~]$ history | less
eg:我們想要找到列出目錄/usr/bin 內容的命令
[[email protected] ~]$ history | grep /usr/bin
比方說在我們的搜尋結果之中,我們得到一行,包含了有趣的命令,像這樣;
88 ls -l /usr/bin > ls-output.txt
數字 “88” 是這個命令在歷史列表中的行號。
隨後在使用另一種展開型別時,叫做歷史命令展開,我們會用到這個數字。
[[email protected] ~]$ !88
bash 會把 “!88” 展開成為歷史列表中 88 行的內容。
2)搜尋
輸入 Ctrl-r:啟動遞增搜尋,其後輸入你要尋找的文字。
輸入 Ctrl-j:從歷史列表中複製這一行到當前命令列。或者enter後自己敲。
輸入 Ctrl-c:退出搜尋。
[[email protected] ~]$
首先輸入 Ctrl-r:
(reverse-i-search)`’:
提示符改變,顯示我們正在執行反向遞增搜尋。下一步,我們開始輸入要查詢的文字。在這個例子裡是 “/usr/bin”:
(reverse-i-search)`/usr/bin’: ls -l /usr/bin > ls-output.txt
即刻,搜尋返回我們需要的結果。我們可以執行這個命令,按下 Enter 鍵,或者我們可以
複製這個命令到我們當前的命令列,來進一步編輯它,輸入 Ctrl-j。複製它,輸入 Ctrl-j:
[[email protected] ~]$ ls -l /usr/bin > ls-output.txt
補充:
補充一些按鍵組合用來操作歷史列表。
8.歷史命令展開——下面第一個用的多
通過使用 “!” 字元,我們已經知道一個感嘆號,其後再加上一個數字,可以把來自歷史列表中的命令插入到命令列中。
補充:
指令碼
除了 bash 中的命令歷史特性,許多 Linux 發行版包括一個叫做 script 的程式,這個程式可以記錄整個 shell 會話,並把 shell 會話存在一個檔案裡面。這個命令的
基本語法是:
script [file]
命令中的 file 是指用來儲存 shell 會話記錄的檔名。如果沒有指定檔名,則使用檔案 typescript。檢視指令碼的手冊頁,可以得到一個關於 script 程式選項和特點的完整列表。