1.vim 編輯器:html
vim 是 vi 的增強版。與 vim 類似的編輯器還有nano, emacs。安裝 vim:linux
[root@localhost~]# yum install –y vim-enhanced //直接vim也能夠vim
[root@localhost~]# vim +10 /etc/init.d/iptables //進入後光標在第十行編輯器
下面分別介紹一下vim 的三種模式——查看模式,底行模式,編輯模式和各模式下的經常使用操做:ide
1.1 查看模式/通常模式:學習
(1) 移動光標,h j k l 四個鍵分別對應左、下、上、右,在前面加上數字,如5h ,能夠一次性向左移動 5 個字符;spa
(2) G 光標跳轉到尾行, gg 光標跳轉到首行。n(這裏指數字) + G光標跳轉到第 n 行;htm
(3) ^ 光標跳轉到所在行首個非空格字符, B 與 ^ 做用相同, 0 光標跳轉到所在行首個字符(包括空格);blog
(4) x 向後刪除一個字符, X 向前刪除一個字符(Delete鍵下效果相同), n + x / X 向後/向前刪除 n 個字符;ip
(5) dd 刪除光標所在行, n + dd 刪除包括光標所在行及下方共 n 行, dw 刪除光標所在處一個單詞,一樣能夠結合數字鍵使用。D 刪除光標所在處及其後面全部
注:這裏所說的刪除,實際上是剪切到了剪切板,能夠經過 p 鍵進行粘貼。
(6) v 進入光標選擇狀態(可視模式),V 以行做爲單位(可視行模式)。選擇後能夠對選中內容進行刪除複製等操做;
(7) yy 複製光標所在行, n + yy 複製包括光標所在行及其下方共 n 行, p 從當前光標處向下粘貼, 能夠粘貼 x/X , dd , dw 剪切的內容, n + p 粘貼 n 次。P 從當前光標處向上粘貼。
(8) e 光標按單詞依次向後移, E 光標移動到行尾, b 光標按單詞依次向前移, B 光標移動到行首;
更加詳細的使用說明如圖1 :
圖-1 vi/vim鍵位圖
沒必要所有掌握,酌情使用適合本身的快捷鍵便可。
1.2 編輯模式:
(1) i 在當前光標處開始編輯, I 在當前光標所在行第一個符號(該符號不包含空格)處開始編輯;
(2) a 在當前光標下一個字符處開始編輯,A 在當前光標所在行的最後一個字符(該字符包含空格)處開始編輯;
(3) o 在當前光標所在行下方插入一個空行並開始編輯, O 在當前光標所在行上方插入一個空行並開始編輯;
(4) s 刪除當前光標所在處的字符並開始編輯, S 刪除當前光標所在行全部字符並開始編輯。
1.3 底行模式:
使用底行模式前,先用:(半角冒號)或 / 進入底行模式。
(1)搜索: / 向當前光標之下搜索內容, ? 向光標之上搜索內容,n 下一個, N 上一個(對於 / ,下一個就是下一個,而對於 ? , 下一個是向上一個搜索),搜索後會出現高亮,若是使用完搜索功能後想要去除匹配結果的高亮顯示,使用 nohl(no highlight 的縮寫);
(2)替換: 1,$s/root/ROOT/g ,使用 % 能夠代替 1,$, 表示從首行到尾行進行匹配, g 表示替換每行中匹配到的所有內容,不使用 g 則只替換每行中匹配到的第一個內容,固然,使用 3,5s 則替換第三行到第五行;
(3) 跳轉光標::n(這裏 n 爲數字), 光標跳轉到第 n 行;
(4)編輯結束後的操做::q, 不保存退出,修改內容將失效。 :w 保存,保存完成後並不會退出。:wq 保存並退出。 :x 同 :wq 同樣爲保存退出,二者的區別在於,即使沒有作修改, :wq 也會影響三個時間(atime, mtiime, ctime),而 :x 則不影響三個時間。
注:能夠在 :w :wq 後面加路徑和文件名稱,將其直接保存到相應位置的相應文件中,若是文件不存在,則自動建立文件:
:wq/tmp/learn/newfile.log
:w/tmp/learn/newfile.log
2.擴展學習:tee命令 與 查看單詞在文本中出現次數
2.1 tee 命令:
tee 命令用於從標準輸入中讀取內容,以後執行兩個操做——寫入標準輸出(即顯示到顯示器上)並寫入執行文件中,好比如今有以下需求,不使用輸入重定向,將 /etc/passwd 中含有 root 的存入 ~/root.log 文件中:
[root@localhost~]# grep root /etc/passwd | tee root.log
等同於
[root@localhost~]# cat /etc/passwd | grep root | tee root.log
注:積累一下 grep 直接做用於文件的這種用法,在對文件所有內容進行匹配時,使用 grep root/etc/passwd 代替管道用法的 cat /etc/passwd | grep root ,更加方便簡潔。
注:此時若是在 ~/ 目錄下不存在 root.log 文件,則會生成並將匹配結果寫入其中,若是在 ~/ 目錄下存在 root.log 文件,則會覆蓋其中的內容,若是想要在已有文件中追加內容,使用 tee 命令的 –a 參數:
[root@localhost~]# grep root /etc/passwd | tee –o root.log
2.2 查看文本中同一個單詞的出現個數:
這裏使用查看 /etc/passwd文件中 root 單詞出現的個數做爲例子,介紹兩種方法:
方法一: vim 底行模式
[root@localhost~]# vim /etc/passwd
:%s/root/&/gn
4 matches on 2lines
注:若是不使用 n ,則結果爲
4 substitutionson 2 lines
能夠看出來使用 n 只匹配而不替換,不使用 n 則匹配完成後就替換。
方法二: grep 命令配合–o 參數
[root@localhost~]# grep –o root /etc/passwd | wc –l //等同於
[root@localhost~]# cat /etc/passwd | grep –o root | wc –l
-o 參數只輸出文件中匹配到的內容,其中每個獨佔一行,因此可使用 wc –l 統計行數得知其出現次數。
參考資料:http://www.aminglinux.com/bbs/thread-7643-1-1.html