2009年3月26日星期四

bash shortcuts

http://blog.neu.edu.cn/sonic3021/archives/46

Bash快捷键
一般組合鍵

* Ctrl-U: 清除一行中游標之前的所有文字。
* Ctrl-H: 移除游標前的一個字元。
* Ctrl-D: 結束輸入。(如果您在 shell 下,就會跳出該 shell)
* Ctrl-C: 終止正在執行的程式。
* Ctrl-Z: 暫時停止程式。 (將該工作放到背景)
* Ctrl-S: 停止輸出到畫面上。(類似 Scroll Lock)
* Ctrl-Q: 回復輸出到畫面上。
* 上/下箭頭: 開始搜尋過去的命令。
* Ctrl-R: 開始漸進收尋過去的命令。
* TAB: 擴展要輸入的檔案到命令列上。
* Ctrl-V TAB: 輸入 TAB,而不是命令列擴展

Emacs 模式下的組合鍵

Bash組合鍵運行預設是emacs模式,但也可以改環境變數EDITOR 成Vi 模式。但是GNU/Linux 下大部分的文字應用程式預設都是emacs模式,建議學emacs模式比較方便。

* Ctrl-A 游標跳至行首,也可用 Home
* Ctrl-E 游標跳至行末,也可用 End
* Meta-B 游標倒退跳一個字
* Meta-F 游標向前跳一個字
* Ctrl-U 從游標倒退刪回至行首
* Ctrl-W 從游標倒退刪最後一個參數, 看起來跟 meta-backspace 一樣
* meta-d Kill from the cursor to the end of the current word, or, if between words, to the end of the next word.
* Ctrl-K 從游標向前刪至行尾
* Ctrl-Y 貼上bash刪除緩衝區裡的內容 或 Insert鍵
* Meta-Y Rotate the kill-ring, and yank the new top
* Ctrl-_ 回手(undo)

巨集

* Ctrl-x ( 開始紀錄巨集
* Ctrl-x ) 結束紀錄巨集
* Ctrl-x e 執行巨集

命令回溯運行

* !xyz回溯運行最後一個以xyz開頭的命令
* !?xyz回溯運行最後一個包含xyz 的命令
* !!回溯運行前一命令
* !號碼n回溯運行第n號命令
* !-號碼n(倒數第n號命令)
* !* 前一命令的所有參數(意即 前一命令去掉第一個字)
* !^ 前一命令的第一個參數
* !$ 前一命令的最後一個參數(這裡字是指以空白分開的 "詞" 而非 字元) 相當於 Meta-. 或 meta-_ 鍵

修改回溯命令內容

* ^被取代字元^取代字元
* :號碼 第幾參數 (第一參數是:0)。例:若前一命令共有三個參數 (共四個字),要去掉最後一個參數可用 !!:-2
* :p 光顯示命令而不執行
* :h Remove a trailing file name component, leaving only the head.
* :t Remove all leading file name components, leaving the tail.
* :r Remove a trailing suffix of the form .xxx, leaving the basename.
* :e Remove all but the trailing suffix.

在 bash 下也可以用 Ctrl-x Ctrl-e 來開啟編輯器來編輯命令。
Gnome-Terminal 鍵盤指定的問題

Gnome Terminal中 Alt鍵 被Menu bar 搶掉了,得用Esc鍵或其他鍵當Meta鍵

一般我們用

* back-space 產生 ASCII DEL
* delete 產生 跳出字元序列

這樣

* delete會取代傳統的 Ctrl-d : 往前刪
* back-space會取代傳統的 delete: 倒退刪

這樣 後退鍵 會倒退刪;刪除鍵 會往前刪。但 ESC-delete 就沒法工作 要用ESC-d

没有评论:

发表评论