linux——文件編輯


1.VIM基本概述

1.什么是VIM?

vi和vim是Linux下的一個文本編輯工具。(可以理解為windows的記事本,或word文檔)

2.為什么要使用VIM?

因為Linux系統一切皆為文件,而我們工作最多的就是修改某個服務的配置(其實就是修改文件內容)。
也就是說如果沒有vi/vim,我們很多工作都無法完成。PS: vim是學習linux最重要的命令之一

3.VI與VIM有什么區別?

vi和vim都是文本編輯器,只不過vim是vi的增強版,比vi多了語法高亮顯示,其他編輯功能幾乎無差,所以使用vi還是vim取決個人習慣。(相當於windows系統下的文本編輯軟件“記事本”與”notepad++”的區別)
PS:因為前期最小化安裝CentOS系統,所以默認情況下沒有vim命令,但可以使用yum install vim -y安裝

4.如何使用VIM編輯器?

在使用VIM之前,我們需要先介紹下VIM的三種模式: 普通模式、編輯模式、命令模式,每種模式分別支持多種不同的快捷鍵,要想高效率地操作文本,就必須先搞清這三種模式的操作區別以及模式之間的切換方法。
img

5.VIM模式三種模式介紹

1.普通模式: 主要是控制光標移動,可對文本進行復制、粘貼、刪除等工作。
使用vim filename 編輯一個文件時,一進入該文件就是普通模式了。
在這個模式下,可以進行光標移動、復制、刪除、粘貼操作。

2.編輯模式: 主要進行文本內容編輯和修改
從普通模式進入編輯模式,只需你按一個鍵即可(i, I, a, A, o, O)
當進入編輯模式時,會在屏幕的最下一行會出現 “INSERT”標記
從編輯模式回到普通模式只需要按鍵盤左上方的 ESC 鍵即可。

3.末行模式: 主要用於保存或退出文本。
在普通模式下,輸入 “:” 或者 “/“ 即可進入命令模式。
在命令該模式下,可進行的操作有,顯示行號、搜索、替換、保存、退出。

小結: vim編輯打開文件整體流程如下:
1.默認打開文件處於普通模式
2.從普通模式切換至編輯模式需要使用a、i、o
3.編輯模式修改完畢后需要先使用ECS返回普通模式
4.在普通模式輸入”:”或”/“進入命令模式,可實現文件的保存與退出。
PS: 在vim中,無法直接從編輯模式切換到命令模式。

2.VIM模式使用

1.普通模式

#1.命令光標跳轉
G       #光標跳轉至末端
gg      #光標跳轉至頂端
Ngg     #光標跳轉至當前文件內的N行
$       #光標跳轉至當前光標所在行的尾部
^|0     #光標跳轉至當前光標所在行的首部

#2.文件內容較多
ctrl+f  #往下翻頁(行比較多)
ctrl+b  #往上翻頁


#3.復制與粘貼
yy      #復制當前光標所在的行
5yy     #復制當前光標以及光標向下4行
 
p(小寫)   #粘貼至當前光標下一行   
P(大寫)   #粘貼至當前光標上一行


#4.刪除、剪貼、撤銷  
dd      #刪除當前光標所在的行   
4dd     #刪除當前光標所在的行以及往下的3行
dG      #刪除當前光標以后的所有行
D       #刪除當前光標及光標以后的內容  
x       #刪除當前光標標記往后的字符
X       #刪除當前光標標記往前的字符
dd & p  #剪貼、先刪除dd(number dd),后粘貼p
u       #撤銷上一次的操作


#5.替換
r       #替換當前光標標記的單個字符
R       #進入REPLACE模式, 連續替換,ESC結束

2.編輯模式(從普通模式進入到編輯模式)

i   #進入編輯模式,光標不做任何操作
a   #進入編輯模式,將當前光標往后一位
o   #進入編輯模式,並在當前光標下添加一行空白內容


I   #進入編輯模式,並且光標會跳轉至本行的頭部
A   #進入編輯模式,將光標移動至本行的尾部
O   #進入編輯模式,並在當前光標上添加一行空白內容

3.命令模式,主要用於搜索, 保存, 退出文件。

#1.文件保存與退出
:w      保存當前狀態
:w!     強制保存當前狀態
:q      退出當前文檔(文檔必須保存才能退出)
:q!     強制退出文檔不會修改當前內容
:wq     先保存,在退出
:wq!    強制保存並退出
:x      先保存,在退出
ZZ      保存退出, shfit+zz
:number 跳轉至對應的行號


#2.文件內容查找
/string #需要搜索的內容(查找)
n       #按搜索到的內容依次往下進行查找
N       #按搜索到的內容依次往上進行查找


