第六周

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

基本模式:

編輯模式,命令模式

輸入模式

末行模式

內置的命令行接口

打開文件:

# vim [options] [file ..]

+#:打開文檔后,直接讓光標處于第#行的行首

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

 

模式轉換:

編輯模式:默認模式

編輯模式 –> 輸入模式

iinsert,在光標所在處輸入

aappend,在光標后方輸入

o:在光標所在處的下方打開一個新行

I:在光標所在的行首輸入

A:在光標所在的行尾輸入

O:在光標的上方打開一個新行

 

輸入模式 –> 編輯模式

ESC

編輯模式 –> 末行模式

末行模式 –> 編輯模式

ESC

關閉文件:

ZZ:保存并退出

:q   退出

:q!  強制退出,不保存此前的編輯操作

:wq  保存并退出

:w , :q

:x   保存并退出

:w   /PATH/TO/SOMEFILE

 

光標跳轉:

字符間跳轉

h:左   j:下   k:上   l:下

#COMMAND:跳轉由#指定的個數的字符

單詞間跳轉

w:下一個單詞的詞首

e:當前或后一個單詞的詞尾

b:當前或前一個單詞的詞首

#COMMAND:跳轉由#指定的個數的單詞

行首行尾跳轉

^:跳轉至行首的第一個非空白字符

0:跳轉至行首

$:跳轉至行尾

行間跳轉

#G:跳轉至由#行指定的行

1Ggg:第一行

G:最后一行

句間跳轉

 )

段間跳轉

 }

 

翻屏:

Ctrl+f:向文件尾部翻一屏

Ctrl+b:向文件首部翻一屏

Ctrl+d:向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

 

vim的編輯命令:

字符編輯:

x:刪除光標所在處的字符

#x:刪除光標所在處起始的#個字符

xp:交換光標所在處的字符與其后面的字符的位置

替換命令(replace):

r:替換光標所在處的字符

rCHAR

刪除命令:

d:刪除命令,可結合光標跳轉字符,實現范圍刪除

d$:刪除從光標起始處到結尾的字符

d^:刪除從光標起始處到第一個非空白開頭的字符

dw:刪除從光標所在處到下一個所在單詞的詞首

de:刪除從光標所在處到單詞的詞尾

db:刪除從光標所在處到單詞的詞首

#COMMAND

dd:刪除光標所在的行

#dd:刪除光標所處的行起始的共#

粘帖命令(p,putpaste):

p:緩沖區中的內容如果為整行,則粘帖在前光標所在行的下方;否則,則粘帖至當前光標所在處的后方

P:緩沖區的內容如果為整行,則粘帖在當前光標所在行的上方;否則,則粘帖至當前光標所在處的前方

復制命令(yank,y

y:復制,工作行為相似于d命令

y$   y^   ye   yw   yb

#COMMAND

yy:復制一整行

#yy:復制#

改變命令(change,c

編輯模式 –> 輸入模式,實現刪除操作

c$   c^   c0   cb   ce   cw

#COMMAND

cc:刪除光標所在的行,并轉換為輸出模式

#cc

可視化模式:

v:按字符選定

V:按行選定

結合編輯命令使用:dc,y

 

撤銷(undo)操作:

u:撤銷此前的操作命令

#u:撤銷此前的#個操作

撤銷此前的撤銷

Ctrl+r

 

vim末行模式

內建的命令行接口

 

1)地址定界

start_pos[,end_pos]

#:特定的第#行,例如5即第5

.:當前行

$:最后一行

#,#:指定行范圍

#,+#:指定行范圍,左側為超始行絕對編號,右側為相對左側行號的偏移量;例如:3,+7

.$-1:從當前行到倒數第二行

1,$:全文

%:全文

/pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行

/first/,$

/pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到行開始,至第一次由pat2匹配到的行結束之間的所有行

 

可同編輯命令一同使用,實現編輯操作

w /PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中

r /PATH/TO/FROM/SOMEFILE:將指定的文件中的文本讀取插入至指定的位置

 

2)查找

/PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串

?PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串

n:下一個,與命令方向相同

N:上一個,與命令方向相反

 

3)查找并替換

s:末行模式的命令;使用格式

s/要查找的內容/替換為的內容/修飾符

要查找的內容:可使用正則表達式

替換為的內容:不可使用正則表達式,但可以引用

如果“要查找的內容”部分模式中使用分組符號;在“替換為的內容”中使用后向引用

直接引用查找模式匹配到的全部文本,要使用&符號

修飾符:

i:忽略大小寫

g:全局替換,意味著一行中如果匹配到多次,則均替換

 

可把分隔符替換為其它非常用字符:

s@@@

s###

 

示例:

%s@\<t\([[:alpha:]]\+\)\>@T\1@g

%s@\<t[[:alpha:]]\+\>@&er@g

 

