10个高效Linux技巧及Vim命令对比
寫在前面:今天沒來得及唱歌~一個多星期沒更新了,今天記錄下我自己用得比較多的Linux命令行快捷鍵,小伙伴們別嘲笑我哈~不知道為啥,每次發文就有好幾個小伙伴取消關注離開之前,可以告訴我為什么嗎~~
Vim的很多命令和功能與Linux系統的命令和功能及其相似,可以說是一脈相承。特特總結了10條自己常用的Linux下提高效率的小技巧,并與Vim對應命令進行對比。
(1)?<Ctrl a>:Linux 命令行下執行該命令,將光標移動到行首?(a 是 ahead 的縮寫)
快速移動光標,不僅是在 Vim 下的高優需求,也是 Linux 命令行下的常見工作場景。
例如,在 Linux 命令行下敲完了一長串命令后,如果想在前面先執行一個命令,則可以按組合鍵?<Ctrl a>?將光標移動到行首,輸入想添加的命令。
Vim 下也有將光標快速移動到行首的實用命令。在 Vim 普通模式下,使用?0?可以將光標移動到當前光標所在行的行首,使用?^?可以在Vim下移動光標到當前行的第一個非空字符。
(2)?<Ctrl e>:Linux 命令行下執行該命令,將光標移動到行尾?(e 是 end 的縮寫)
既然有將光標快速移動到行首的需求,自然也有將光標快速移動到行尾的需求。與組合鍵?<Ctrl a>?對應的命令?<Ctrl e>?會將光標移動到行尾,方便繼續輸入要執行的命令。
Vim 下也有將光標快速移動到行尾的命令。在 Vim 普通模式下,使用?$?可以將光標移動到當前行的行尾,而使用?A?命令可以將光標移動到當前行的行尾,并進入插入模式。
(3)?<Ctrl r>:Linux 命令行下執行該命令,會進入歷史命令查找窗口,輸入要查找的命令可快速選擇歷史命令
個人覺得,<Ctrl r>?(r 是 retrieve (檢索) 的縮寫)命令是一個非常實用的 Linux 技巧。當需要在已經執行過的歷史命令中 (即?history?命令的結果) 查找某條命令并再次執行該命令時,可以使用?<Ctrl r>?調出 Linux 歷史命令的搜索窗口,并輸入要查找的目前命令進行查找并重新執行之。
當然可以通過?history | grep xxx?在已執行的歷史命令列表中找到名為?xxx?的命令,然后復制該命令再重復執行之。
毋庸置疑,<Ctrl r>?相比上述的步驟更加高效、便捷。
Vim 里的模糊搜索插件 ctrlp?跟 Linux 終端命令行下執行?<Ctrl r>?的功能非常相似。推薦將?ctrlp?作為你的一個必備 Vim 插件。
(4)?<Ctrl w>:Linux 命令行下執行該命令,會刪除當前光標附近的一個詞 (以空格隔開的字符串)
刪除當前光標附近的一個詞,這是工作中經常遇到的一個場景。在命令行輸入命令時,經常會因為輸入失誤或改變命令而需要進行刪除,使用退格鍵 (Backspace) 一個個刪除字符的效率太低了,如果能一次刪除一個單詞,將會極大減少按鍵次數,整體提高Linux使用效率。
w?表示以一個空格隔開的字符串,這在 Vim 下也是相同的概念。推薦閱讀:Vim基于單詞移動及Vim單詞、字串概念。
(5)?<Ctrl u>:Linux 命令行下執行該命令,會刪除命令行上已經敲出來的所有文本 (即刪除整行)
經常在工作中需要取消已經敲出了一長串的命令。除了可以使用?<Ctrl c>?提前中斷本次即將執行的命令外,還可以使用?<Ctrl u>?刪除命令行上所有已經輸入的字符。
個人覺得,<Ctrl u>?的實用性其實不大,畢竟已經有了組合命令?<Ctrl c>?能完成同樣的操作,其被大家所熟知。
注:<Ctrl c>?用于中斷程序的執行,而?<Ctrl z>?用于暫停程序的執行 (可通過?fg?命令恢復)。
在 Vim 下,可以使用?dd?命令快速刪除當前光標所在行。
(6)?<Ctrl y>:Linux 命令行下執行該命令,將粘貼?<Ctrl w>、<Ctrl u>?等命令刪除的文本
當刪除了 Linux 命令行中已經輸入的某些字符后,可以在適當的時機將之再粘貼出來以便再次使用。
熟悉 Vim 基本命令的都知道,y?在 Vim 命令集中是?yank?的縮寫,表示?粘貼功能。Vim 下經常使用?yy?命令粘貼被復制的文本。
聰明如斯的你,肯定是記住了?yy?命令,自然也就記住了?<Ctrl y>?命令哦~ (這也是為什么要在本文中將這些 Linux 實用技巧與 Vim 命令進行對比說明的原因)
(7)?!xx關鍵字:Linux 命令行下執行該命令,會執行最近一條包含有?xx關鍵字?的歷史命令
history?命令記錄了 Linux 系統最近執行過的歷史命令列表。如果需要重復執行最近一條包含有?xx關鍵字?的命令,可以使用?!xx關鍵字。
!?真是使用 Linux 下的一個操作神器。可以使用它快速執行一條歷史命令,既避免了重復的按鍵輸入,又減少了通過翻 “↑” 箭頭人肉查找歷史命令的工作量。
如果包含有?xx關鍵字?的歷史命令有多條,且本次希望執行的目標命令并不是隔當前時間最近的一條,則還可以使用?!行號n?的方式指定執行?history?列表中行號為?n?的命令。
可以看出,!?既可以使用關鍵字指定要執行的歷史命令,也可以通過行號精確指定要執行的歷史命令。推薦使用搜索引擎搜索關鍵字 “linux 驚嘆號” 相關內容的細節。
Vim 下好像并沒有與之功能類似的命令?
(8)?cd -:Linux 命令行下執行該命令,會將當前目錄切換到上一次所在目錄
在 Linux 命令行下進行操作時,經常遇到辛辛苦苦進入到一個很深的目錄并執行一些操作后,不小心輸入了?cd?命令切換回了當前用戶根目錄的情況。再次輸入完整的深層次目錄或通過翻 “↑” 鍵以便再次進入該目錄顯然是一個很 “蠢笨” 的方法。
在 Linux 下,假設當前所在目錄為?a,通過?cd 某路徑?命令切換到了?b?目錄后,使用?cd -?命令可快速切換回?a?目錄哦。
(9)?<Shift Insert>:Linux 命令行下執行該命令,可粘貼復制到系統剪切板上的內容
在 Linux 命令行下,除了可以使用鼠標右鍵粘貼復制的文本外,還可以使用組合鍵?<Shift Insert>?完成粘貼操作。
據說,極客型 Linux 玩家可以做到不使用鼠標完成所有的日常工作。<Shift Insert>?進行文本粘貼顯然可以減少使用鼠標的頻率。在使用 xshell 等遠程終端模擬軟件時,使用?<Shift Insert>?是不是一個更加高效、便捷的文本粘貼方法呢?
注:<Ctrl Insert>?用于復制已選中的命令行控制臺文本 (不是?<Ctrl c>哦)。
(10)?<Ctrl l>:Linux 命令行下執行該命令,可清空當前屏幕
Linux 下可以使用?clear?命令清空整個屏幕,<Ctrl l>?可達到同樣的效果。
Vim 下,zz?命令可用來重繪屏幕并把當前行顯示在窗口正中。更多Vim實用技巧,推薦閱讀《30個Vim常用命令和使用技巧整理》。
除此之外,還有一些比較不為人熟知的小技巧,例如,連續按3次?Esc?鍵可顯示當前系統支持的所有命令,<Ctrl [?相當于?Esc?鍵的功能,<Ctrl i>?等價于?Tab?鍵的功能等。
更多 Linux 和 Vim 實用技巧,期待你來跟我分享~
—————END—————
掃碼或長按關注
回復「?加群?」進入技術群聊
總結
以上是生活随笔為你收集整理的10个高效Linux技巧及Vim命令对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SARIMA时间序列模型预测城市房价数据
- 下一篇: linux 其他常用命令