一、vi編輯器有3種基本工作模式
分別是:命令模式、文本輸入模式、和末行模式。
第一:命令行模式:
該模式是進入vi編輯器後的默認模式。任何時候,不管用戶處於何種模式,按下ESC鍵即可進入命令模式。在該模式下,用戶可以輸入vi命令,用戶管理自己的文檔。此時從鍵盤上輸入的任何字元都被當作編輯命令來解釋。若輸入的字元是合法的vi命令,則vi在接受用戶命令之後完成相應的動作。但需要注意的是,所輸入的命令並不回顯在屏幕上。若輸入的字元不是vi命令,vi會響鈴報警。
第二:文本輸入模式:
在命令模式下輸入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字元都被vi當作文件內容保護起來,並將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按ESC鍵即可。
第三:末行模式:
末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個「:」作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令在執行完後,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入a或者i。如果需要從文本模式返回,則按ESC即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。
實例演示
首先我們使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式
接下來我們按i,然後鍵盤隨便輸入寫內容。
然後按ESC重新進入到命令模式。
在命令模式的情況下,我們按:,進入到了末行模式。
我們輸入wq!,然後回車,強行保存退出。
下次我們再打開對應文件(可用less filename命令打開),即可看到內容已經更改。
補充:
(1)末行模式下:q! 【強制退出不保存】 q【退出不保存】 wq【退出並保存後面也可以加個!】
(2)如果你不想保存直接退出有可以在命令模式下使用「ctrl+z」快捷鍵或者按住「shift」鍵,輸入兩個z即可退出。
更多命令
進入vi的命令:
vi filename :打開或新建文件,並將游標置於第一行首
vi +n filename :打開文件,並將游標置於第n行首
vi + filename :打開文件,並將游標置於最後一行首
vi +/pattern filename:打開文件,並將游標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename….filename :打開多個文件,依次進行編輯
屏幕翻滾類命令:
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。
插入文本類命令:
i :在游標前
I :在當前行首
a:游標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字元
R:替換當前字元及其後的字元,直至按ESC鍵
s:從當前游標位置處開始,以輸入的文本替代指定數目的字元
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行
刪除命令:
ndw或ndW:刪除游標處開始及其後的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本
搜索及替換命令:
/pattern:從游標開始處向文件尾搜索pattern
?pattern:從游標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換
撤銷回退命令:
u 撤銷上一步的操作
Ctrl+r 恢復上一步被撤銷的操作
選項設置:
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶「\」的特殊字元
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息
末行模式命令:
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:wq:保存並退出
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行
寄存器操作:
「?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
「?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
「?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
「?p:取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
『貳』 在linux命令行下如何將指定的幾行內容寫入到一個文件中
覆蓋型寫法 (文件里原來的內容被覆蓋)
echo "aaa" > a.txt
echo aaa > a.txt
添加型寫法 (新內容添加在原來內容的後面)
echo "aaa" >> a.txt
echo aaa >> a.txt
其中 echo >or>> file,
在 user space 中會賦值到 buf 中為 string+換行符,
傳入到 kernel space 時,buf 為 string+換行符,strlen(buf) = strlen(string) + 1;
.8Normal0
echo命令的功能是在顯示器上顯示一段文字,一般起到一個提示的作用。
該命令的一般格式為: echo [ -n ] 字元串
其中選項n表示輸出文字後不換行;字元串能加引號,也能不加引號。用echo命令輸出加引號的字元串時,將字元串原樣輸出;用echo命令輸出不加引號的字元串時,將字元串中的各個單詞作為字元串輸出,各字元串之間用一個空格分割。
功能說明:顯示文字。
語 法:echo [-ne][字元串]或 echo [--help][--version]
補充說明:echo會將輸入的字元串送往標准輸出。輸出的字元串間以空白字元隔開, 並在最後加上換行號。
參 數:-n 不要在最後自動換行
-e 若字元串中出現以下字元,則特別加以處理,而不會將它當成一般
文字輸出:
\a 發出警告聲;
\b 刪除前一個字元;
\c 最後不加上換行符號;
\f 換行但游標仍舊停留在原來的位置;
\n 換行且游標移至行首;
\r 游標移至行首,但不換行;
\t 插入tab;
\v 與\f相同;
\\ 插入\字元;
\nnn 插入nnn(八進制)所代表的ASCII字元;
–help 顯示幫助
–version 顯示版本信息
ECHO命令是大家都熟悉的DOS批處理命令的一條子命令,但它的一些功能和用法也許你並不是全都知道,不信你瞧:
1. 作為控制批處理命令在執行時是否顯示命令行自身的開關 格式:ECHO [ON|OFF] 如果想關閉「ECHO OFF」命令行自身的顯示,則需要在該命令行前加上「@」。
2. 顯示當前ECHO設置狀態 格式:ECHO
3. 輸出提示信息格式:ECHO信息內容上述是ECHO命令常見的三種用法,也是大家熟悉和會用的,但作為DOS命令淘金者你還應該知道下面的技巧:
4. 關閉DOS命令提示符 在DOS提示符狀態下鍵入ECHO OFF,能夠關閉DOS提示符的顯示使屏幕只留下游標,直至鍵入ECHO ON,提示符才會重新出現。
5. 輸出空行,即相當於輸入一個回車格式:ECHO.值得注意的是命令行中的「.」要緊跟在ECHO後面中間不能有空格,否則「.」將被當作提示信息輸出到屏幕。另外「.」可以用,:;」/[/]+等任一符號替代。在下面的例子中ECHO.輸出的回車,經DOS管道轉向作為TIME命令的輸入,即相當於在TIME命令執行後給出一個回車。所以執行時系統會在顯示當前時間後,自動返回到DOS提示符狀態: C:〉ECHO.|TIME ECHO命令輸出空行的另一個應用實例是:將ECHO.加在自動批處理文件中,使原本在屏幕下方顯示的提示畫面,出現在屏幕上方。
6. 答復命令中的提問格式:ECHO答復語|命令文件名上述格式可以用於簡化一些需要人機對話的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,它是通過DOS管道命令把ECHO命令輸出的預置答復語作為人機對話命令的輸入。下面的例子就相當於在調用的命令出現人機對話時輸入「Y」回車: C:〉ECHO Y|CHKDSK/F C:〉ECHO Y|DEL A :*.*
7. 建立新文件或增加文件內容 格式:ECHO 文件內容>文件名 ECHO 文件內容>>文件名 例如:C:〉ECHO @ECHO OFF〉AUTOEXEC.BAT建立自動批處理文件 C:〉ECHO C:/CPAV/BOOTSAFE〉〉AUTOEXEC.BAT向自動批處理文件中追加內容 C:TYPE AUTOEXEC.BAT顯示該自動批處理文件 @ECHO OFF C:/CPAV/BOOTSAFE
8. 向列印機輸出列印內容或列印控制碼 格式:ECHO 列印機控制碼>PRN ECHO 列印內容>PRN 下面的例子是向M-1724列印機輸入列印控制碼。<Alt>156是按住Alt鍵在小鍵盤鍵入156,類似情況依此類推: C:〉ECHO 〈Alt〉+156〈Alt〉+42〈Alt〉+116〉PRN(輸入下劃線命令FS*t) C:〉ECHO 〈Alt〉+155@〉PRN(輸入初始化命令ESC@) C:〉ECHO.〉PRN(換行)
9. 使喇叭鳴響 C:〉ECHO ^G 「^G」是用Ctrl+G或Alt+007輸入,輸入多個^G可以產生多聲鳴響。使用方法是直接將其加入批處理文件中或做成批處理文件調用。
10.執行ESC控制序列修改屏幕和鍵盤設置我們知道DOS的設備驅動程序ANSI.SYS提供了一套用來修改屏幕和鍵盤設置的ESC控制序列。如執行下述內容的批處理程序可以把功能鍵F12定義為DOS命令「DIR/W」,並把屏幕顏色修改為白色字元藍色背景。 @ECHO」←[0;134;」DIR/W」;13p @ECHO」←[1;37;44m (註:批處理文件中「←」字元的輸入方法是在編輯狀態下按Alt中小鍵盤上的27)
『叄』 linux系統下怎麼用命令行在txt文檔中寫入內容
你的問題有點不夠清楚
1. 如果打開編輯器,進行文本編輯,可以使用vi命令或者vim,打開vim編輯器進行文本編輯。具體命令:
vimfile.txt
當然其他編輯器也可以,比如nano。
2. 如果你不想用編輯器交互的寫入內容,只是使用命令行,最簡單的就是用echo命令:
echo"ThisisBai!">>file.txt
使用">>"表明在目標文檔後追加一行,">"表示用echo後面的內容替換目標文件的內容。