vim的多文件功能:

多文件:

vim FILE1,FILE2,FILE3,…

在文件間切換:

next 下一個

prev 上一個

first 第一個

last 最后一個

 

退出所有文件:

wqall 保存所有文件并退出

wall 保存所有文件

qall 退出所有文件

 

多窗口:

-o:水平分割窗口

-O:垂直分割窗口

 

在窗口間切換:Ctrl+w,ARROW

 

注意:單個文件也可以分割為多個窗口進行查看

Ctrl+w,s:水平分割窗口

Ctrl+w,v:垂直分割窗口

 

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

cp /etc/rc.d/rc.sysinit /tmp

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

 

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

cp  /boot/grub/grub.conf /tmp

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

 

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

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

 

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

:1,3s@^.*@#&

 

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

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

 

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

0 */4 * * * root  /usr/bin/cp -a /etc /backup/etc-$(date +\%Y\%m\%d\%H\%M)

 

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

0 0 * * 2,4,6 root /usr/bin/cp -a /var/log/messages /backup/messages_logs/messager-$(date +\%Y\m\%d)

 

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

0 */2 * * * root /usr/bin/grep “^S.*”  /proc/meminfo >> /stats/memory.txt

 

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

腳本編程練習

0 */2 * * 1-5 root /usr/bin/echo “howdy”

 

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

mkdir /tmp/testdir-$(date +%F-%H%-%M-%S)

 

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

#!/bin/bash

#

for i in {1..100} ; do

if ! [ -e  f$i ];then

touch f$i

else

echo “f$i already exists”

fi

done

 

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

#!/bin/bash

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

 

 

 

原創文章,作者:N26-xiaocong,如若轉載,請注明出處:http://www.www58058.com/75381

(0)
N26-xiaocongN26-xiaocong
上一篇 2017-05-13 20:34
下一篇 2017-05-13 20:52

相關推薦

  • Ansible+Corosync+Pacemaker+nfs實現http高可用

    目錄: (一)實驗環境 (二)準備工作 (三)為node1和node2配置基礎配置 (四)使用ansible部署nfs (五)使用ansible部署corosync和pacemaker (六)使用ansible安裝crmsh工具 (七)使用crmsh配置http高可用 (八)驗證 (九)需要注意的地方 (一)實驗環境 1.1、環境拓撲 1.2、所需系統 4臺…

    Linux干貨 2016-04-29
  • 實驗:配置靜態路由1

    實驗:配置靜態路由1 IP地址規劃如下: 注意,環境準備: 1、MAC地址不要有沖突,如果是復制的虛擬機,對于centos6需刪除網卡定義文件rm -f /etc/udev/rules.d/70-persistent-net.rules 2、清空防火墻iptables -F(查看:iptables -vnL) 3、啟用IP轉發功能:echo 1 > /…

    2017-03-26
  • 用shell腳本實現每天定時收集全網日志到一臺服務器

    需求 現在公司有這樣一個需求,需要收集每天全網運行業務的設備上的某個特定目錄底下的日志到一臺服務器(這臺服務器我們簡稱logserver),這并在這臺logserver上生成以日期為名字的目錄 解決思路: 在logserver的crontab里設置兩個腳本,在當日晚上23:30執行腳本1收集當日即將被刪除的全網腳本;在并在早上8:30執行腳本2,收集昨日全網…

    Linux干貨 2015-07-27
  • LINUX課堂筆記(第一周)

    2018.03.05 LINUX: 切換虛擬終端:CTRL+ALT+F[1-6] 查看當前得終端設備命令:tty 查看內存: cat /proc/meminfo free -h 查看分區: cat /proc/partitions lsblk 查看CPU: lscpu cat /proc/cpuinfo 查看版本 cat /etc/centos-releas…

    Linux干貨 2018-03-15
  • LVS負載均衡實戰演練

    LVS負載均衡實戰之lvs-nat模型 1.準備好機器,配置好時間同步,配置號網絡,主機名 172.16.251.91 client [橋接] [網關為172.16.251.90] #lvs負載均衡兩塊網卡 172.16.251.90  lvs [網卡1] [橋接] 192.168.42.150  lvs [網卡2] [VMnet8] 192.168.42.…

    Linux干貨 2017-06-22
  • 文件查找、壓縮、歸檔

    一、文件查找 非實時查找(數據庫查找)locate;實時查找find locate:從系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db查找,但是依賴于事先構建的索引; 索引的構建是在系統較為空閑時自動進行,管理員手動的更新數據庫(updatedb),得用updatedb命令跟新數據庫,才能快速查找,也要根據權限搜索…

    Linux干貨 2016-11-27

評論列表(1條)

  • luoweiro
    luoweiro 2017-06-26 23:07

    第十一題的f改成file

欧美性久久久久