馬哥教育網絡班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
下一篇 2016-09-26

相關推薦

  • Windows和Linux關于一塊網卡綁定多個網絡地址的解決之道

    Windows和Linux關于一塊網卡綁定多個網絡地址的問題解決之道   在不同場合用不同ip地址訪問網絡,而且都是固定ip。是一件很頭疼的問題。不過,Windows和Linux系統都提供了解決方法。接下來我們先談Windows系統下操作,再說Linux如何操作。 一、Windows設置   1. 我以Windows7為例,首先鼠標左鍵點擊你電腦左下角有網絡…

    Linux干貨 2016-09-07
  • 第一周:Linux基礎之系統入門知識(一)

    一、計算機的組成及功能 現代計算機的基本結構是由匈牙利-美國科學家馮· 諾依曼于1946年提出的。迄今為止所有進入實用的電子計算機  都是按馮· 諾依曼提出的結構體系和工作原理設計制造的故又統稱為“馮·諾依曼型計算機"。 根據馮.諾依曼原理:計算機由運算器、控制器、存儲器、輸入設備、輸出設備所組成 運算器: 進行算術與邏輯運算 控制器:&…

    Linux干貨 2016-09-18
  • EXT4文件系統的初步使用

    文件系統的類型多種多樣,我們接觸得比較多的當屬Windows系統上的FAT32和NTFS。 而EXT文件系統(Extended filesystem)則是linux上常見的文件系統類型。 目前最新的版本是ext4,常見于CentOS6之中。 1.查看當前系統中有沒有掛載使用中的EXT4文件系統,可以使用mount命令: 2.如何創建一個EXT4的文件系統(f…

    系統運維 2016-02-14
  • lvs初探

    LVS 簡述 HA基礎知識 lvs配置 簡述 什么是lvs? lvs是linux virtual server linux虛擬服務的縮寫,通過一臺調度服務器來調度收到的請求并分發給后端的real server。 lvs的功能是什么? lvs能夠實現在大并發的情況下,將前端調度器收到的請求分發給后端服務器處理,實現了負載均衡集群的作用。 lb基礎知識 lb集群…

    Linux干貨 2016-05-31
  • 馬哥教育網絡班22期第5周課程作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell; cat /etc/passwd | grep ^root | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,形如:hello(); …

    Linux干貨 2016-12-05
  • shell之變量總結

    1 什么是shell變量 按照定義來說,變量是存儲設備中的一些可讀寫的存儲單元.變量可以定制用戶本身的工作環境。使用變量可以保存有用信息,使系統獲知用戶相關設置。變量也用 于保存暫時信息。例如:一變量為EDITOR,系統中有許多編輯工具,但哪一個適用于系統呢?將此編輯器名稱賦給EDITOR,這樣,在使用cron或其 他需要編輯器的應用時,這就是你將一直使用的…

    Linux干貨 2016-08-15

評論列表(1條)

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

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

欧美性久久久久