學習一下Linux文件過濾及內容編輯處理,暫時記錄部分內容,后續補充。
純文本編輯器vi/vim
vim是從vi發展出來的一個文本編輯器,但發現到現在已經不僅僅是一個文本編輯器了,還具有代碼補全、編譯等適用於編程的功能出現。vim具有三種模式,分別為命令模式(Command mode)、編輯模式(Insert mode)和底行模式(Lastline mode),其三者存在如下的轉換方式。
如下圖所示,使用vim命令進入命令模式后,有i、a、o三種方式進入編輯模式,其中i代表光標停留在當前光標,a代表往當前光標后移動一位光標,o代表換下行移動光標,暫時只了解這三種。
i:insert
a:append
o:
另外一個是底行模式下命令,除了wq外,還有wq!、q、q!等,其具體意思如下:
(1)wq,write and quite,保存並退出
(2)wq!!是強制的意思,代表強制保存並退出
(3)q 退出不保存
(4)q! 強制退出不保存
(5)set nu 顯示行號
(6)set nonu 不顯示行號
vim還有一些基本常見命令,記錄如下,不區分模式。
進入行首行尾
為了方便更好的理解vim命令,使用echo命令先將部分文本寫入到test.txt文件,並換行輸出。
按$進入當前行尾,按0進入當前行首,具體操作體會。
文件開頭結尾
按gg進入文件開頭,數字+gg進入第多少行,按G進入文件尾部,如圖按下G后進入到了31行。
搜索
/+搜索內容為向下搜索,繼續向下搜按n,反向按N
?+搜索內容為向上搜索,繼續向上搜按n,反向按N
替換
:%s/A/B/g,s代表替換,A是被替換的元素,B是替換后的元素,g是全局替換的意思,g換成數字代表只替換第數字代表的列,其中斜線可以用其他分隔符,如使用#也可以實現。
如下圖使用了%s/chaolin/pengfei/g命令后變成如下結果。
:M,Ns/A/B/g,這個代表替換M~N行的內容,跟上面類似,只是指定行替換內容。
如下圖所示將1~10行將yang修改為YANG。
刪除或剪切
刪除或剪切單行按dd,刪除多行按數字+dd。
如下圖使用25gg先去到25行,然后使用25dd刪除了25行后面的行。
撤銷返回
按u就可以返回。
復制粘貼
單行復制按yy,p粘貼,多行復制數字+yy,p粘貼,粘貼時光標位置移動到要粘貼位置的前一行上。
如下圖將光標移動到第30行按yy,然后將光標在第30行上按p,就自動粘貼到下一行上。
cat命令
cat命令就是查看文件內容命令,cat - concatenate files and print on the standard output,連接文件打印標准輸出。如果想顯示行號,使用參數-n。
more命令
more是可以分頁查看文件內容命令,按回車往下走,按空格就是翻頁走,不能回着看,按q退出。
less命令
less也是可以分頁查看文件內容得命令,按回車往下走,按空格就是翻頁走,可以回着看,按q退出。
head命令
輸出文件的頭部,默認顯示10行,可以使用參數-n+數字來表示自定義行數。
tail命令
輸出文件的尾部,也是默認顯示10行,可以使用參數-n+數字來表示自定義行數,也可以使用參數-f顯示文件尾部實時更新,即tail -f 文件名這個在MES中經常使用查看log實時變化。
如另外連接linux后,使用echo hello >>test.txt命令不斷往test.txt文件尾部添加hello后,原來xshell窗口在使用tail -f test.txt命令后呈現的結果如下圖。
不斷append元素到文件結尾
tail -f test.txt后可以看到實時變化
tac命令
跟cat相反,倒過來顯示文件內容,tac - concatenate and print files in reverse。
如下圖文件頭尾顛倒着顯示。
rev命令
反轉顯示每行內容,rev - reverse lines of a file or files,如下所示。
總結
Linux命令很強大,繼續學習吧。
參考博文:
(1)https://www.cnblogs.com/yangjig/p/6014198.html
(2)https://www.cnblogs.com/youngchaolin/p/10962089.html#_label5