N26-第六周

請詳細總結vim編輯器的使用

vim 模式化的編輯器

vim的三種模式:1.編輯模式(命令模式)

                         2.輸入模式

                         3.末行模式 內置的命令行接口

編輯模式 –> 輸入模式
 i:insert 在光標所在處插入
 I:在光標所在行的行首插入
 a: append 在光標所在處之后輸入
 A: 在光標所在行的行尾插入
o:在光標所在處下方打開的一個新行
O:在光標所在處上方打開的一個新行

編輯模式 –> 末行模式:
輸入 `:` 

末行模式 –> 編輯模式
直接按 `ESC` 鍵即可

<h3>文件操作</h3>
接著是如何打開文件和關閉文件。

打開文件的語法是 `vim [options][file…]`。在打開文件時,利用某些選項,還可以讓光標處于特定的位置,例如:

  +# 打開文件后,直接將光標處于第 # 行行首
  +/PATTERN 打開文件后,直接將光標處于第一個被 PATTERN 匹配到的行的行首
  + 打開文件后,直接將光標處于行尾

關閉文件的相關命令有:
  ZZ :保存并退出
  :q 退出
  :q! 強制退出,不保存此前的編輯操作
  :wq 保存并退出
  :w /PATH/TO/SOMEFILE 另存到文件

vim 支持在某個命令的前面添加數字來達到多次執行的目的。

字符間跳轉:
h 左 j 下 k 上 l 右

單詞間跳轉
    w 跳到下一個單詞的詞首
    b 當前或前一個單詞的詞首
    e 當前或后一個單詞的詞尾

行首行尾跳轉
    ^ 跳轉至行首的第一個非空白字符
    0 跳轉至行首
    $ 跳轉至行尾

行間跳轉
    #G 跳轉至由數字 # 指定的行
    1G,gg 跳轉至第一行
    G 跳轉至最后一行

句間跳轉
    ) 跳到后一句
    ( 跳到前一句

段間跳轉
    } 跳到前一段
    { 跳到后一段

翻屏:
    Ctrl+f 向文件尾部翻一屏
    Ctrl+b 向文件首部翻一屏
    Ctrl+d 向文件尾部翻半屏
    Ctrl+u 向文件首部翻半屏
    Enter 按行向后翻

<h3>編輯命令</h3>
接下來是與編輯命令相關的介紹。

字符編輯:
    x 刪除光標所在處的字符
    #x 刪除光標所在處起始的 # 個字符
    xp 交換光標所在處的字符及其后面的字符的位置

替換命令 replace
    r 替換光標所在處的字符 rCHAR

刪除命令
    d 刪除命令,可結合光標跳轉字符,實現范圍刪除
        d$ 
        d^
        dw
        de
        db
        dd 刪除光標所在處的行 
            #dd

粘貼命令
    p 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則粘貼至當前光標所在處的后面
    P 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則粘貼至當前光標所在處的前面

復制命令 yank
    y 復制,工作方式與 d 命令類似

改變命令 change
    編輯模式 –> 輸入模式,實現刪除操作

可視化模式
    v 按字符選定
    V 按行選定
    結合編輯命令使用:d,c,y,p

撤銷操作 undo
    u 撤銷此前的操作
        #u 撤銷此前的 # 次操作
撤銷此前的撤銷
    Ctrl+r
重復執行前一個編輯操作
    .

<h3>查找和替換操作</h3>
(1) 地址定界 :start_pos[,end_pos]
    # 特定的第 # 行
    . 當前行
    $ 最后一行
    #,# 指定行范圍
    #,+# 指定行范圍,相對初始位置
    % 表示全文
    /pattern/ 從光標所在處開始向后尋找,第一次被模式所匹配到的行
    /parrern1/,/pattern2/

可同編輯命令一同使用,實現編輯操作
    d,y,c
    w /PATH/TO/SOMEFILE 將范圍內的文本保存至指定的文件中
    r /PATH/OF/SOMEFILE 將指定文件中的文本讀取并插入至指定位置

(2) 查找
    /PATTERN 從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串
    ?PATTERN 從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串
        n 下一個,與命令方向相同 
        N 上一個,與命令方向相反

(3) 查找替換
    s 末行模式的命令;使用格式
        s/查找內容/替換內容/修飾符
            查找內容:可使用正則表達式
            替換內容:不能使用正則表達式,可引用
                如果 查找內容 部分在模式中使用分組符號,在 替換內容中使用后向引用
                直接引用查找模式匹配到的全部文本,使用 & 符號
            修飾符:
                i 忽略大小寫
                g 全局替換,意味著一行中如果匹配到多次,則均替換;

## 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;
命令:
    cp /etc/rc.d/rc.sysinit /tmp
    vim /tmp/rc.sysinit
    :%s@^[[:space:]]\+@#\1@g

## 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
命令:
    cp /boot/grub/grub.conf /tmp
    vim /tmp/grub.conf
    :%s@^[[:space:]]\+@@g

## 3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符
命令:
    vim /tmp/rc.sysinit
    :%s@^#[[:space:]]@@g

## 4、為/tmp/grub.conf文件中前三行的行首加#號;
命令:
    vim /tmp/grub.conf
    :1,3s@^@#\1@g

## 5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;
命令:
    vim /etc/yum.repos.d/CentOS-Media.repo
    :%s@\(enabled\|gpgcheck\)=0@\1=1@g

## 6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202
命令:
    crontab -e
    0 */4 * * * cp -a /etc /backup/etc-$(date +%Y%m%d%H%M
)

## 7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402
命令:
    crontab -e
    0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)

