第六周作業

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

blob.png

光標跳轉

字符間跳轉

h或向左箭頭鍵 光標向左移動一個字符
j或向下箭頭鍵 光標向下移動一個字符
k或向上箭頭鍵 光標向上移動一個字符
l或向右箭頭鍵 光標向右移動一個字符
翻屏 Ctrl+f 屏幕向下移動一頁
Ctrl+b 屏幕向上移動一頁
Ctrl+d 屏幕向下移動半頁
Ctrl+u 屏幕向上移動半頁
Enter 按行向后翻
單詞間跳轉 w 下一個單詞的詞首
e 當前或后一個單詞的詞尾
b 當前或前一個單詞的詞首
行首行尾跳轉 ^ 跳轉至行首的第一個非空白字符
0 跳轉至行首
$ 跳轉至行尾
行間跳轉 #G 跳轉至由#指定的行
1G,gg 第一行
G 最后一行
字符編輯
字符編輯 i 進入插入模式,并從當前光標所在處插入
a 進入插入模式,并從當前光標所在處的下一個字符處插入
o 進入插入模式,并從當前光標所在行的下一行處插入
x 刪除光標所在處的字符
#x 刪除光標所在處起始的#個字符
xp 交換光標所在處的字符與其后面的字符的位置
替換命令 r 替換光標所在處的字符一次
R 會一直替換光標所在處字符,直到按下ESC
刪除命令 d$ 刪除從光標所在處到該行的最后一個字符
d0 刪除從光標所在處到該行第一個字符
d1G 刪除從光標所在到第一行的所有數據
dG 刪除從光標所在處到最后一行的所有數據
dd 刪除光標所在行
ndd n為數字。刪除光標所在的向下n行
復制命令 y$ 復制光標所在的那個字符到該行行尾的所有數據
y0 復制光標所在的那個字符到該行行首的所有數據
y1G 復制光標所在行到第一行的所有數據
yG 復制光標所在行到最后一行的所有數據
yy 復制光標所在行
nyy n為數字。復制光標所在的向下n行
粘貼命令 p 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則,則粘貼至當前光標所在處的后方
P 緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則,則粘貼至當前光標所在處的前方
可視化編輯 v 字符選擇,會將光標經過的地方反白選擇
V 行選擇,會將光標經過的行反白選擇
Ctrl+v 塊選擇,可以用長方形的方式選擇數據
y 將反白的地方復制起來
d 將反白的地方刪除
撤銷與撤銷撤銷 u 撤銷此前的操作
Ctrl+r 撤銷此前的撤銷
. 重復執行前一個編輯操作
末行模式
地址定界 :# 特定的第#行
:% 選定全文
:. 選定當前行
:$ 選定最后一行
:#,# 從左側第#行到右側第#行
:#,+# 從左側第#行起,加上右側#表示的行數
:/pat1/,/pat2/ 從第一次被pat1匹配開始到第一次被pat2匹配結束
:#,/pat/ 從第#行開始到第一次匹配到pat結束
:/pat/,$ 從第一次匹配到pat開始到最后一行結束
查找和替換 /pat 從當前光標所在處向文件尾部查找能夠被pat匹配到的所有字符串
?pat 從當前光標所在處向文件首部查找能夠被pat匹配到的所有字符串
:s/pat1/pat2/ 將當前行的pat1替換為pat2
:%s/pat1/pat2/g 將全文中所有的pat1替換為pat2
多文件編輯 :next 切換到下一個文件
:prev 切換到上一個文件
:first 切換到第一個文件
:last 切換到最后一個文件
:wqall 保存所有文件并退出
:wall 保存所有文件
:qall 退出所有文件
多窗口 Ctrl+w,s 水平分割窗口
Ctrl+w,v 垂直分割窗口
Ctrl+w,方向鍵 窗口間切換
個性化定制 :set nu 顯示行號
:set nonu 取消顯示行號
:set ai 啟用自動縮進
:set noai 禁用自動縮進
:set hlsearch 啟用高亮搜索
:set nohlsearch 禁用高亮搜索
:syntax on 啟用語法高亮
:syntax off 禁用語法高亮
:set ic 啟用忽略字符大小寫
:set noic 禁用忽略字符大小寫

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

