馬哥教育網絡班22期+第6周課程練習

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

(0)
devondevon
上一篇 2016-09-26 07:43
下一篇 2016-09-26 07:43

相關推薦

  • N25第五周 grep 和find 命令使用示例

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行;    [root@localhost grub]# grep "^[[:space:]]\+.*" grub.conf    root (hd0,0)…

    Linux干貨 2016-12-25
  • nginx 配置參數說明和實驗

    nginx.org 實驗版本: 1.10.2 相關命令: # nginx -t //檢查配置文件格式 #nginx -s reload //重新載入配置文件 實驗: 主配文件大概組成 主配置文件的設定 /etc/nginx/nginx.conf events{..} //事件驅動相關 http{..} //網站服務相關 全局配置段解讀與實驗: user ng…

    2017-05-12
  • 魔術方法 反射

    魔術方法 反射 反射(reflection):指的是運行時獲取類型定義信息。一個對象能夠在運行時像照鏡子一樣反射出其類型信息;也就是說能夠通過一個對象,找到自己的type、class、attribute、或method的能力,稱為反射或者自省。 具有反射能力的函數:type、isinstance、callable、dir、getattr。 運行時和編譯時不同…

    Linux干貨 2017-11-30
  • 8月9日sed命令

    sed命令及vim基礎使用命令 處理文本的工具sed stream editor,行編輯器    sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有…

    Linux干貨 2016-08-11
  • 網絡及TCP三次握手四次揮手

    批處理應用程序 ????FTP 、TFTP 、庫存更新 ????無需直接人工交互 ????帶寬很重要,但并非關鍵性因素 交互式應用程序 ????庫存查詢、數據庫更新。 ????人機交互。 ????因為用戶需等待響應,所以響應時間很重要,但并非關鍵性因素,除非要等待很長時間。 實時應用程序 ????VoIP 、視頻 ????人與人的交互 ????端到端的延時至…

    2017-05-06

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-27 09:58

    所有的crontab都不對,在仔細想想

欧美性久久久久