## 8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
命令:
    crontab -e
    0 */2 * * * grep -E “^S” /proc/meninfo >> /stats/memory.txt

## 9、工作日的工作時間內,每兩小時執行一次echo “howdy”
命令:
    crontab -e
    0 9-18/2 * * 1-5 echo “howdy”

腳本編程練習
## 10、創建目錄/tmp/testdir-當前日期時間; 
## 11、在此目錄創建100個空文件:file1-file100
## 12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;

vim testdir.sh

#! /bin/bash
DIR=/tmp/testdir-$(date +%Y%m%d)
mkdir $DIR
touch $DIR/file{1..100}

sed -n ‘n;p’ /etc/passwd | cut -d: -f1

編輯模式 –> 輸入模式
1. 輸入 i:insert 在光標所在處插入
2. 輸入 I:在光標所在行的行首插入
3. 輸入 a: append 在光標所在處之后輸入
4. 輸入 A: 在光標所在行的行尾插入
5. 輸入 o:在光標所在處下方打開的一個新行
6. 輸入 O:在光標所在處上方打開的一個新行

輸入模式 –> 編輯模式
直接按 `ESC` 鍵即可

編輯模式 –> 末行模式:
輸入 `:` 

末行模式 –> 編輯模式
直接按 `ESC` 鍵即可

<h3>文件操作</h3>
接著是如何打開文件和關閉文件。

打開文件的語法是 `vim [options][file…]`。在打開文件時,利用某些選項,還可以讓光標處于特定的位置,例如:

  +# 打開文件后,直接將光標處于第 # 行行首
  +/PATTERN 打開文件后,直接將光標處于第一個被 PATTERN 匹配到的行的行首
  + 打開文件后,直接將光標處于行尾

關閉文件的相關命令有:
  ZZ :保存并退出
  :q 退出
  :q! 強制退出,不保存此前的編輯操作
  :wq = :w,:q 保存并退出
  😡 保存并退出
  :w /PATH/TO/SOMEFILE 另存到文件

<h3>光標的跳轉</h3>
vim 支持在某個命令的前面添加數字來達到多次執行的目的。

字符間跳轉:
h 左 j 下 k 上 l 右

單詞間跳轉
    w 跳到下一個單詞的詞首
    b 當前或前一個單詞的詞首
    e 當前或后一個單詞的詞尾

行首行尾跳轉
    ^ 跳轉至行首的第一個非空白字符
    0 跳轉至行首
    $ 跳轉至行尾

行間跳轉
    #G 跳轉至由數字 # 指定的行
    1G,gg 跳轉至第一行
    G 跳轉至最后一行

