N25-第六周作業

第6周作業

請詳細總結vim編輯器的使用并完成以下練習題

vim是模式化的全屏文本編輯器。
vim分為三種模式:
分別是編輯模式;輸入模式;末行模式;

打開文件的方式有:
vim +# FILE打開文件FILE并把光標定位到#行的行首;
vim +/PATTERN FILE打開文件并讓光標處于第一個被PATTERN匹配到的行的行首。(支持正則表達式)
vim + FILE 打開文件并把光標定位于FILE文件的最后一行的行首。

模式的轉換:
vim默認處于編輯模式;
從編輯模式進入輸入模式可以按i鍵,在光標所在處輸入;a鍵,在光標所在處后方輸入;o鍵,在光標所在處下方新建一行輸入;I鍵,在光標所在行的行首輸入;A鍵,在光標所在行的行尾輸入;大寫O鍵,在光標所在處的上方新建一行輸入;
輸入模式退出到編輯模式,按ESC鍵退出輸入模式;編輯模式進入末行模式需要按:進入末行模式;退出末行模式進入編輯模式也是按ESC鍵,有時需要連按2次ESC才能退出到編輯模式。輸入模式是不能直接進入末行模式的,同樣末行模式也不能直接進入輸入模式,只能通過編輯模式進入。

關閉文件:
ZZ:保存并退出。
進入末行模式 :q 退出,注意(這種退出方式只能是沒有對文件進行編輯和輸入的情況下才能退出)
:q! 不保存退出
:wq 保存退出
:x 保存退出
:w /PATH/TO/SOMEFILE保存修改后的內容,另存為新路徑文件。

編輯模式的光標跳轉操作:
字符間跳轉:h左,l右,j下,k上,也可以在h,l,j,k前加數字,表示跳轉指定數量的字符。

單詞間跳轉:w下一個單詞的詞首,b當前或前一個單詞的詞首,e當前或后一個單詞的詞尾,同樣也可以在w,b,e前加數字,指定跳轉的單詞數量。
注意:字符間跳轉和單詞間跳轉可以連用#COMMAND實現一次跳轉指定#數量的字符或單詞。例:3w,2b,4e,5k等。

行首行尾跳轉:^ 跳轉到行首的第一個非空白字符; 0 數字零是跳轉至絕對行首;$ 跳轉至行尾;

行間跳轉:#G 跳轉至#指定數字的行的行首;gg 是跳轉至第一行;G跳轉至最后一行;

