xshell的快捷鍵(非常實用)
1.使用上一條命令的所有參數
方法:!*
例子:如果我對hello.txt和bye.txt進行了編輯,然后希望使用git add添加這兩個文件。就可以使用:git add !*
2.使用上一條命令的最后一個參數
方法:!$
ALT + . # terminal中會自動補全
ESC + . # terminal中會自動補全
3.使用上一條命令中除了最后一個參數的部分
方法:!:-
例子:個人認為這個比較有用,因為有些命令中間會輸入一大堆選項,最后一個才是實際發揮作用的對象,如果再次輸入選項,會顯得麻煩。
4.使用上一條命令中任意一個部份
方法:ALT + <num> + .
其中num表示的上一條命令中的第幾部分,從0開始,對於ls -shld hello.txt。ALT +0+. 就是ls。1就是-shld
剛開始不會用這個,后來發現,這個命令要一直按着alt鍵盤。xshell默認好像沒開啟這個功能,需要啟動的話,如下圖,在會話窗口按快捷鍵Alt+o, 選中所有連接:
5.替換上一條命令中的一個部份
方法:將foo替換為bar
^foo^bar 僅替換地一個
!!:gs/foo/bar 替換所有
6.上一條命令
方法:!!
7.糾正(刪除)上一條命令中的錯誤字符
方法:^bar
$cat docker-compose.yml123
cat: docker-compose.yml123: No such file or directory
$^123
cat docker-compose.yml
# 123被刪除
最后:推薦一個網站,可以這樣來學習,如果遇到一條需要輸入的命令,讓你覺得需要鍵盤輸入過多,或者說你猜想可能有更好的、更快捷的方式時,不妨到這個網站上來搜一下,這樣慢慢積累,加以時日,應該還是有一定的收獲: commandlinefu.com
刪除
ctrl + d 刪除光標所在位置上的字符相當於VIM里x或者dl
ctrl + h 刪除光標所在位置前的字符相當於VIM里hx或者dh
ctrl + k 刪除光標后面所有字符相當於VIM里d shift+$
ctrl + u 刪除光標前面所有字符相當於VIM里d shift+^
ctrl + w 刪除光標前一個單詞相當於VIM里db
ctrl + y 恢復ctrl+u上次執行時刪除的字符
ctrl + ? 撤消前一次輸入
alt + r 撤消前一次動作
alt + d 刪除光標所在位置的后單詞
移動
ctrl + a 將光標移動到命令行開頭相當於VIM里shift+^
ctrl + e 將光標移動到命令行結尾處相當於VIM里shift+$
ctrl + f 光標向后移動一個字符相當於VIM里l
ctrl + b 光標向前移動一個字符相當於VIM里h
ctrl + 方向鍵左鍵 光標移動到前一個單詞開頭
ctrl + 方向鍵右鍵 光標移動到后一個單詞結尾
ctrl + x 在上次光標所在字符和當前光標所在字符之間跳轉
alt + f 跳到光標所在位置單詞尾部
替換
ctrl + t 將光標當前字符與前面一個字符替換
alt + t 交換兩個光標當前所處位置單詞和光標前一個單詞
alt + u 把光標當前位置單詞變為大寫
alt + l 把光標當前位置單詞變為小寫
alt + c 把光標當前位置單詞頭一個字母變為大寫
^oldstr^newstr 替換前一次命令中字符串
歷史命令編輯
ctrl + p 返回上一次輸入命令字符
ctrl + r 輸入單詞搜索歷史命令
alt + p 輸入字符查找與字符相接近的歷史命令
alt + > 返回上一次執行命令
其它
ctrl + s 鎖住終端
ctrl + q 解鎖終端
ctrl + l 清屏相當於命令clear
ctrl + c 另起一行
ctrl + i 類似TAB健補全功能
ctrl + o 重復執行命令
alt + 數字鍵 操作的次數
#c+l 清屏先
minuit@suse:~>str1 str2 str3 #輸入三個單詞發現第一單詞需要大寫好按c+a跳到開頭按a+c
minuit@suse:~> Str1 str2 str3 #好現在單詞就變成了現在這個樣子,又發現第二個單詞要全大寫(這樣的命令真是玩死人:( )好吧如果你當前光標在第二個單詞,那直接a+u把這個單詞改變,如果不在的話那按住c+a接着c+f跳到第二個單詞那再a+u就OK了結果像下面所示。
minuit@suse:~> Str1 STR2 str3 #我想換過來怎么辦我的位置已經在最后一個單詞這個好辦按住a+2+b哈哈跳到了第二個單詞再來一下a+l這下第二個單詞全小寫了
minuit@suse:~> welcome to chinaunix! #不就是變個大小寫嗎? 按住c+a接着a+3+c看看效果
minuit@suse:~> Welcome To Chinaunix! #GOOD很簡單
我們再來試試替換
minuit@suse:~> Welcome To Chinaunix! #還是這三單詞c+a跳到開頭再接着跳到第二個單詞那(因為a+t只能跟前一個單詞做替換所以不能在第一個單詞按a+t)按住a+t
minuit@suse:~> To Welcome Chinaunix! #現在成這樣子的了如果我用再按a+2+t那又變了一個樣
minuit@suse:~> Chinaunix! Welcome To #好了來一點比較常用的
minuit@suse:~>ls /tmp/ #看看下面有些什么
file1 file2 file3 ..... ..
minuit@suse:~>^ls^cd #現在再又想進入目錄很簡單的健入替換命令就行了在命令很長時用這個替換可以省掉很多按a+b或a+f的時間
cd /tmp/
minuit@suse:/tmp> #進入了tmp目錄了
跳轉的命令就不試了大家自己體會試也看不見^_^
------------------------------------------------------------------------------
Ctrl + a 可以快速切換到命令行開始處
Ctrl + e 切換到命令行末尾
Ctrl + r 在歷史命令中查找
Ctrl + u 刪除光標所在位置之前的所有字符
Ctrl + k 刪除光標所在位置之后的所有字符
ctrl + w 刪除光標之前的一個單詞
Ctrl + d 結束當前輸入、退出shell
ctrl + s 可用來停留在當前屏 ctrl + q 恢復刷屏
ctrl + l 清屏
CTRL 鍵相關的快捷鍵:
Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command //用的最多了吧?
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen //清屏,類似 clear 命令
Ctrl + r - Search the history backwards //查找歷史命令
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor // 密碼輸入錯誤的時候比較有用
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions
Ctrl + z - Suspend/ Stop the command
補充:
Ctrl + h - 刪除當前字符
Ctrl + w - 刪除最后輸入的單詞
ALT 鍵相關的快捷鍵:
平時很少用。有些和遠程登陸工具沖突。
Alt + < - Move to the first line in the history
Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor
// SecureCRT 如果沒有配置好,這個就很管用了。
其他特定的鍵綁定:
輸入 bind -P 可以查看所有的鍵盤綁定。這一系列我覺得更為實用。
Here "2T" means Press TAB twice
$ 2T - All available commands(common) //命令行補全,我認為是 Bash 最好用的一點
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ ./2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from "/etc/passwd" //第一次見到,很好用
$ $2T - All Sys variables //寫Shell腳本的時候很實用
$ @2T - Entries from "/etc/hosts" //第一次見到
$ =2T - Output like ls or dir //好像還不如 ls 快捷
補充:
Esc + T - 交換光標前面的兩個單詞
表2-1 瀏覽命令行的擊鍵
擊鍵 |
全名 |
含義 |
Ctrl+F |
字符向前 |
向前移動一個字符 |
Ctrl+B |
字符向后 |
向后移動一個字符 |
Alt+F |
單詞向前 |
向前移動一個單詞 |
Alt+B |
單詞向后 |
向后移動一個單詞 |
Ctrl+A |
行頭 |
到當前行的開始 |
Ctrl+E |
行尾 |
到行的末尾 |
Ctrl+L |
清屏 |
清除屏幕,並在屏幕頂端留下一行 |
表2-2中的擊鍵可以用來編輯命令行。
表2-2 編輯命令行的擊鍵
擊鍵 |
全名 |
含義 |
Ctrl+D |
刪除當前內容 |
刪除當前字符 |
Backspace或Rubout |
刪除以前內容 |
刪除前一個字符 |
Ctrl+T |
調換字符 |
交換當前字符和前一個字符的位置 |
Alt+T |
調換單詞 |
交換當前單詞和前一個單詞的位置 |
Alt+U |
大寫單詞 |
將當前單詞變為大寫 |
Alt+L |
小寫單詞 |
將當前單詞變為小寫 |
Alt+C |
首字母大寫 |
將當前單詞的首字母變為大寫 |
Ctrl+V |
插入特殊字符 |
添加特殊字符。例如,按Ctrl+V+Tab可添加一個Tab字符 |
使用表2-3中的擊鍵可在命令行上剪切和粘貼文本。
表2-3 在命令行上剪切和粘貼文本的擊鍵
擊鍵 |
全名 |
含義 |
Ctrl+K |
剪切行尾 |
剪切文本到該行末尾 |
Ctrl+U |
剪切行頭 |
剪切文到該行開頭 |
Ctrl+W |
剪切前個單詞 |
剪切光標前的一個單詞 |
Alt+D |
剪切下個單詞 |
剪切光標后的一個單詞 |
Ctrl+Y |
粘貼最近的文本 |
粘貼最近剪切的文本 |
Alt+Y |
粘貼早期的文本 |
輪回到先前剪切的文本並粘貼它 |
Ctrl+C |
刪除整行 |
刪除一整行 |
表2-4 用於文本補全的組合鍵
組合鍵 |
用於 |
|
Alt+~ |
用用戶名補全文本 |
|
Alt+$ |
用變量補全文本 |
|
Alt+@ |
用主機名補全文本 |
|
Alt+! |
用命令名(以別名、保留字、 Ctrl+X+/ |
列出可能的補全用戶名文本 |
Ctrl+X+$ |
列出可能的補全環境變量 |
|
Ctrl+X+@ |
列出可能的補全主機名 |
|
Ctrl+X+! |
列出可能的補全命令名 |
表2-5 使用命令歷史的擊鍵
鍵 |
功 能 名 |
描 述 |
方向鍵 |
步進 |
按上和下箭頭可步進瀏覽歷史列表中的每個命令行,直到所需的位置(Ctrl+P和Ctrl+N分別有同樣的功能) |
Ctrl+R |
反向漸進搜索 |
按下這些鍵后,輸入一個搜索字符串進行反向搜索。輸入此字符串后,匹配的命令行即會出現,可以運行或編輯它 |
Ctrl+S |
前向漸進搜索 |
與前一個功能相似,只不過是前向搜索 |
反向搜索 |
按下這些鍵后,輸入一個字符串進行反向搜索。輸入一個字符串並且按Enter鍵可看到包含該字符串的最近已用命令 |
|
Alt+N |
前向搜索 |
與前一個功能類似,只不過是前向搜索 |
Alt+< |
歷史列表的開頭 |
到歷史列表的第一項 |
Alt+> |
歷史列表的末尾 |
到歷史列表的最后一項 |