1. 程式人生 > >命令實戰解析

命令實戰解析

實戰 inux 怎麽 nco word 換行 Coding 常用 我們

1、split

按照指定的行數或大小分隔文件

split [option] ...[input[prefix]]

-l 指定行數 split -l 10 /etc/inittab new_

-a 指定生成文件後綴長度 split -l 10 -a 4 /etc/inittab new2_

-d 使用數字後綴 split -l 10 -d /etc/inittab zhangsan

-b 指定分割大小 split -b 500K /root/haproxy-1.6.3.tar.gz

2、paste

將多個文件的內容合並,與cat命令完成的功能剛好相反

paste [option]...[file]...

-d:分割

-s:列轉換成行

3、sort

sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出

-u : unique 唯一,排序並且排除重復項

-r : reverse 反向排序

-n:number 按照數字進行排序,默認數字會被當作字符串進行比較

4、wc

統計文件行數,單詞數,字節數

-c:統計字節數

-l:統計行數

-m:統計字符數,不能與-c一起使用

-w:統計字數,一個字被定義為由空白、挑格或換行字符分隔的字符串

-L:打印最長行的長度

5、dos2unix

dos2unix是將Windows格式文件轉換為Unix、Linux格式的實用命令。Windows格式文件的換行符為\r\n ,而Unix&Linux文件的換行符為\n. dos2unix命令其實就是將文件中的\r\n 轉換為\n。而unix2dos則是和dos2unix互為孿生的一個命令,它是將Linux&Unix格式文件轉換為Windows格式文件的命令。

此命令參數是Red Hat Enterprise Linux Server release 5.7下dos2unix命令參數,不同版本Linux的dos2nnix命令參數有可能不同。

-h 顯示命令dos2unix聯機幫助信息。

-k 保持文件時間戳不變

-q 靜默模式,不輸出轉換結果信息等

-V 顯示命令版本信息

-c 轉換模式

-o 在源文件轉換,默認參數

-n 留原本的舊檔,將轉換後的內容輸出到新檔案.默認都會直接在原來的文件上修改

6、diff/vimdiff

diff分析兩個文件,並輸出兩個文件的不同的行。diff的輸出結果表明需要對一個文件做怎樣的操作之後才能與第二個文件相匹配【或者這麽理解:與第一個文件相比,第二個文件發生了那些變化】【git diff的結果輸出也是如此】。diff並不會改變文件的內容,但是diff可以輸出一個ed腳本來應用這些改變。
現在讓我們來看一下diff是如何工作的,假設有兩個文件:

//file1.txt
I need to buy apples.
I need to run the laundry.
I need to wash the dog.
I need to get the car detailed.

//file2.txt
I need to buy apples.
I need to do the laundry.
I need to wash the car.
I need to get the dog detailed.

我們使用diff比較他們的不同:
diff file1.txt file2.txt

輸出如下結果:
2,4c2,4
< I need to run the laundry.
< I need to wash the dog.
< I need to get the car detailed.
---
> I need to do the laundry.
> I need to wash the car.
> I need to get the dog detailed.

我們來說明一下該輸出結果的含義,要明白diff比較結果的含義,我們必須牢記一點,diff描述兩個文件不同的方式是告訴我們怎麽樣改變第一個文件之後與第二個文件匹配。我們看看上面的比較結果中的第一行 2,4c2,4 前面的數字2,4表示第一個文件中的行,中間有一個字母c表示需要在第一個文件上做的操作(a=add,c=change,d=delete),後面的數字2,4表示第二個文件中的行。

2,4c2,4 的含義是:第一個文件中的第[2,4]行(註意這是一個閉合區間,包括第2行和第4行)需要做出修改才能與第二個文件中的[2,4]行相匹配。
接下來的內容則告訴我們需要修改的地方,前面帶 < 的部分表示左邊文件的第[2,4]行的內容,而帶> 的部分表示右邊文件的第[2,4]行的內容,中間的 --- 則是兩個文件內容的分隔符號。

7、tr

tr [選項]… 集合1 [集合2]

選項說明:

-c, -C, –complement 用集合1中的字符串替換,要求字符集為ASCII。

-d, –delete 刪除集合1中的字符而不是轉換

-s, –squeeze-repeats 刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。

-t, –truncate-set1 先刪除第一字符集較第二字符集多出的字符

8、tee
在執行Linux命令時,我們可以把輸出重定向到文件中,比如 ls >a.txt,
這時我們就不能看到輸出了,如果我們既想把輸出保存到文件中,又想在屏幕上看到輸出內容,就可以使用tee命令了。
tee命令讀取標準輸入,把這些內容同時輸出到標準輸出和(多個)文件中,tee命令可以重定向標準輸出到多個文件。要註意的是:在使用管道線時,前一個命令的標準錯誤輸出不會被tee讀取。