句間跳轉:)(

段間跳轉:{  } 句間跳轉和段間跳轉都可以指定數量#,來實現指定數量的跳轉。

翻屏操作:
ctrl+f 向文件的尾部翻一屏;ctrl+b 向文件的首部翻一屏;ctrl+d向文件的尾部翻半屏;ctrl+u 向文件的首部翻半屏;Enter按行為單位向文件尾部翻屏;

編輯模式的編輯命令:

字符編輯:
x 刪除光標所在處的字符(單個字符);#x 刪除光標所在處起向后#個數量的字符;xp 交換光標所在處字符和其后面字符的位置;

替換命令:
r 替換光標所在處的字符,r后跟要替換的字符。

刪除命令:
d 刪除命令,可結合光標跳轉字符實現范圍刪除; dw ; de ; db ;3db;2de;等
例: d$ 刪除光標所在處至行尾的字符; d^刪除光標所在處到行首的字符;
dd 是刪除光標所在處的一整行;
#dd 是刪除光標所在處起向下#行;

粘貼命令:
小寫 p 緩沖區的內容如果為整行,則粘貼在光標所在行的下方。如果不是整行,則粘貼在光標所在處的后方。
大寫 P 緩沖區的內容如果為整行,則粘貼在光標所在行的上方。如果不是整行,則粘貼在光標所在處的后方。
注意:緩沖區的最后一行是刪除命令的刪除的最后一條字符信息,只有最后一條字符信息可用于粘貼命令。

復制命令:
y復制命令,工作行為和 d 刪除命令相似,可連用光標跳轉符實現范圍復制,例:y$; y^;ye;2yw;3yb等;
yy 復制光標所在處一整行; #yy 復制光標所在行起,向下#行一起復制。

更改命令:
c是更改命令,此命令實現從編輯模式–>輸入模式,可以實現刪除操作并進入輸入模式;可連用光標跳轉符;
例:c$刪除光標所在處開始至行尾的字符并進入輸入模式;其他例子如:c^;c0;cb;ce;3cw等;實現范圍刪除并進入輸入模式;
cc刪除光標所在行并進入輸入模式。#cc 刪除光標所在行起向下#行,并進入輸入模式;

可視化模式:
小寫 v 按字符選定并高亮顯示,可隨意選定字符(可連用光標跳轉符選取字符)
大寫 v按行選定并高亮顯示(只能整行選定)
可視化模式可以結合的編輯命令有:d刪除命令,c更改命令,y復制命令;

撤銷操作:
u 撤銷此前的操作;
#u 撤銷此前的#個操作,#指定數字。

撤銷撤銷操作:
ctrl+r重復前一個編輯操作。

vim末行模式:
    末行模式是vim內建的命令行接口。

1.地址定界:
:start_pos[end_pos]
# 特定#行,例:5 即第5行;
#,#指定從#到#行,指定行的范圍,左側為起始行,右側為結束行;例:1,5 從1行到5行;
#,+# 指定行的范圍,左側為起始行的絕對編號,右側為偏移量;例: 2,+3 從2行開始
. 當前行,例: .,+3 當前行開始+3行;
$ 最后一行; 例: .,$-1 當前行開始到倒數第2行;
%全文范圍
/pattern/ 第一次被pattern匹配到的行(注:第一次是從光標所在處起始往文件尾部匹配)
例:/pattern/,$d光標所在處開始到文本最后一行,匹配到的字符做刪除操作;
可同編輯模式命令 d,y,c連用

w /PATH/TO/SOMEFILE 將指定范圍內的文本保存至指定的文件中;
r /PATH/TO/SOMEFILE 將指定文件中的文本讀取并插入到指定位置;例: 5r /tmp/messages 在第5行后讀取插入/tmp/messages的文本

2.查找

/pattern 從當前光標所在處向文件尾部查找被當前模式匹配到的字符串;
?pattern 從當前光標所在處向文件首部查收被當前模式匹配到的字符串;
注意:小寫n是與命令方向相同,切換到下一個被模式匹配到的字符串,大寫N是與命令方向相反;

3.查找并替換

s末行模式查找命令;末行模式查找替換命令格式:s/要查找的內容/替換為的內容/修飾符;
注意:要查找的內容可以使用基本正則表達式;替換為的內容不可以使用正則表達式,但可以引用前面要查找的內容;
如果要查找的內容在模式中使用分組符號,在替換為的內容中可用后項引用\1;
另一種方式是直接引用前面要查找的內容,使用&符號,直接引用前面要查找內容匹配到的所有字符。

修飾符:
i 忽略大小寫
g 全局替換,意思是一行中,查找到的內容出現多次都替換。

可把分隔符替換成其他非常用字符:如:s@@@;s###

vim的多文件功能

vim可以一次打開多個文件;vim FILE1 FILE2 ...
文件間切換可以使用末行模式下命令 :next 下一個文件;:prev 上一個文件;:first 第一個文件;:last 最后一個文件;
退出所有文件:wqall 保存所有文件并退出;

多窗口:
-o 水平分割窗口;-O 垂直分割窗口;例:vim -o fstab messages
在多窗口中切換:編輯模式中ctrl+w 激活窗口切換功能,使用h,j,k,l切換窗口;
單個文件也可以分割為多個窗口進行查看;在vim打開的單個文件中ctrl+w激活多窗口,然后按s鍵,是把單個文件水平分割,加v鍵是垂直分割;單文件多窗口可以水平垂直任意分割并存。

定制vim的工作特性
1.行號顯示:set nu ; 取消行號顯示:set no nu;注意:在末行模式下的設定,僅對當前vim進程有效;想永久生效需要更改配置文件;全局配置文件路徑/etc/vimrc;個人配置文件路徑~/.vimrc;

2.括號匹配高亮顯示:set sm;取消括號匹配高亮顯示:set nosm;

3.自動縮進啟動:set ai;禁用:set noai;

4.高亮搜索結果啟用:set hlserch;禁用:set nohlserch

5.語法高亮顯示:syntax on;禁用:syntax off;

6.忽略字符大小寫:set ic;禁用:set noic

在vim末行模式下:help可以查看幫助文件。

1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;

cp /etc/rc.d/rc.sysinit /tmp
%s@^[[:space:]]\+@#&@g

2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;

cp /boot/grub/grub.conf /tmp
%s@^[[:space:]]\+@@

3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符

%s@^\#[[:space:]]\+@@g

4、為/tmp/grub.conf文件中前三行的行首加#號;

1,3s@^@#&@g

5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1;

%s@\(enabled\|gpgcheck\)=0@\1=1@g

6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202

0 */4 * * * /bin/tar -zcf /backup/etc-$(date +\%Y\%m\%d\%H\%M).tar.gz /etc

7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402

0 0 * * 2,4,6 /bin/tar -zcf /backup/messages_logs/messages-$(date +\%Y\%m\%d).tar.gz /var/log/messages

8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中

0 */2 * * * /bin/grep "^S" /proc/meminfo >> /stats/memory.txt

9、工作日的工作時間內,每兩小時執行一次echo “howdy”

0 9-18/2 * * 1-5 /bin/echo "howdy"

腳本編程練習

10、創建目錄/tmp/testdir-當前日期時間; 

#!/bin/bash
 #mkdir -p /tmp/testdir-$(date +%Y%m%d%H%M)

11、在此目錄創建100個空文件:file1-file100

#!/bin/bash
#touch file{1..100}

12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;

#!/bin/bash
#sed -n 'n;p' /etc/passwd | cut -d: -f 1

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

(0)
EasonEason
上一篇 2017-02-22 00:19
下一篇 2017-02-22 10:50

相關推薦

  • PXE網絡引導自動化安裝系統詳解

    一、PXE:預引導加載環境  1.PXE          Preboot ExecuteEnvironment:支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial f…

    2016-04-30
  • 網絡配置、nmcli

    CentOS 7 網絡屬性配置    rhel6 之前,網絡接口使用連續號碼命名:eth0 、eth1 等, 當增加或刪除網卡時,名稱可能會 發生變化    rhel7 使用基于硬件,設備拓撲和設置類型 命名:    (1) 網卡命名機制    &n…

    Linux干貨 2016-09-23
  • corosync+pacemaker+drbd+mysql配置安裝詳解

    一,  基本環境介紹及基本環境配置 節點1: node1.hulala.com      192.168.1.35     centos6.5_64    添加8G新硬盤 節點2: node1.hulala.com      192.168.1.36…

    Linux干貨 2016-05-08
  • linux基礎1

    linux基礎

    Linux干貨 2018-03-08
  • nginx基礎模塊

    目錄: nginx基礎模塊: 1.ngx_http_access_module模塊: 2.ngx_http_auth_basic_module模塊 3.ngx_http_stub_status_module模塊 4.ngx_http_log_module模塊 5.ngx_http_gzip_module: 6.ngx_http_ssl_module模塊: 7…

    Linux干貨 2017-08-08
  • btrfs文件系統

                                                      &nbsp…

    Linux干貨 2015-08-21
欧美性久久久久