1. 程式人生 > >《快樂的Linux命令列》學習記錄——第八章鍵盤高階操作

《快樂的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 程式選項和特點的完整列表。