第六周作業

請詳細總結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 18:24
下一篇 2017-01-22 17:16

相關推薦

  • Linux用戶和組的主要配置文件及其相關命令

    Linux用戶和組的主要配置文件: /etc/passwd:用戶及其屬性信息 /etc/shadow用戶密碼及其相關屬性 /etc/group組及其屬性信息 etc/gshadow組密碼及其相關屬性 /etc/passwd 1.用戶名: 2.密碼位:x pwconv (默認) 將密碼映射到了/etc/shadow pwunconv 將密碼保存到/etc/pa…

    2017-07-22
  • linux用戶管理

    linux用戶:       linux用戶大體分為兩種:一是:管理員用戶;二是普通用戶,普通用戶又可以分為系統用戶和登錄用戶。因為linux是一個多用戶多任務的系統,所以每一個要使用系統資源的用戶,都要向管理員申請一個賬號,使用這個賬號登錄到系統。每個用戶都擁有一個自己的名字和密碼,以登錄到用戶。 每個用戶都有唯一的用戶標識(…

    Linux干貨 2016-08-04
  • keepalived的安裝和配置

    一、簡介 Keepalived是一個免費開源的,用C編寫的類似于layer3, 4 & 7交換機制軟件,具備我們平時說的第3層、第4層和第7層交換機的功能。主要提供loadbalancing(負載均衡)和 high-availability(高可用)功能,負載均衡實現需要依賴Linux的虛擬服務內核模塊(ipvs),而高可用是通過VRRP協議實現多臺…

    Linux干貨 2017-10-30
  • 八.Linux博客-2016年8月8日sed、vim

    格式說明: 操作 概念 命令 說明及舉例 八.sed、vim sed 文本編輯工具 行編輯器,每次取出一行在內存里處理,處理完成后屏幕打印。完成后再取出一行放到內存里處理,覆蓋原來內存中的行,循環。。 sed -n '3d' f1 把文件f1中的第三行刪掉并不在屏幕上顯示 sed -n&n…

    Linux干貨 2016-08-24
  • 2016/08/21:shell遺留select,包管理器rpm,yum

    select:搭配case更好的顯示選項     這個命令用來創建菜單,按數字排列,并等待用戶輸入,輸入對應數字,執行相應操作,更清楚明了     普通版:select var in list        &…

    Linux干貨 2016-08-24
  • Week5 grep和find命令及正則表達式練習

    1、顯示當前系統上root、fedora或user1用戶的默認shell;   cat /etc/passwd  | grep -E "^\<root\>|^\<fedora\>|^\<\user1\>" |&nb…

    Linux干貨 2017-02-14
欧美性久久久久