一、總結vim編輯器的使用方法
vim文本編輯器
全屏編輯器,模式化編輯器
vim的教程文件命令:vimtutor
vim /path/to/somefile
vim模式:
編輯模式(命令模式),默認模式
輸入模式
末行模式
模式轉換:
編輯模式—>輸入模式:
輸入模式—>編輯模式
編輯模式—>末行模式
末行模式—>編輯模式
vim編輯的打開和關閉操作
打開文件
vim+/pattern:打開文件,定位至第一次被pattern匹配到的行的行首
關閉文件
使用vim編輯多個文件
分窗口顯示多個文件
vim -o file…:水平分隔顯示,vim -o file1 file2
窗口拆分顯示同一個文件
vim編輯模式操作
移動光標(編輯模式下)
翻屏操作:
刪除單個字符
刪除命令:d
交換光標所在處的字符與其后面的字符的位置
替換字符
復制命令y
粘貼命令p
p:小寫p表示如果刪除或復制的為整行內容,則粘貼至光標所在行的下方,如果復制或刪除的內容非整行,則粘貼至光標所在字符的后面
P:大寫p表示,如果刪除或復制為整行內容,則粘貼至光標所在行的上方,如果復制或刪除的內容為非整行,則粘貼至光標所在字符的前面
修改c:先刪除內容,再轉換為輸入模式
撤銷命令,u
重復前一次編輯操作
可視化模式:實現自由選取的操作
v:按字符選取
V:按行選取
vim末行模式操作
1.快速框選內容段
#,+#:指定行范圍,左側為超始行絕對編號,右側為相對左側行號的偏移量;
/pattern/:從光標所在處起始向文件尾部第一次被模式所匹配到的行;
示例:/first/,$ #第一匹配frist的內容直到最后一行
/pat1/,/pat2/:從光標所在處起始,第一次由pat1匹配到的行開始,至第一次由pat2匹配到的行結束之間的所有行;
2.可同編輯命令一同使用,實現編輯操作:
w /PATH/TO/SOMEFILE:將范圍內的文本保存至指定的文件中;
r /PATH/FROM/SOMEFILE:將指定的文件中的文本讀取并插入至指定位置;
示例:/if/,/fi/d #用來刪除匹配出的if到fi的框定的內容刪除
3.查找
/PATTERN:從當前光標所在處向文件尾部查找能夠被當前模式匹配到的所有字符串;
?PATTERN:從當前光標所在處向文件首部查找能夠被當前模式匹配到的所有字符串;
4.查找并替換
替換為的內容:不能使用正則表達式,但可以引用匹配結果;\1,\2…(可以查看正則表達式)
如果“要查找的內容”部分在模式中使用分組符號:在“替換為的內容”中使用后向引用;
%s@\<t\([[:alpha:]]\+\)\>@T\1@g
解釋:%表示快速框選的全文,s表示末行模式下的替換功能,@為內容段的分隔符
\<t\([[:alpha:]]\+\)\> :正則表達式,匹配錨定以t為詞首的單詞
示例:%s@\<t[[:alpha:]]\+\>@&er@g
示例:%s@\<t[[:alpha:]]\+\>@&er@g
講當前文件中部分內容另存為另外一個文件
末行模式下使用w命令
adder,adder /patch/to/somefile
將另外一個文件的內容填充在當前文件中
r /patch/to/somefile
跟shell交互,不用退出執行命令
:!command
高級進階設定(末行模式,當前有效)
1.顯示或取消顯示行號
2、顯示忽略或區分字符大小寫
3、設定自動縮進
4、查找到的文件高亮顯示或取消
5、語法高亮
6、獲取幫助
vim配置文件,實現高價進階配置永久有效
/etc/vimrc,全局配置
~/.vimrc,家目錄下個人配置文件
vim tutor教程命令
- 習題:
1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;
cp /etc/rc.d/rc.sysinit /tmp
vim 末行模式下
:%s@^[[:space:]]\+@#@g
2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符;
cp /boot/grub/grub.conf /tmp
vim 末行模式下
:%s@^[[:space:]]\+@@g
3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符;
vim 末行模式下
:%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
crontab -e
0 */4 * * * filepath=/backups/etc-$(date +\%Y\%m\%d\%H\%M);mkdir -p ${filepath};cp -rf /etc ${filepath};
7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402
crontab -e
* * * * 2,4,6 filepath=/backups/messages_logs/messages-$(date +\%Y\%m\%d);mkdir -p ${filepath};cp -rf /var/log/messages ${filepath};
8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中
crontab -e
* */2 * * * grep "^S" /proc/meminfo >>/stats/memory.txt
9、工作日的工作時間內,每兩小時執行一次echo ""howdy""
crontab -e
0 9-18/2 * * * echo ""howdy""
腳本編程練習
10、創建目錄/tmp/testdir-當前日期時間;
#!/bin/bashmkdir /tmp/testdir-$(date +\%Y\%m\%d)
11、在此目錄創建100個空文件:file1-file100
#!/bin/bashmkdir /tmp/testdir-$(date +\%Y\%m\%d)for i in {1..100};do touch file${i}done
12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名;
方法一:sed -n '2~2p' /etc/passwd
方法二:sed -n 'n,p' /etc/passwd
13、創建10用戶user10-user19;密碼同用戶名;
#!/bin/bashfor i in {10..19};do useradd user${i} echo user${i} | passwd --stdin user${i}done
14、在/tmp/創建10個空文件file10-file19;
#!/bin/bashfor i in `seq 10 1 19`;do touch file${i}done
15、把file10的屬主和屬組改為user10,依次類推。
#!/bin/bashfor i in `seq 10 1 19`;do touch file${i} chown user${i}:user${i} /tmp/file${i}done
原創文章,作者:N22-武漢-enfp,如若轉載,請注明出處:http://www.www58058.com/50005
vim總結的非常不錯,另外在vim中批量修改指定的字符串很熟練,贊