tab 自動補齊(有不知道的嗎)
Ctrl+u 刪除(剪切)此處至開始全部內容linux
Ctrl+k 刪除從光標所在位置到行末nginx
快速命令行 – 快捷方式
• history 搜索歷史執行過的命令
• ctrl+l 清屏
• Reset 刷新終端屏幕,尤爲是終端出現字符不清晰或亂碼時特管用 (和ctrl + l有什麼區別? )
• ctrl+c 刪除整行或中止當前任務
• ctrl+z 使正在運行在終端的任務,轉入後臺(可用fg恢復到前臺)shell
快速命令行 – 快捷方式
• ctrl+a 移動到當前行的開頭(a ahead)
• ctrl+e 移動到當前行的結尾(e end)
• ctrl+s 使終端發呆,靜止,可使快速輸出的終端屏幕停下來或者 ctrl+c直接終止。
• ctrl+q 退出ctrl+s引發的發呆。
• ctrl+d 在空命令行的狀況下能夠退出終端。vim
快速命令行 – 快捷方式
• !! 再次執行最後一次命令
• !num 再次執行編號爲num的歷史命令
• ls !$ 執行命令ls,並以上一條命令的參數爲其參數windows
SecureCRT終端配置
• 彩色終端ruby
• 快速拷貝、粘貼bash
直接劃過,而後粘貼就能夠了less
• 使用標籤頁, 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次文件名
vi編輯器中的不少命令都是基於光標當前位置的,所以,如何移動光標定位到所須要的位置是一項十分重要的工做,下面進行詳細介紹(如無特別說明,下面所講的命令都是在普通模式下執行)。
將光標向前移動一個字符可使用命令爲:l、Space鍵或方向鍵→。若是在命令前加一個數字n,就是將光標向前移動n個字符,例如:
#include<stdio.h>
假設當前光標在include中的字符c上,則使用5l後,光標將移動到e處。可是要注意:光標的移動不能超過當前行的末尾,固然若是給出的數字超過當前光標到行末尾的字符個數,那麼也只能移到行尾。
將光標向後移動一個字符可使用命令爲:h、空格鍵或方向鍵←。同上面相似,若是在命令前加一個數字n,就將光標向後移動n個字符,並且光標不能超出行首。
將光標移到下一行能夠用的命令:+、Enter鍵、j、Ctrl+n或方向鍵↓。這些命令之間是有差異的,+和Enter鍵是將光標移到下一行的行首,其他命令僅是移到下一行,所在的列不變。若是下一行比當前光標所在位置還短,則下標到行尾。
將光標上移一行可使用的命令:-、k、Ctrl+p或方向鍵↑。同上面的命令相似,-命令將光標移到上一行行首,而另外3個保持在同一列。
將光標移到當前行的行首使用的命令爲0和^。這兩個命令在使用時的差異在於命令0是將光標移到當前行的第一個字符,無論它是否爲空白符,而命令^將光標移到當前行的第一個非空白符。
將光標移到當前行的行尾使用的命令爲$。光標移至行尾後,停留在最後一個字符上,若是在該命令前加數字n,則光標將下移到n-1行的行尾。
將光標按詞前移使用的命令爲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。
將光標後移的命令是b和B,這兩個命令都是將光標後移至上一個單詞的開頭,一樣,他們對詞的定義是有區別的。
將光標移至當前字符所在詞尾的命令是e和E。它們對詞的定義與上面的相似。
將光標移至指定行的開頭能夠用命令以下:
注意:第一個命令是在命令模式下執行的,而非普通模式。若是沒給出行號要顯示行號能夠用以下命令顯示行號:
:set number
:ser nu
如圖1-11所示。
圖1-11 在vi編輯器中顯示行號
將行號去掉可使用命令:
:set nonumber
:set nonu
文本的輸入、刪除與修改是文件編輯的基本操做,其中大部分命令會將vi編輯器由普通模式切換爲編輯模式,下面來介紹這些命令。
文本的插入命令爲i和I。其中i是將其後輸出的字符插入到當前光標位置以前。命令I是將其後輸入的字符插入到當前光標所在行的行首。
附加文本的命令爲a和A,其中命令a是將其後輸入的字符插入到當前光標位置以後,而命令A則是將其後輸入的字符追加到當前光標所在行的行尾。
另起新行的命令爲o和O,其中命令o是在當前行的下面另起一行,命令O是在當前行的上面另起一行。新行建立完後,光標停留在新行行首,等待輸入文字。
刪除字符的命令爲x和X。其中命令x刪除光標所在處的字符,而命令X刪除光標前面的那個字符。若是以前給出一個數字n,則刪除由光標所在字符開始向右的n個字符。
命令dd刪除光標所在的行,命令D刪除從光標所在位置開始到行尾的全部字符。
字母d能夠與光標移動命令組合,例如:
修改文本的命令爲c、C和cc,它們的做用是用新輸入的文本取代原來的文本,這等價於將原來的文本刪除後,利用命令i插入新的文本。
例若有一字符串:Hello World!
假設光標當前處在e處,輸入命令cw後,屏幕顯示以下:
H World!
此時光標處在H後的空格處,接着輸入文本i後按Esc鍵,屏幕顯示以下:
Hi World!
從上面能夠看出,cw只是修改光標當前位置到詞尾的字符,若是要修改整個單詞,可使用命令caw。
C命令用來修改從光標位置到行尾的文本。若是在前面加一個數字n,那麼會把從當前光標位置至當前行下面的n-1行的內容都刪除。
命令cc的功能和C相同,只是修改的範圍不一樣,它修改光標所在的整行內容。
取代文本的命令爲r和R。其中命令r是用其後輸入的單個字符取代光標所在的字符,若是在r前加一個數字n,則用其後輸入的單個字符取代光標所在處開始向後的n個字符。
R命令用其後輸入的文本取代光標所在處開始的若干個字符,每輸入一個字符就取代原有的一個字符,多出的部分附加在後面。
vi編輯器中的緩衝區分爲無名緩衝區和命名緩衝區。無名緩衝區以數字編號,一共有9個。前面講過可使用刪除命令x和dd來刪除文本,其實被刪除的內容還保存在緩衝區中,最近一次刪除的內容被保存在緩衝區1中,次近的在緩衝區2中,以此類推,咱們可使用命令把他們提取回來。
粘帖緩衝區內容的命令是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,單個雙引號後緊跟緩衝區的編號。
命名緩衝區是以字母a~z命名的,利用命名緩衝區能夠很好地保存若干文本段,便於之後存取、移動或者重排。訪問這些緩衝區時,和前面同樣,使用單個雙引號。
複製文本的命令有以下兩種格式:
yy
y<光標移動命令>
其中yy表示複製整行內容,然後者則經過光標移動命令來限定被複制的文本,若是沒有指定緩衝區的名字,文本就被插入到無名緩衝區中。若是用大寫字母表示緩衝區,則文本就附加到該緩衝區中,緩衝區中原有的內容不會被覆蓋。
使用的命令爲co,它的基本格式以下:
:<開始行>,<結束行> co <目標行>
這個命令在命令模式下執行,其中開始行和結束行標識了文本複製的範圍,而目標行則是文本粘帖的位置。
/str向前查找字符串str,並將光標定位在str的第一個字母上,方便繼續操做,按下「/」鍵後光標跳到vi窗口的最後一行,而後等待輸入要查找的字符串,輸入完成後按Enter鍵開始搜索,這時編輯器會高亮顯示搜索結果。接下來可使用命令n來實現光標在搜索結果中移動。
命令?與/的工做方式相同,只有搜索方向相反。
使用上面介紹的命令,例如/the來查找時,可能須要搜索匹配單詞soothe和there,這時須要使用以下的形式:
/\<the\>
同理,要匹配一行的開頭與結尾須要使用^和$字符,例如:
big$
這個命令只能匹配到一行末尾的單詞big。
:set ignorecase
若是不關心目標字符串中的大小寫,能夠用上面的命令來設置。
:set nowrapscan
上面的命令是在輸入目標字符串的過程當中vi就開始搜索工做,即就是未完成輸入事就能找到目標。
使用的命令爲s和S,其中命令s用隨後輸入的文本替換光標所在處的字符。命令S將新輸入的文本替換當前整行。
全局替換命令有幾種經常使用的格式:
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.txt
shell經常使用通配符:
字符 | 含義 |
---|---|
* |
匹配 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
地方