Linux 命令快捷键
Linux 命令快捷鍵
?
tab 自動補齊(有不知道的嗎)
Ctrl+u 刪除(剪切)此處至開始所有內容
Ctrl+k 刪除從光標所在位置到行末
快速命令行 – 快捷方式
? history 搜索歷史執行過的命令
? ctrl+l 清屏
? Reset 刷新終端屏幕,尤其是終端出現字符不清晰或亂碼時特管用 (和ctrl + l有什么區別? )
? ctrl+c 刪除整行或停止當前任務
? ctrl+z 使正在運行在終端的任務,轉入后臺(可用fg恢復到前臺)
快速命令行 – 快捷方式
? ctrl+a 移動到當前行的開頭(a ahead)
? ctrl+e 移動到當前行的結尾(e end)
? ctrl+s 使終端發呆,靜止,可以使快速輸出的終端屏幕停下來或者 ctrl+c直接終止。
? ctrl+q 退出ctrl+s引起的發呆。
? ctrl+d 在空命令行的情況下可以退出終端。
快速命令行 – 快捷方式
? !! 再次執行最后一次命令
? !num 再次執行編號為num的歷史命令
? ls? !$ 執行命令ls,并以上一條命令的參數為其參數
SecureCRT終端配置
? 彩色終端
? 快速拷貝、粘貼
直接劃過,然后粘貼就可以了
? 使用標簽頁, ctrl + tab / ctrl + shift + tab快速切換
VIM
? :set encoding= ?(選項utf8,gb2312,cp936,latin1?)設置字符集,解決亂碼
? ~ 光標所在處的字符進行大小寫互換
其他
? tailf?-n 30 notes :指定從notes 文件末尾開始讀取00行,?顯示會一直繼續,直到您按下Ctrl-C 按鍵順序來停止。
? /sbin/lspci 查看物理信息
? cp/mv file{,.new} 直接拷貝/移動成新文件,無需寫2次文件名
?
1.4 光標移動
vi編輯器中的很多命令都是基于光標當前位置的,因此,如何移動光標定位到所需要的位置是一項十分重要的工作,下面進行詳細介紹(如無特別說明,下面所講的命令都是在普通模式下執行)。
1. 向前移動字符
將光標向前移動一個字符可以使用命令為:l、Space鍵或方向鍵→。如果在命令前加一個數字n,就是將光標向前移動n個字符,例如:
#include<stdio.h>
假設當前光標在include中的字符c上,則使用5l后,光標將移動到e處。但是要注意:光標的移動不能超過當前行的末尾,當然如果給出的數字超過當前光標到行末尾的字符個數,那么也只能移到行尾。
2. 向后移動字符
將光標向后移動一個字符可以使用命令為:h、空格鍵或方向鍵←。同上面類似,如果在命令前加一個數字n,就將光標向后移動n個字符,而且光標不能超出行首。
3. 移到下一行
將光標移到下一行可以用的命令:+、Enter鍵、j、Ctrl+n或方向鍵↓。這些命令之間是有差別的,+和Enter鍵是將光標移到下一行的行首,其余命令僅是移到下一行,所在的列不變。如果下一行比當前光標所在位置還短,則下標到行尾。
4. 移到上一行
將光標上移一行可以使用的命令:-、k、Ctrl+p或方向鍵↑。同上面的命令類似,-命令將光標移到上一行行首,而另外3個保持在同一列。
5. 移至行首
將光標移到當前行的行首使用的命令為0和^。這兩個命令在使用時的差別在于命令0是將光標移到當前行的第一個字符,不管它是否為空白符,而命令^將光標移到當前行的第一個非空白符。
6. 移至行尾
將光標移到當前行的行尾使用的命令為$。光標移至行尾后,停留在最后一個字符上,如果在該命令前加數字n,則光標將下移到n-1行的行尾。
7. 按詞前移
將光標按詞前移使用的命令為w和W。這兩個命令都是將光標向前移至下一個單詞的開頭,它們的區別在:命令w搜索詞被定義為以標點符號或空白符(如制表符、換行符或空格符)分隔的字母或數字串;而命令W搜索的詞被定義為非空白符字符串。例如有字符串:
echo l > /proc/sys/net/ipv4/conf/default/rp_filter
連續輸入命令w,光標從行首移動的位置為:e、l、>、/、p、s、…、/、r、r。
而命令W,光標從行首移動的位置為:e、l、>、/、r。
8. 按詞后移
將光標后移的命令是b和B,這兩個命令都是將光標后移至上一個單詞的開頭,同樣,他們對詞的定義是有區別的。
9. 移至詞尾
將光標移至當前字符所在詞尾的命令是e和E。它們對詞的定義與上面的類似。
10. 移至指定行
將光標移至指定行的開頭可以用命令如下:
- :行號
- 行號G
注意:第一個命令是在命令模式下執行的,而非普通模式。如果沒給出行號要顯示行號可以用如下命令顯示行號:
:set number
:ser nu
如圖1-11所示。
圖1-11 在vi編輯器中顯示行號
將行號去掉可以使用命令:
:set nonumber
:set nonu
?
1.6 文本輸入、刪除與修改
文本的輸入、刪除與修改是文件編輯的基本操作,其中大部分命令會將vi編輯器由普通模式切換為編輯模式,下面來介紹這些命令。
1. 插入命令
文本的插入命令為i和I。其中i是將其后輸出的字符插入到當前光標位置之前。命令I是將其后輸入的字符插入到當前光標所在行的行首。
2. 附加命令
附加文本的命令為a和A,其中命令a是將其后輸入的字符插入到當前光標位置之后,而命令A則是將其后輸入的字符追加到當前光標所在行的行尾。
3. 另起新行
另起新行的命令為o和O,其中命令o是在當前行的下面另起一行,命令O是在當前行的上面另起一行。新行創建完后,光標停留在新行行首,等待輸入文字。
4. 刪除字符
刪除字符的命令為x和X。其中命令x刪除光標所在處的字符,而命令X刪除光標前面的那個字符。如果之前給出一個數字n,則刪除由光標所在字符開始向右的n個字符。
5. 刪除文本對象
命令dd刪除光標所在的行,命令D刪除從光標所在位置開始到行尾的所有字符。
字母d可以與光標移動命令組合,例如:
- d^:從光標位置刪至行首,不包括光標位。
- d$:從光標位置刪至行尾,包括光標位,與D作用相同。
- dG:刪除當前行至文件尾的內容。
- Dgg:刪除當前行至文件頭的內容。
6. 修改命令
修改文本的命令為c、C和cc,它們的作用是用新輸入的文本取代原來的文本,這等價于將原來的文本刪除后,利用命令i插入新的文本。
例如有一字符串:Hello World!
假設光標當前處在e處,輸入命令cw后,屏幕顯示如下:
H World!
此時光標處在H后的空格處,接著輸入文本i后按Esc鍵,屏幕顯示如下:
Hi World!
從上面可以看出,cw只是修改光標當前位置到詞尾的字符,如果要修改整個單詞,可以使用命令caw。
C命令用來修改從光標位置到行尾的文本。如果在前面加一個數字n,那么會把從當前光標位置至當前行下面的n-1行的內容都刪除。
命令cc的功能和C相同,只是修改的范圍不同,它修改光標所在的整行內容。
7. 取代命令
取代文本的命令為r和R。其中命令r是用其后輸入的單個字符取代光標所在的字符,如果在r前加一個數字n,則用其后輸入的單個字符取代光標所在處開始向后的n個字符。
R命令用其后輸入的文本取代光標所在處開始的若干個字符,每輸入一個字符就取代原有的一個字符,多出的部分附加在后面。
1.7 復制與粘帖
vi編輯器中的緩沖區分為無名緩沖區和命名緩沖區。無名緩沖區以數字編號,一共有9個。前面講過可以使用刪除命令x和dd來刪除文本,其實被刪除的內容還保存在緩沖區中,最近一次刪除的內容被保存在緩沖區1中,次近的在緩沖區2中,以此類推,我們可以使用命令把他們提取回來。
1. 粘帖
粘帖緩沖區內容的命令是p和P,這兩個命令的區別是:命令p將文本放在當前行之下或當前光標之后,而命令P將文本放在當前行之上或光標之前。
例:使用vi編輯器打開如下文件,然后進行刪除和粘帖操作。
| 1 2 3 4 5 6 | case?5: case?4: case?3: case?2: case?1: case?0: |
假設光標當前出在第2行,連續執行dd命令4次,屏幕如下:
| 1 2 | case?5: case?0: |
輸入命令p,則在屏幕顯示如下:
| 1 2 3 | case?5: case?0: case?1: |
輸入命令”3p,則屏幕顯示如下:
| 1 2 3 4 | case?5: case?0: case?1: case?3: |
注意:”3用來引用緩沖區3,單個雙引號后緊跟緩沖區的編號。
2. 復制
命名緩沖區是以字母a~z命名的,利用命名緩沖區可以很好地保存若干文本段,便于以后存取、移動或者重排。訪問這些緩沖區時,和前面一樣,使用單個雙引號。
復制文本的命令有如下兩種格式:
yy
y<光標移動命令>
其中yy表示復制整行內容,而后者則通過光標移動命令來限定被復制的文本,如果沒有指定緩沖區的名字,文本就被插入到無名緩沖區中。如果用大寫字母表示緩沖區,則文本就附加到該緩沖區中,緩沖區中原有的內容不會被覆蓋。
3. 不使用緩沖區的復制與移動
使用的命令為co,它的基本格式如下:
:<開始行>,<結束行> co <目標行>
這個命令在命令模式下執行,其中開始行和結束行標識了文本復制的范圍,而目標行則是文本粘帖的位置。
1.8 查找與替換
1. 查找
/str向前查找字符串str,并將光標定位在str的第一個字母上,方便繼續操作,按下“/”鍵后光標跳到vi窗口的最后一行,然后等待輸入要查找的字符串,輸入完成后按Enter鍵開始搜索,這時編輯器會高亮顯示搜索結果。接下來可以使用命令n來實現光標在搜索結果中移動。
命令?與/的工作方式相同,只有搜索方向相反。
使用上面介紹的命令,例如/the來查找時,可能需要搜索匹配單詞soothe和there,這時需要使用如下的形式:
/\<the\>
同理,要匹配一行的開頭與結尾需要使用^和$字符,例如:
big$
這個命令只能匹配到一行末尾的單詞big。
:set ignorecase
如果不關心目標字符串中的大小寫,可以用上面的命令來設置。
:set nowrapscan
上面的命令是在輸入目標字符串的過程中vi就開始搜索工作,即就是未完成輸入事就能找到目標。
2. 替換命令
使用的命令為s和S,其中命令s用隨后輸入的文本替換光標所在處的字符。命令S將新輸入的文本替換當前整行。
3. 全局替換
全局替換命令有幾種常用的格式:
g/s1/s//s2/
將包含字符串s1的所有行中用字符串s2替換s1的首次出現,即就是將所有行中第一次出現的s1替換為s2。
例如程序如下:
| 1 2 3 4 5 6 7 | int?main() { ????int?x; ????for(x=1;x<=10;x++) ????????printf(“%d\n”,x); ????return?0; } |
輸入命令g/x/s//abc/后,上面的程序變為:
| 1 2 3 4 5 6 7 | int?main() { ????int?abc; ????for(abc=1;x<=10;x++) ????????printf(“%d\n”,abc); ????return?0; } |
可以看到每行中存在x的第一次出現處都被換為abc。
如果要將文件中的所有字符串s1都替換為字符串s2,則使用如下命令:
g/s1/s//s2/g
例如程序如下:
| 1 2 3 4 5 6 7 | int?main() { ????int?x; ????for(x=1;x<=10;x++) ????????printf(“%d\n”,x); ????return?0; } |
輸入命令g/x/s//abc/g后,上面的程序變為:
| 1 2 3 4 5 6 7 | int?main() { ????int?abc; ????for(abc =1; abc <=10; abc ++) ????????printf(“%d\n”, abc); ????return?0; } |
可以看到所有的x都被替換為abc了。
| 1 | g/s1/s//s2/gc |
該命令基本與上面的功能相同,只是在替換之前給出提示要求確認,如果回答y則進行替換,否則不作替換。
命令模式:在Linux終端中輸入“vim 文件名”就進入了一般模式,但不能輸入文字。
編輯模式:在一般模式下按i就會進入編輯模式,此時就可以寫程式,按Esc可回到命令模式。
未行模式:在一般模式下按:就會進入命令模式,左下角會有一個冒號出現,此時可以敲入命令并執行。
命令模式:
i 在光標前進入
I 在行首進入
a 在光標后進入
A 在行末進入
o 在光標所在行的下一行行首并進入編輯模式?
O 在光標所在行的上一行行首并進入編輯模式
cw 修改一個單詞
dw 刪除一個單詞
dd 刪除一行
u 撤銷上一次操作
CTRL+r 重新上一次操作
GG 光標快速回到文件底部
gg 光標快速回到文件首部
4dd 刪除光標所在行開始的4行
p 在光標下一行進行粘貼
yy 復制一行
d$ 刪除光標后面的字符到行末
?
?
末行模式:
q 退出
q! 強制退出
w 保存
wq 保存并退出
wq! 強制保存并退出
set nonu 不顯示行數
set nu 顯示行數
set autoindent 自動對齊
set noautoindent 取消自動對齊
1,5s/mail/gmail/g 全局替換(1-5行)
1,$s/mail/gmail/g 全局替換
按鍵 作用
Ctrl+d 鍵盤輸入結束或退出終端
Ctrl+s 暫定當前程序,暫停后按下任意鍵恢復運行
Ctrl+z 將當前程序放到后臺運行,恢復到前臺為命令fg
Ctrl+a 將光標移至輸入行頭,相當于Home鍵
Ctrl+e 將光標移至輸入行末,相當于End鍵
Ctrl+k 刪除從光標所在位置到行末
Ctrl+u 刪除從光標所在位置到行頭
Alt+Backspace 向前刪除一個單詞
Shift+PgUp 將終端顯示向上滾動
Shift+PgDn 將終端顯示向下滾動
?
?
學會使用通配符
通配符是一種特殊語句,主要有星號(*)和問號(?),用來對對字符串進行模糊匹配(比如文件名,參數名)。當查找文件夾時,可以使用它來代替一個或多個真正字符;當不知道真正字符或者懶得輸入完整名字時,常常使用通配符代替一個或多個真正的字符。
終端里面輸入的通配符是由shell處理的,不是由所涉及到命令語句處理的,它只會出現在命令的“參數值”里(它不用在 命令名稱里, 命令不記得,那就用Tab補全)。當shell在“參數值”中遇到了通配符時,shell會將其當作路徑或文件名去在磁盤上搜尋可能的匹配:若符合要求的匹配存在,則進行代換(路徑擴展);否則就將該通配符作為一個普通字符傳遞給“命令”,然后再由命令進行處理。總之,通配符 實際上就是一種shell實現的路徑擴展功能。在 通配符被處理后, shell會先完成該命令的重組,然后再繼續處理重組后的命令,直至執行該命令。
說了這么多,感覺來感受下吧
先使用touch命令創建2個文件,后綴都為txt
$ touch adsfasd.txt wergjlkas.txt文件名有點怪?我是故意的,意思是你可以隨便輸入什么文件名。然后意外發生了,過了很長時間,你已經忘了這兩個文件的文件名,現在你想在你大堆其他文件中找到這兩個文本文件怎么辦呢,這時候你就可以使用通配符了
$ ls *.txt就這哦,沒啥了不起嘛,不慌,還有更厲害的,如果在windows中要你一次性創建一些這樣的文件你該怎么做,“love_1_linux.txt, love_2_linux.txt,... love_10_linux.txt”,不知道咋辦了吧。不過這對linux來說也是小意思
$ touch love_{1..10}_linux.txtshell常用通配符:
| * | 匹配 0 或多個字符 |
| ? | 匹配任意一個字符 |
| [list] | 匹配 list 中的任意單一字符 |
| [!list] | 匹配 除list 中的任意單一字符以外的字符 |
| [c1-c2] | 匹配 c1-c2 中的任意單一字符 如:[0-9] [a-z] |
| {string1,string2,...} | 匹配 sring1 或 string2 (或更多)其一字符串 |
| {c2..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
這下滿足了你了吧
地方
?
學會在命令行中獲取幫助
設想一下,假如你是一個嬌小柔弱的妹子,當你遇到體力活時,你會怎么辦呢,哈哈,不用多想肯定是找man(男人)來幫忙。 沒錯,我們在linux環境中,如果你遇到困難的話,無論男女,是否嬌弱,你都可以找man(男人)來幫忙,不過要明白它不是真的man,只是Manual page的縮寫。
Manual pages是在Unix或類Unix操作系統在線軟件文檔的一種普遍的形式。 內容包括計算機程序(包括庫和系統調用),正式的標準和慣例,甚至是抽象的概念。用戶可以通過執行man命令調用手冊頁。
你可以使用如下方式來獲得某個命令的說明和使用方式的詳細介紹
$ man <command_name>比如你想查看man命令本身的使用方式,你可以輸入
man man通常情況下,man手冊里面的內容都是英文的,這就要求你有一定的英文基礎。man手冊的內容很多,涉及了linux使用過程中的方方面面,為了便于查找,是做了分冊(分區段)處理的,在Research Unix、BSD、OS X和Linux中,手冊通常被分為8個區段,安排如下:
| 1 | 一般命令 |
| 2 | 系統調用 |
| 3 | 庫函數,涵蓋了C標準函數庫 |
| 4 | 特殊文件(通常是/dev中的設備)和驅動程序 |
| 5 | 文件格式和約定 |
| 6 | 游戲和屏保 |
| 7 | 雜項 |
| 8 | 系統管理命令和守護進程 |
要查看相應區段的內容,就在man后面加上相應區段的數字即可,如:
$ man 3 printf所有的手冊頁遵循一個常見的布局,其為通過簡單的ASCII文本展示而優化,而這種情況下可能沒有任何形式的高亮或字體控制。一般包括以下部分內容:
NAME(名稱)
該命令或函數的名稱,接著是一行簡介。
SYNOPSIS(概要)
對于命令,正式的描述它如何運行,以及需要什么樣的命令行參數。對于函數,介紹函數所需的參數,以及哪個頭文件包含該函數的定義。
DESCRIPTION(說明)
命令或函數功能的文本描述。
EXAMPLES(示例)
常用的一些示例。
SEE ALSO(參見)
相關命令或函數的列表。
也可能存在其他部分內容,但這些部分沒有得到跨手冊頁的標準化。常見的例子包括:OPTIONS(選項),EXIT STATUS(退出狀態),ENVIRONMENT(環境),BUGS(程序漏洞),FILES(文件),AUTHOR(作者),REPORTING BUGS(已知漏洞),HISTORY(歷史)和COPYRIGHT(版權)。
通常man手冊中的內容很多,你可能不太容易找到你想要的結果,不過幸運的是你可以在man中使用搜索,/<你要搜索的關鍵字>,查找到后你可以使用n鍵切換到下一個關鍵字所在處,shift+n為上一個關鍵字所在處。使用Space(空格鍵)翻頁,Enter(回車鍵)向下滾動一行,或者使用j,k(vim編輯器的移動鍵)進行向前向后滾動一行。按下h鍵為顯示使用幫助(因為man使用less作為閱讀器,實為less工具的幫助),按下q退出
想要獲得更詳細的幫助,你還可以使用info命令,不過通常使用man就足夠了。如果你知道某個命令的作用,只是想快速查看一些它的某個具體參數的作用,那么你可以使用--help參數,大部分命令都會帶有這個參數,如
$ ls --help地方
?
轉載于:https://www.cnblogs.com/MYSQLZOUQI/p/4165123.html
總結
以上是生活随笔為你收集整理的Linux 命令快捷键的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟字符设备驱动开发步骤
- 下一篇: Linux LED驱动开发实验(直接操作