week6: 請詳細總結vim編輯器的使用并完成以下練習題 vim編輯器小結: 1. vim編輯器的模式: vim編輯器有很多模式,常用模式有:Normal,Insert,Command; 通常,打開一個文件,此時所處的就是normal模式;normal模式下可以瀏覽,修改文件內容; 在任何模式下,只要按ESC就可以返回到Normal模式; Insert模式則用來編輯文本內容; Command模式多用來操作文本文件,如保存文件,改變編輯器本身的狀態等; 模式間的切換: Normal ---> Insert 按鍵:i,a,o,s,I,A,O,S Normal ---> Command 按鍵:':' Insert/Command ---> Normal 按鍵:ESC 2. vim編輯器的使用: 2.1 打開一個文件: #vim [option] File [...] option: +NUM:打開文件后,讓光標處于第NUM行的行首;不加NUM,直接處于最后一行; +/PATTERN:打開文件后,讓光標處于第一個被PATTERN模式匹配到的行的行首; -b:以二進制方式打開文件; -m:只讀方式發開文件; -d file1 file2 ..:比較多個文件;不加-d,表示打開多個文件; -o file1 file2 .. :水平分割方式打開多個文件; -O file1 file2 .. :垂直分割方式打開多個文件; 2.2 關閉文件: :q 退出(此時文件內容未發生改變才可以正常退出); :q! 強制退出,丟棄做出的修改; :wq 保存退出; :x 保存退出; ZZ 保存退出; ZQ 不保存退出; 2.3 光標移動: 逐字符移動: 方向鍵 hjkl:左下上右 備注:支持和數字組合; 逐單詞移動: w:移至下一個單詞的詞首 e:跳至當前或下一個單詞的詞尾 b:跳至當前或前一個單詞的詞首 備注:支持和數字組合,即6w之類等; 行內跳轉: 0:跳至絕對行首; ^:跳至相對行首; $:跳至絕對行尾; 行間跳轉: G:表示最后一行; NG:表示跳轉到第N行;(":N") 2.4 翻屏: ctrl + f:向下翻一屏 ctrl + b:向上翻一屏 ctrl + d:向下翻半屏 ctrl + u:向上翻半屏 3. 刪除: x:刪除單個字符; d[num]w: 刪除光標所在處向后的n個單詞; [num]dd:刪除包括光標所處行的n行;沒有num的話,刪除當前單行; :1,3d表示刪除1到3行; .表示當前行; $表示最后一行; %表示所有行; $-n表示倒數第n行; 4. 粘貼: p: 如果刪除或復制為整行內容,則粘貼至光標所在行的下方;如果是非整行,則粘貼至光標所在字符的后面 P:如果刪除或復制為整行內容,則粘貼至光標所在行的上方;如果是非整行,則粘貼至光標所在字符的前面 5. 復制: 使用y;用法同d命令; 6. 撤銷編輯與還原: u:撤銷前一次的操作; 可連續敲u鍵撤銷此前的n次操作; ctrl+r:還原最近一次的撤銷操作; 其它: 重復前一次的編輯操作可以按'.'; 替換單個字符:先按'r',在按需要替換的字符; 7. 查找并替換: 末行模式下使用s命令: ADDR1,ADDR2s/pattern/string/[[g][i]] 示例: :.,$-3s/begian/after/gi 表示從當前行到倒數第三行之間忽略大小寫查找begian并替換為after; 直接查找: /pattern:在全文查找匹配到的字符串,按n鍵會跳到下一個匹配到的字符串; 8. 和shell交互: :! Command 9. vim設置: :set nu 顯示行號 :set nonu 不顯示行號 :set ic 忽略字符大小寫 :set noic 區分字符大小寫 :set ai 設定自動縮進 :set noai 取消設定自動縮進 :set hlsearch 高亮顯示 :set nohlsearch 不高亮顯示 :syntax on 語法高亮 :syntax off 不高亮顯示 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@centos6 ~]# sed -r -i 's/^[[:space:]]+/#&/g' /tmp/rc.sysinit 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; [root@centos6 ~]# sed -r -i 's/^[[:space:]]+//g' /tmp/grub.conf 3、刪除/tmp/rc.sysinit文件中的以#開頭,且后面跟了至少一個空白字符的行行的#和空白字符 [root@centos6 ~]# sed -r -i 's/^#[[:space:]]+//g' /tmp/rc.sysinit 4、為/tmp/grub.conf文件中前三行的行首加#號; [root@centos6 ~]# sed -i '1,3s/^/#&/g' /tmp/grub.conf 5、將/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改為1; [root@centos6 ~]# sed -r -i 's/(enabled|gpgcheck)=0/\1=1/g' /etc/yum.repos.d/CentOS-Media.repo 6、每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為形如etc-201504020202 * */4 * * * /bin/mkdir /tmp/etc-`date +%F%m%d%H%M` && cp -a /etc/* /tmp/etc-`date +%F%m%d%H%M` 7、每周2,4,6備份/var/log/messages文件至/backup/messages_logs/目錄中,保存的文件名形如messages-20150402 * * * * 2,4,6 /bin/cp /var/log/messages /backup/messages_logs/messages-`date +%Y%m%d` 8、每天每兩小時取當前系統/proc/meminfo文件中的所有以S開頭的信息至/stats/memory.txt文件中 * */2 * * * /bin/grep ^S /proc/meminfo >> /stats/memory.txt 9、工作日的工作時間內,每兩小時執行一次echo "howdy" * */2 * * 0 /bin/echo "howdy" 腳本編程練習 10、創建目錄/tmp/testdir-當前日期時間; [root@centos6 ~]# mkdir /tmp/testdir-`date +%Y%m%d` 11、在此目錄創建100個空文件:file1-file100 [root@centos6 ~]# for i in `seq 1 100`;do touch /tmp/testdir-`date +%Y%m%d`/file${i};done 12、顯示/etc/passwd文件中位于第偶數行的用戶的用戶名; [root@centos6 ~]# awk -F':' '{if(NF/2 -eq 0)print $1}' /etc/passwd 13、創建10用戶user10-user19;密碼同用戶名; [root@centos6 ~]# for i in `seq 10 19`;do useradd user$i && echo user$i|passwd --stdin user$i;done 14、在/tmp/創建10個空文件file10-file19; [root@centos6 ~]# for i in `seq 10 19`;do touch /tmp/file$i ;done 15、把file10的屬主和屬組改為user10,依次類推。 [root@centos6 ~]# for i in `seq 10 19`;do chown user$i.user$i /tmp/file$i;done
原創文章,作者:devon,如若轉載,請注明出處:http://www.www58058.com/47837
所有的crontab都不對,在仔細想想