句間跳轉
    ) 跳到后一句
    ( 跳到前一句

段間跳轉
    } 跳到前一段
    { 跳到后一段

翻屏:
    Ctrl+f 向文件尾部翻一屏
    Ctrl+b 向文件首部翻一屏
    Ctrl+d 向文件尾部翻半屏
    Ctrl+u 向文件首部翻半屏
    Enter 按行向后翻

<h3>編輯命令</h3>
接下來是與編輯命令相關的介紹。

字符編輯:
    x 刪除光標所在處的字符
    #x 刪除光標所在處起始的 # 個字符
    xp 交換光標所在處的字符及其后面的字符的位置

替換命令 replace
    r 替換光標所在處的字符 rCHAR

刪除命令
    d 刪除命令,可結合光標跳轉字符,實現范圍刪除
        d$ 
        d^
        dw
        de
        db
        dd 刪除光標所在處的行 
            #dd

粘貼命令
    p 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則粘貼至當前光標所在處的后面
    P 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則粘貼至當前光標所在處的前面

復制命令 yank
    y 復制,工作方式與 d 命令類似

改變命令 change
    編輯模式 –> 輸入模式,實現刪除操作

可視化模式
    v 按字符選定
    V 按行選定
    結合編輯命令使用:d,c,y,p

撤銷操作 undo
    u 撤銷此前的操作
        #u 撤銷此前的 # 次操作
撤銷此前的撤銷
    Ctrl+r
重復執行前一個編輯操作
    .

<h3>查找和替換操作</h3>
(1) 地址定界 :start_pos[,end_pos]
    # 特定的第 # 行
    . 當前行
    $ 最后一行
    #,# 指定行范圍
    #,+# 指定行范圍,相對初始位置
    % 表示全文
    /pattern/ 從光標所在處開始向后尋找,第一次被模式所匹配到的行
    /parrern1/,/pattern2/

可同編輯命令一同使用,實現編輯操作
    d,y,c
    w /PATH/TO/SOMEFILE 將范圍內的文本保存至指定的文件中
    r /PATH/OF/SOMEFILE 將指定文件中的文本讀取并插入至指定位置

(2) 查找
    /PATTERN 從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串
    ?PATTERN 從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串
        n 下一個,與命令方向相同 
        N 上一個,與命令方向相反

(3) 查找替換
    s 末行模式的命令;使用格式
        s/查找內容/替換內容/修飾符
            查找內容:可使用正則表達式
            替換內容:不能使用正則表達式,可引用
                如果 查找內容 部分在模式中使用分組符號,在 替換內容中使用后向引用
                直接引用查找模式匹配到的全部文本,使用 & 符號
            修飾符:
                i 忽略大小寫
                g 全局替換,意味著一行中如果匹配到多次,則均替換;

## 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;
命令:
    cp /etc/rc.d/rc.sysinit /tmp
    vim /tmp/rc.sysinit
    :%s@^[[:space:]]\+@#\1@g

## 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
命令:
    cp /boot/grub/grub.conf /tmp
    vim /tmp/grub.conf
    :%s@^[[:space:]]\+@@g

## 3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符
命令:
    vim /tmp/rc.sysinit
    :%s@^#[[:space:]]@@g

## 4、為/tmp/grub.conf文件中前三行的行首加#號;
命令:
    vim /tmp/grub.conf
    :1,3s@^@#\1@g

## 5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;
命令:
    vim /etc/yum.repos.d/CentOS-Media.repo
    :%s@\(enabled\|gpgcheck\)=0@\1=1@g

## 6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202
命令:
    crontab -e
    0 */4 * * * cp -a /etc /backup/etc-$(date +%Y%m%d%H%M
)

## 7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402
命令:
    crontab -e
    0 0 * * 2,4,6 cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d)

## 8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
命令:
    crontab -e
    0 */2 * * * grep -E “^S” /proc/meninfo >> /stats/memory.txt

## 9、工作日的工作時間內,每兩小時執行一次echo “howdy”
命令:
    crontab -e
    0 9-18/2 * * 1-5 echo “howdy”

腳本編程練習
## 10、創建目錄/tmp/testdir-當前日期時間; 
## 11、在此目錄創建100個空文件:file1-file100
## 12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;

N26-第六周

 


原創文章,作者:geshubo,如若轉載,請注明出處:http://www.www58058.com/71062

(0)
geshubogeshubo
上一篇 2017-03-13
下一篇 2017-03-13

相關推薦

  • NoSQL—mongodb常見使用和入門

    NoSQL介紹: NoSQL數據管理系統是目前非常流行的一種非關系性、分布式、不支持ACID設計規范式的數據庫;NoSQL簡單的數據模型、元數據和數據分離、弱一致性、高吞吐量、高水平擴展能力和低端硬件集群使其流行的主要原因,而mongodb就是NoSQL數據庫一種非常流行的實現方式。   常見的NoSQL數據存儲模型 列式模型 文檔類型 應用場景:…

    2015-09-01
  • vsftpd, samba, nfs, mariadb

    2018/2/13 11:45 第十一周

    2018-02-13
  • hello 北京&Linux啟程

    北京初感&Linux啟程

    Linux干貨 2018-03-26
  • 關于大型網站技術演進的思考(八):存儲的瓶頸(8)

    原文出處: 夏天的森林  在開始本篇主要內容前,我們一起看看下面的幾張截圖,首先是第一張圖,如下圖所示: 這是一家電商網站的首頁,當我們第一次打開這個首頁,網站會彈出一個強制性的對話框,讓用戶選擇貨物配送的地址,如果是淘寶和京東的話,那么這個選擇配貨地址的選項是在商品里,如下圖是淘寶的選擇配送地點: 下圖是京東選擇配貨地點: 那么圖一跟京…

    2015-03-11
  • 第四周博客作業

    趁著這幾天有時間,先把第四周的作業寫了,好在沒有什么新的知識點考核。  1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel/ /home/tuser1 […

    Linux干貨 2016-12-21
  • 描述LVS的工作原理

    一、LVS結構   LVS由前端的負載均衡器(Load Balancer,LB)和后端的真實服務器(Real Server,RS)群組成。RS間可通過局域網或廣域網連接。LVS的這種結構對用戶是透明的,用戶只能看見一臺作為LB的虛擬服務器(Virtual Server),而看不到提供服務的RS群。當用戶的請求發往虛擬服務器,LB根據設定的包轉發策略和負載均衡…

    Linux干貨 2016-08-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-30 14:27

    VIM是一款非常棒的文件編輯器,本文總結的非常到位,掌握扎實,今后將會事半功倍。

欧美性久久久久