快速編輯 Shell 命令列

2021-04-02 19:34:15 字數 4167 閱讀 5920

前言

快速編輯 shell 命令列

想起聽得最多的就是 *nux 的初學者說最煩就是 linux / unix 的命令列,所以就有了這個題目。如果你是個性急的人可以先嘗試下文章結尾的綜合練習體會一下 shell 的快捷鍵,也許這樣再看全文會更有趣。

其實,命令列適應了,可能比圖形介面更有效率。至少對我來說是這樣,我現在一看見那些所謂的 ide 就有眼花繚亂感覺,真正用來寫**的面積都被擠到只有一包煙那麼大了,呵呵。有時為找個選項花很長時間找對話方塊,也很痛苦吧。

為什麼那麼多人害怕命令列呢?

我想最大的問題就是很多人覺得命令列的輸入和編輯都很「慢」,很低效。但是對於 linux / unix 這類從核心得到整體架構,再到哪怕是最小的乙個應用小軟體都以文本來支撐的系統,沒有嫻熟的命令列技巧確實是玩不轉的。希望本文能對你提高命令列使用效率有幫助。

但是由於 linux / unix 的發行版實在是太多,shell 的主流版本也有好幾個,所以,本文所說的內容,可能和你的系統有出入,但是思想是一樣的,在你自己的平台上摸索一下,你也會找到你的平台太下編輯命令列的技巧和規律。

另外,shell 的很多快捷鍵和 vim, emacs 的快捷鍵是相通的,所以,熟練使用 shell 快捷鍵,對適應 *nux 下的其他軟體有很好的啟示作用。

命令列的技巧除了本文提到的,還有很多,你可以自己慢慢積累,收集和體會。當然如果你經常需要輸入很繁瑣的命令,那麼建議你自己寫 shell 指令碼,定義 function, alias 等技巧來實現。

我目前使用的系統配置

核心: 2.6.14-gentoo-r5;

系統發行版: gentoo linux -- 2005.1;

shell 版本: gun bash -- 3.00.16

x server: xorg -- 6.8.2;

視窗系統: gnome -- 2.10.1;

終端: gnome-terminal -- 2.10.0;

現在就開始吧

一、自動補齊:[tab]

這個技巧很多人都應該會了,就是當輸入命令,目錄或者是檔名的時候按 [tab] 鍵。系統就會幫你補齊可能要輸入的東西,如果有多個選擇系統會列表出來。你可以看清楚之後再多輸入乙個或多個 charactor ,再按[tab]。

實驗:

$ ec

按[tab], 補齊為:

$ echo

二、查詢和執行歷史命令:[ctrl + r], [ctrl + p], [ctrl + n]

另外,[ctrl + p][ctrl + n]快速向前或向後滾動查詢乙個歷史命令,對於快速提取剛剛執行過不久的命令很有用。

實驗:

$ echo "hello, world" [enter]

$ hello, world

[ctrl + r ] (接著輸入 echo)

(reverse-i-search)`ch': echo "hello,world" [enter]

$hello,world

三、取消本次命令輸入:[ctrl + c]

這個快捷鍵可以使你從乙個可能你已經厭煩了的命令中安全地退出!!也許是個不值一提的小技巧,但是經驗告訴我它很有用。很多 unix 初學者會習慣性地按 [enter] 以擺脫困境,但是說不定就會發生災難性的事件,譬如刪除了乙個重要的配置檔案:(

四、游標跳轉快捷鍵:

為了方便大家記憶,加點英語助記語在後面 :)

[ctrl + a] 跳轉至命令列首 ahead of line

[ctrl + e] 跳轉至命令行尾 end of line

[ctrl + f] 向前跳轉乙個字元 jump forward one character

[ctrl + b] 向後跳轉乙個字元 jump backward one character

[alt + f] 向前跳轉到下乙個字的第乙個字元

[alt + b] 向後跳轉到下乙個字的第乙個字元

[ctrl + w] 向後刪除乙個字,用來對付剛剛輸入的錯誤字很有用

[ctrl + u] 從游標當前位置刪除所有字元至行首

[ctrl + k] 從游標當前位置刪除所有字元至行尾

[ctrl + d] 刪除游標當前位置的字元

[ctrl + y] 貼上最後乙個被刪除的字

[alt + d] 刪除從游標當前位置,到當前字的結尾字元

六、配置提示;

如果你是用 gnome 下的終端視窗 gnome-teminal ,上面的 gnu shell 快捷鍵會跟 gnome 的視窗快捷鍵有衝突。

那麼你需要做如下配置:

在 gnome-terminal 的選單欄中選 "edit" -] "keyboard shortcuts ..."開啟 "keyboard shortcuts" 對話方塊,並勾選下面兩個復選項

"disable all menu access keys (such as alt+f to open file menu)"

"disable menu shortcut key (f10 by default)"

至於 kde 下應該怎麼配 kde 的終端視窗,請熟悉 kde 的朋友補充一下,我很久沒用 kde 了,也沒裝。

七、綜合練習;

第一步:echo

$ echo "hello, world." [enter]

我們先輸入 echo "hello, world" 這個命令,然後回車,也就看到了終端的輸出:

$ hello, world.

第二步:[ctrl + r]

我們試試找出歷史命令 echo "hello, world.",這時,我們按[e],[c],[h]這三個鍵,這個歷史命令大概已經找到了,

終端的顯示應該是這樣:

(reverse-i-search)`ech': echo "hello,world."

這樣,我們就取出了歷史命令 echo "hello, world.",並且將游標定位到行首,此時,游標應該在 echo 命令的 e 字元上高亮。

終端的顯示應該是這樣:

$ echo "hello,world"

第四步:[alt + d]

刪除了命令 echo, 並且游標仍然在行首,終端顯示為:

$ "hello, world."

第五步:輸入命令 "printf"

我們嘗試一下用 posix 的系統呼叫 printf 來替代 shell 命令 echo,輸入[p][r][i][n][t][f],此時終端顯示為:

$ printf "hello, world."

並且游標在 f 字元後面高亮。

第六步:[ctrl + e]

游標跳轉到命令列尾部。

第七步:[ctrl + b]

游標後退乙個字元,此時游標應處於後雙引號 " 處高亮。

第八步:輸入換行轉義符 "/n"

輸入[/][n] ,此時的終端顯示應該為:

$ printf "hello, world./n"

可以[enter]執行了。

快速編輯shell命令列

四 游標跳轉快捷鍵 為了方便大家記憶,加點英語助記語在後面 ctrl a 跳轉至命令列首 ahead of line ctrl e 跳轉至命令行尾 end of line ctrl f 向前跳轉乙個字元 jump forward one character ctrl b 向後跳轉乙個字元 jump ...

快速編輯 Shell 命令列

快速編輯 shell 命令列 前言快速編輯 shell 命令列 想起聽得最多的就是 nux 的初學者說最煩就是 linux unix 的命令列,所以就有了這個題目。如果你是個性急的人可以先嘗試下文章結尾的綜合練習體會一下 shell 的快捷鍵,也許這樣再看全文會更有趣。其實,命令列適應了,可能比圖形...

快速編輯 Shell 命令列

快速編輯 shell 命令列 一 自動補齊 tab 這個技巧很多人都應該會了,就是當輸入命令,目錄或者是檔名的時候按 tab 鍵。系統就會幫你補齊可能要輸入的東西,如果有多個選擇系統會列表出來。你可以看清楚之後再多輸入乙個或多個 charactor 再按 tab 實驗 ec 按 tab 補齊為 ec...