命令實戰解析

2022-08-24 14:18:16 字數 4285 閱讀 3956

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

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】 離開當前視窗

KVO 實戰解析

通過乙個遛狗例子來解析kvo objective c 中的鍵 key 值 value 觀察 kvo 並不是什麼新鮮事物,它 於設計模式中的觀察者模式,其基本思想就是 乙個目標物件管理所有依賴於它的觀察者物件,並在它自身的狀態改變時主動通知觀察者物件。這個主動通知通常是通過呼叫各觀察者物件所提供的介面...

實戰解析 開篇

在思想上兜了一圈,我決定要還是落地走走,否則就可能變成一張大嘴而已。接下來要給大家講解的是我的第乙個大專案 x市動力機房監控,在這個專案中我從乙個畢業生成長為單位的開發骨幹。由於不記得當初的技術保密協議到底是 5年還是 10年,所以出於職業精神,我還是不能把所有專案背景和設計進行介紹,抽取我認為沒有...

實戰spdk perf解析

spdk的perf能夠充分展現nvme 的高效能,那麼怎麼讓這個利器發揮作用呢?下面分享了100 驗證的完整步驟 並解決編譯依賴 確定代測試盤的 bdv 比如我要測 dev nvme6n1,由於perf需要指定這個裝置對應的pcie的bdf位址,那麼改怎麼確定它呢?root test ls alrt...