說道命令,就不得不提這個特殊的命令“vi”它不光是命令,還是一個linux下的編輯器。由於時間關系,這裡不在舉例說明,將在以後配置網絡服務時介紹一些vi的實際應用。
vi命令是linux下的全屏幕文本編輯,vi編輯器提供了豐富的編輯功能。這個編輯器十分簡陋,對於初學者很不友好。但是在linux中vi編輯器作用非常大,以後尤其我們在配置各種服務器時修改配置文件時十分有用。
vi編輯器有3種模式:命令模式、輸入模式、末行模式。掌握這三種模式十分重要:
命令模式:vi啟動後默認進入的是命令模式,從這個模式使用命令可以切換到另外兩種模式,同時無論在任何模式下只要按一下[Esc]鍵都可以返回命令模式。在命令模式中輸入字幕“i”就可以進入vi的輸入模式編輯文件。
輸入模式:在這個模式中我們可以編輯、修改、輸入等編輯工作,在編輯器最後一行顯示一個“--INSERT--”標志著vi進入了輸入模式。當我們完成修改輸入等操作的時候我們需要保存文件,這時我們需要先返回命令模式,在進入末行模式保存。
末行模式:在命令模式輸入“:”即可進入該模式,在末行模式中有好多好用的命令。
1.vi的啟動和退出
直接輸入命令vi不指定文件名,由於這是一個沒有命名的空文件,顯示了vi的版本信息。
vim是vi編輯器的改進版本,在vi編輯器的基礎上擴展了很多實用的功能。大多數linux/unix版本都使用vim代替了原有的vi編輯器。或者直接使用vi打開文件,如果文件存在打開存在文件;如果不存在的話,將以我們指定的參數作為文件名。
輸入q!是強制退出,同時沒有保存當前文件內容。如果文件沒有進行修改,或者已經保存完畢也可以使用q退出。保存退出使用wq,保存強制退出wq!
2.保存文件
如果文件已經有文件名,我們在末行模式直接輸入w保存,如果沒有文件名,輸入w 文件名進行保存。例如:w test其中test是文件名。
那麼在vi中也可以另存為,就是在保存完以後,我們再使用w 另存為文件名。
3.光標的移動
在命令模式中可以使用命令進行以下操作。
光標方向的移動,除了可以使用方向鍵,還可以使用以下命令
向上移動光標:k
向左移動光標:h 向右移動光標:l
向下移動光標:j
翻頁命令
Ctrl+F向前翻整頁 Ctrl+U向前翻半頁
Ctrl+B向後翻整頁 Ctrl+D向後翻半頁
行內快數跳轉
^移動到本行行首
$移動到本行行尾
顯示行號和取消行號(末行模式使用)
set nu顯示行號
set nonu取消行號
在命令模式下,使用以下命令可以快速的在行間跳轉
1G跳轉到文件首行
G跳轉到尾行
#G跳轉到文件的#行
4.編輯操作
進入輸入模式命令
i插入命令 a附加命令 o打開命令 c修改命令
r取代命令 s替換命令 Esc退出命令
輸入模式的操作
Home光標到行首
End 光標到行尾
Page Up和Page Down上下翻頁
Delect刪除光標位置的字符
刪除操作(命令模式使用)
x刪除光標處的單個字符
dd刪除光標所在行
dw刪除當前字符到單詞尾包括空格的所有字符
#x例如3x刪除光標處向右的三個字符
#dd例如3dd從當前行開始向下刪除三行文本
撤銷操作
u命令取消最近一次的操作,可以使用多次來恢復原有的操作
U取消所有操作
Ctrl+R可以恢復對使用u命令的操作
復制操作
yy命令復制當前整行的內容到vi緩沖區
yw復制當前光標所在位置到單詞尾字符的內容到vi緩存區,相當於復制一個單詞
y$復制光標所在位置到行尾內容到緩存區
y^復制光標所在位置到行首內容到緩存區
#yy例如:5yy就是復制5行
#yw例如:2yw就是復制兩個單詞
如果要復制第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y復制第三行到第五行內容到緩存區
5.查找和替換
vi的查找和替換功能主要在末行模式完成:
至上而下的查找
/ 要查找的字符竄,其中/代表從光標所在位置起開始查找,例如:/ work
至下而上的查找
?要查找的字符竄 例如:/ work
替換
:s/old/new用new替換行中首次出現的old
: s/old/new/g 用new替換行中所有出現的old
:#,# s/old/new/g用new替換從第#行到第#行中出現的old
:% s/old/new/g用new替換整篇中出現的old
如果替換的范圍較大時,在所有的命令尾加一個c命令,強制每個替換需要用戶進行確認,例如:s/old/new/c 或s/old/new/gc
6恢復文件
vi在編輯某一個文件時,會生成一個臨時文件,這個文件以 . 開頭並以 .swp結尾。正常退出該文件自動刪除,如果意外退出例如忽然斷電,該文件不會刪除,我們在下次編輯時可以選擇一下命令處理:
O只讀打開,不改變文件內容
E繼續編輯文件,不恢復.swp文件保存的內容
R將恢復上次編輯以後未保存文件內容
Q退出vi
D刪除.swp文件
或者使用vi -r 文件名來恢復未保存的內容
vi命令大致給大家介紹這些,其實它的功能很強大的,我們在日常實際使用過程中不斷積累命令的使用方法,相信大家會很快掌握這個命令的。