:%s@^\([[:space:]]\+\)@#\1@g

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

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

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

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

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

:1,3s@^@#@

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 * * * /bin/cp -a /etc/ /backup/etc-$(date +%Y%m%d%H%M) >/dev/null

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

# crontab -e
0 0 * * 2,4,6 /bin/cp -a /var/log/messages /backup/messages_logs/messages-$(date +%Y%m%d) >/dev/null

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

# crontab -e
0 */2 * * * /bin/grep ^S /proc/meminfo >>/stats/memory.txt

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

0 9-17/2 * * 1-5 /bin/echo "howdy"

腳本編程練習

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

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

10,11題合并解答:

#!/bin/bash
_DIR="/tmp/testdir-$(date +%Y%m%d%H%M%S)"
/bin/mkdir -p $_DIR
for i in `seq 100`
do
    touch $_DIR/file$i
done

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

# sed -n 'n;p' /etc/passwd

13、創建10用戶user10-user19;密碼同用戶名;

#!/bin/bash
for i in {10..19}
do
        id user$i &>/dev/null && echo "user$i already exists!" && continue || useradd user$i
        echo "user$i"|passwd --stdin user$i
done

14、在/tmp/創建10個空文件file10-file19;

15、把file10的屬主和屬組改為user10,依次類推。

14,15題合并解答:

#!/bin/bash
for i in {10..19}
do
        [ ! -f /tmp/file$i ] && touch /tmp/file$i
        /bin/chown user$i:user$i /tmp/file$i
done

原創文章,作者:N26-西安-方老喵,如若轉載,請注明出處:http://www.www58058.com/66934

(0)
N26-西安-方老喵N26-西安-方老喵
上一篇 2017-01-21
下一篇 2017-01-22

相關推薦

  • 第五周練習

    1.顯示當前系統上root,fedora或user1用戶的默認shell         # cat /etc/passwd | cut -d: -f1,7 | grep -E "(fedora|root|user1)" 2.找出/etc/rc.d/init.…

    Linux干貨 2016-11-26
  • sed工具 介紹

    sed工具 地址定界 不給地址:對全文進行處理 單地址: #:指定行 /pattern/:被此處模式所能夠匹配到的每一行 地址范圍: #,# #,+# /pat1/,/pat2/ #,/pat1/ ~:步進 1~2 奇樹行 2~2 偶數行 cat -n passwd >passwd2 新建文件 sep -n ‘/^h//^s/’…

    Linux干貨 2017-05-31
  • Package Manager

    Package Manager Package 管理工具的分類 rpm yum Source Code Install 管理工具的分類 前段管理工具:Debian:debRedhat,Suse…:rpm 前端管理工具:Debian:apt-getRedhat:yum,dnf RPM RPM是什么?RPM全稱是RPM Package Manager…

    2016-03-27
  • 22期第8周課堂練習

    1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。     2、IP地址的分類有哪些?子網掩碼的表示形式及其作用   A類:第一段為網絡號,后三段為主機號            網絡號0 000 0000 – 0 111 1111…

    Linux干貨 2016-10-09
  • 文本處理工具

    分頁查看文件內容 less和more命令介紹 分頁查看文件內容:less和more less:一頁一頁地查看文件或STDIN輸出   # less FILE less的快捷鍵:     Ctrl+u:向上翻半屏     Ctrl+d:向下翻…

    Linux干貨 2016-08-07
  • Linux系統的軟鏈接和硬鏈接

    Linux的鏈接是一種共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。一共分為兩種鏈接,分別是軟鏈接和硬鏈接。 一、硬鏈接 1、硬鏈接的本質上是一個文件,它們除了名字不一樣,其他都一樣,占用的空間是一個。硬鏈接會增加文件的鏈接數。如下圖 (1)建立硬鏈集之前     (2)建立硬鏈接之后 2、刪去一個鏈接名,鏈接數減一…

    Linux干貨 2016-10-22
欧美性久久久久