1. 程式人生 > >Linux-Bash-Shortcut

Linux-Bash-Shortcut

#Linux Bash快捷鍵

本文適用於Max OS以及大部分Linux發行版本注意本文內所說的前,後分別是指行首,行尾方向

Linux,Max OS作業系統,在其預設的命令列模式下(也就是Bsah),有許多快捷鍵。熟悉常用的快捷鍵可以大大提高我們的操作速度,提升工作效率。按照命令作用,大概可以分下面幾種型別:

程序控制

  • ctrl + c當前向程序傳送一個SIGINT訊號,通知程序退出。具體效果要看程序的程式如何處理SIGINT訊號,有可能會有延遲,有可能甚至會被忽略。比如scrapy程式,按下Ctrl + c需要等當前的處理請求完畢後才會結束程序,如果要強制立即退出,需要按兩次Ctrl + c
  • ctrl + z當前向程序傳送一個SIGTSTP訊號,讓程序轉到後臺執行,如果想恢復前臺執行可以使用fg process_name
  • ctrl + d 退出命令列

螢幕輸出

  • Ctrl + l 清除螢幕輸出
  • Ctrl + s 停止螢幕輸出
  • Ctrl + q 恢復螢幕輸出

ctrl+s 有時候我們在輸入命令的時候,不知道不小心按到了什麼鍵,控制檯“卡死”了,不管怎麼操作都不動了。其實就是因為誤按下了“ctrl + s”鍵,我們的輸入仍然有效,仍然會執行,只是螢幕沒有反饋罷了。

移動游標

  • ``ctrl + a` 移動到命令列首
  • ctrl + e 移動到命令列尾
  • ctrl + f 往前移動一個字元
  • ctrl + b 往後移動一個字元
  • Esc + f 往前移動一個單詞(不包含符號)
  • Esc+b 往後移動一個單詞(不包含符號)
  • Ctrl + xx 在游標當前所處的位置和行首之間切換

刪除

  • Ctrl + d 刪除游標當前位置的字元
  • Ctrl + h 刪除游標前一個字,相當於視窗鍵盤的退格鍵或者Mac的鍵盤的刪除鍵

剪下與貼上

  • Ctrl + k 從游標當然位置剪下到行尾

  • Ctrl + u 從游標當然位置剪下到行首

  • Ctrl + w 從游標當前位置向前剪下整個單詞(包含符號)

  • Esc + Backspace 從當前位置向前剪下一個單詞(不包含符號,Mac鍵盤為Esc + delete鍵)

    scrapy crawl university -a max_num = 500 -t csv -o u.csv    
      #注意:假設此時游標500後面,按下Ctrl + w後會將“max_num = 500”都刪除,如果只想刪除到“=”符號之後,則按Esc + BackSpace
    
  • Esc + d 從游標當前位置向後剪下一個單詞(不包含符號)

  • Ctrl + y 將剪下板中的文字貼上到當前游標之前

編輯

  • Ctrl + - 撤銷上一步操作(注意沒有反撤銷操作,至少目前為止還沒發現)

  • Ctrl + t 交換當前游標所處的字元與前一個字元

  • Esc + t
    

    交換當前游標所處的單詞與前一個單詞(不包含符號)

      scrapy crawl university -a max_num = 500 -t csv -o u.csv    
       #還是以scrapy命令為例,假設現在游標處理max_num中的“u”處,按下“Esc + t”後,max_num就會變成num_max
    

修改大小寫

  • Esc + u 將游標所處位置往後一個單詞變為大寫
  • Esc + l 將游標所處位置往後一個單詞變為小寫
  • Esc + c 將游標所處位置的字元變為大寫,並將往後一個單詞變為小寫

歷史記錄

  • history可以檢視所有命令的歷史記錄
該命令實際上相當於`cat ~/.bash_history`。大家可以看一下自己作業系統使用者目錄下的.bash_hitory檔案,裡面記錄了命令執行的序號、時間、命令以及所有引數。
  • echo $HISTSIZE 顯示歷史記錄最大記錄數量
HISTSIZE這個環境變數決定了歷史記錄的最大數量,我們可以通過修改它來修改.bash_history檔案的最大行數
  • history -c 清除所有的歷史命令
  • Ctrl + p 上一條命令
  • Ctrl + n
  • Ctrl + r 進入歷史記錄逆向搜尋模式
  • Esc + r 撤消所有對當前歷史記錄命令的修改
  • Esc + . 使用上一條命令的最後一個引數

命令縮寫

除了以上列出的快捷鍵,慶典還支援下面這些快捷命令

  • !! 執行上一條命令
  • !command 執行上一條以“命令”開頭的命令
  • ^command 刪除上一條命令中的 “命令” 並執行
  • ^command1^command2 將上一條命令中第一個 “命令1” 替換為 “命令2” 並執行
  • ^command1^command2^ 將上一條命令中所有的 “命令1” 替換為 “命令2” 並執行
  • !$:p 打印出上一條命令的最後一個引數,類似於上面介紹的“Esc +。”
  • !*:p 打印出上一條命令的所有引數
:p可以用在很多地方,表示將前面的命令只打印出來,不執行。比如:
	 !! :p打印出上一條命令
	 !scrapy:p打印出上一條以scrapy開頭的命令