9、vi/vim

(1)一般模式常用操作
【h(或向左方向鍵)】 光標左移一個字符
【j(或向下方向鍵)】 光標下移一個字符
【k(或向上方向鍵)】 光標上移一個字符
【l(或向右方向鍵)】 光標右移一個字符

【[Ctrl] + f】 屏幕向下移動一頁(相當於Page Down鍵)
【[Ctrl] + b】 屏幕向上移動一頁(相當於Page Up鍵)

【[0]或[Home]】 光標移動到當前行的最前面
【[$]或[End]】 光標移動到當前行的末尾

【G】 光標移動到文件的最後一行(第一個字符處)
【nG】 n為數字(下同),移動到當前文件中第n行
【gg】 移動到文件的第一行,相當於"1G"
【n[Enter]】 光標向下移動n行

【/word】 在文件中查找內容為word的字符串(向下查找)
【?word】 在文件中查找內容為word的字符串(向上查找)
【[n]】 表示重復查找動作,即查找下一個
【[N]】 反向查找下一個
【:n1,n2s/word1/word2/g】 n1、n2為數字,在第n1行到第n2行之間查找word1字符串,並將其替換成word2
【:1,s/word1/word2/g】從第一行(第n行同理)到最後一行查找word1註冊,並將其替換成word2【:1,

s/word1/word2/gc】 功能同上,只不過每次替換時都會讓用戶確認

【x,X】 x為向後刪除一個字符,相當於[Delete],X為向前刪除一個字符,相當於[Backspace]
【dd】 刪除光標所在的一整行
【ndd】 刪除光標所在的向下n行

【yy】 復制光標所在的那一行
【nyy】 復制光標所在的向下n行
【p,P】 p為將已經復制的數據在光標下一行粘貼;P為將已經復制的數據在光標上一行粘貼

【u】 撤消上一個操作
【[Ctrl] + r】 多次撤消
【.】 這是小數點鍵,重復上一個操作

(2)一般模式切換到編輯模式的操作
1、進入插入模式(6個命令)
【i】 從目前光標所在處插入
【I】 從目前光標
【a】 從當前光標所在的下一個字符處開始插入
【A】 從光標所在行的最後一個字符處開始插入
【o】 英文小寫字母o,在目前光標所在行的下一行處插入新的一行並開始插入
【O】 英文大寫字母O,在目前光標所在行的上一行處插入新的一行並開始插入

進入替換模式(2個命令)
【r】 只會替換光標所在的那一個字符一次
【R】 會一直替換光標所在字符,直到按下[ESC]鍵為止
【[ESC]】 退出編輯模式回到一般模式

(3)一般模式切換到命令行模式
【:w】 保存文件
【:w!】 若文件為只讀,強制保存文件
【:q】 離開vi
【:q!】 不保存強制離開vi
【:wq】 保存後離開
【:wq!】 強制保存後離開
【:! command】 暫時離開vi到命令行下執行一個命令後的顯示結果
【:set nu】 顯示行號
【:set nonu】 取消顯示行號
【:w newfile】 另存為
【:set fileencoding】 查看當前文件編碼格式
【:set fileencoding=utf-8】 設置當前文件編碼格式為utf-8,也可以設置成其他編碼格式
【:set fileformat】 查看當前文件的斷行格式(dos\windows,unix或macintosh)
【:set fileformat=unix】 將當前文件的斷行格式設置為unix格式

(4)文件恢復模式
【[O]pen Read-Only】 以只讀方式打開文件
【[E]dit anyway】 用正常方式打開文件,不會載入暫存文件內容
【[R]ecover】 加載暫存文件內容
【[D]elete it】 用正常方式打開文件並刪除暫存文件
【[Q]uit】 按下q就離開vi,不進行其他操作
【[A]bort】 與quit功能類似

(5)塊選擇(一般模式下用)
【v,V】 v:將光標經過的地方反白選擇;V:將光標經過的行反白選擇
【[Ctrl] + v】 塊選擇,可用長方形的方式選擇文本
【y】 將反白的地方復制到剪貼板
【d】 將反白的內容刪除

(6)多文件編輯
【vim file1 file2】 同時打開兩個文件
【:n】 編輯下一個文件
【:N】 編輯上一個文件
【:files】 列出當前用vim打開的所有文件

(7)多窗口功能
【:sp [filename]】 打開一個新窗口,顯示新文件,若只輸入:sp,則兩窗口顯示同一個文件
【[Ctrl] + w + j】 光標移動到下方窗口
【[Ctrl] + w + k】 光標移動到上方窗口
【[Ctrl] + w + q】 離開當前窗口



命令實戰解析