#3.文件內容替換
:1,5s#sbin#test#g   #替換1-5行中包含sbin的內容為test
:%s#sbin#test#g     #替換整個文本文件中包含sbin的替換為test
:%s#sbin#test#gc    #替換內容時時提示是否需要替換


#4.文件內容另存
:w /root/test.txt  #將所有內容另存為/root/test.txt文件中


#5.文件內容讀入
:r  /etc/hosts  #讀入/etc/hosts文件至當前光標下面
:5r /etc/hosts  #指定插入/etc/hosts文件至當前文件的第五行下面

4.視圖模式(從普通模式進入視圖模式),主要進行批量操作

ctrl+v  進入可視塊模式,選中需要注釋的行
    1.插入:按shift+i進入編輯模式,輸入#,結束按ESC鍵
    2.刪除:選中內容后,按x或者d鍵刪除
    3.替換:選中需要替換的內容, 按下r鍵,然后輸入替換后的內容


shift+v 進入可視行模式,選中整行內容
    1.復制:選中行內容后按y鍵及可復制。
    2.刪除:選中行內容后按d鍵刪除。

3.VIM擴展知識

1.環境變量臨時生效

:set nu             #顯示行號
:set ic             #忽略大小寫, 在搜索的時候有用
:set ai             #自動縮進
:set list           #顯示制表符(空行、tab鍵)
:set no[nu|ic|ai…]  #取消臨時設定的變量

2.環境變量永久生效。~/.vimrc 個人環境變量(優先級高) /etc/vimrc 全局環境變量

# vim  ~/.vimrc #當下次再打開文件自動顯示行號並忽略大小寫
set nu
set ic

#如果個人vim環境沒有配置, 則使用全局vim環境變量配置。
#如果個人vim環境和全局環境變量產生沖突, 優先使用個人vim環境變量。

3.如何同時編輯多個文件

vim -o file1 file2  #水平分割
vim -O file1 file2  #垂直分割

#ctrl+ww 文件間切換

4.相同文件之間差異對比,通常用於對比修改前后差異

# diff      #文件對比   
# vimdiff   #以vim方式打開兩個文件對比,高亮顯示不同的內容

5.如果VIM非正常退出 (ctrl+z)掛起或強制退出終端沒關閉VIM后

#假設打開filename文件被以外關閉,需要刪除同文件名的.swp文件即可解決
# rm -f .filename.swp

4.VIM練習示例

1.將/etc/passwd 復制到/root/目錄下,並重命名為test.txt
2.用vim打開test.txt並顯示行號
3.分別向下、向右、向左、向右移動5個字符,分別向下、向上翻兩頁
4.把光標移動到第10行,讓光標移動到行末,再移動到行首,移動到test.txt文件的最后一行,移動到文件的首行
5.搜索文件中出現的 root 並數一下一共出現多少個,不區分大小寫搜索
6.把從第一行到第三行出現的root 替換成–od–,然后還原上一步操作
8.把整個文件中所有的root替換成–od–
9.把光標移動到20行,刪除本行,還原上一步操作
10.刪除第19行,還原上一步操作
11.刪除從5行到10行的所有內容,還原上一步操作
12.復制2行並粘貼到11行下面,還原上一步操作(按兩次u)
13.復制從11行到15行的內容並粘貼到8行上面,還原上一步操作(按兩次u)
14.把13行到18行的內容移動文件的尾部,還原上一步操作(按兩次u)
15.光標移動到首行,把/sbin/nologin改成/bin/bash
16.在第一行下面插入新的一行,並輸入”# Hello!”
17.保存文檔並退出

2.練習示例2-文件

[root@www ~]# cat proxy.conf
server {
    Listen 8080;
    Server_Name vim.OldboyEDU.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forward-for;
        proxy_intercept_errors on;
        proxy_next_upstream error timeout;
        proxy_next_upstream_timeout 3s;
        proxy_next_upstream_tries 2;
        error_page 500 502 403 404 = /proxy_error.html;
    }
    location = /proxy_error.html {
        root /code/proxy;
    }
}

2.練習示例2-題目
1.使用vim打開proxy.conf文件
2.修改Listen為listen小寫,並將8080修改為80
3.修改ServerName為server_name小寫。
4.修改vim.OldboyEDU.com為vim.oldboy.com
5.在server_name行下插入一行 root /code;
5.復制5-14行的內容,然后將其粘貼到14行下面
6.刪除與proxy_set_header相關的兩行全部刪除
7.如上操作完成后,在13-20行前面加上#號
8.刪除21-23的行,然后保存當前文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM