第六周小練習

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

vim編輯器的基本使用

vim模式: 
1、編輯模式(命令模式) 
2、輸入模式 
3、末行模式 

一、打開文件

vim /path/to/somefile 打開單個文件

如果文件存在為打開,否則保存退出時為新建

vim /path/to/somefile

vim +# : 打開文件,光標定位到自定行行首

vim + : 打開文件,光標定位到最后一行行首

vim +/PATTERN : 打開文件,定位第一次被PATTERN匹配的行的行首

例如: vim +12 /test/inittab 打開文件并定位到第12行

二、關閉文件

1、末行模式關閉文件

:q 退出

:wq 保存并退出

:q! 不保存退出

:w 保存

2、編輯模式下退出

ZZ 保存并退出

ZQ 不保存退出

3、末行模式

:/w /path/to/file 保存到指定路徑

三、移動關標(編輯模式)

1、逐字符移動:

h: 左

l: 右

j: 下

k: 上

#h: 想左移動#個字符(#表示移動指定數目的字符)

2、以單詞我I單位進行移動

w: 移至下一個單詞的詞首

e: 跳至當前或下一個單詞的詞尾

b: 跳至當前或前一個單詞的詞首

執行命令之前可以輸入指定數字表示需要執行幾次命令,例如:

#w #e #b

3w:向后移動到第3個詞首

3、行類跳轉:

0: 絕對字符

^: 行首的第一個非空白字符

$: 絕對行尾

H:當前屏幕的第一行行首

L:當前屏幕最后一行行首

4、行間跳轉

編輯模式

#G : 跳轉至第#行

G : 最行一行

gg:與 1G 作用相同,相當于行首

三、翻屏

Ctrl+f: 向下翻一屏

Ctrl+b: 向上翻一屏 before

Ctrl+d: 向下翻半屏 down

Ctrl+u: 向上翻一屏 up

四、刪除單個字符

x: 刪除出光標所在處的單個字符

#x: 刪除光標所在處及向后的共#個字符

五、刪除命令 d

命令模式下:

d命令跟跳轉符號

#d跳轉符:刪除光標所在跳出范圍共#個

#dw, #de, #db

dd:刪除當前光標所在行s

dd#: 刪除包含當前光標所在行內的#行

末行模式下:

#,#d:刪除從第幾行到第幾行

.d: 表示當前行

$d: 最后一行

+#d: 向下的#行

六、粘貼命令 p

    p: 如果刪除或復制為整行內容,則粘貼至光標所在行的下方,如果復制或刪除的內容為非整行,則粘貼貼至光標所在字符的后面

    P: 如果刪除或復制為整行內容,則粘貼至光標所在行的上方,如果復制或刪除的內容為非整行,則粘貼至光標所在字符的前面

七、復制命令 y

y命令跟跳轉符號

#y[跳轉符]:復制光標所在跳出范圍共#個

yy:復制當前光標所在行

八、替換:r

r: 替換單個字符

R: 替換模式,可以對一行來替換

九、撤銷編輯操作 

命令模式下

u: 撤銷前一次的編輯操作

連續u命令可以撤銷此前的n次操作

#u: 直接撤銷前#次編輯操作

撤銷最近一次的撤銷:Ctrl+r

十一、重復前一次的編輯操作

命令模式下按 .

十二、查找命令模式下

/PATTERN

?PATTERN

N

PATTERN:支持正則表達式

十三、查找并替換在末行模式下使用命令

ADDR1,ADDR2s@PATTERN@string@gi

1,$:第一行到最后一行

%: 表示全文

十四、使用vim編輯多個文件

vim FILE1 FILE2 FILE3…

十五、環境設置(只能末行模式)

1、顯示或取消顯示行號

:set number

:set nu

:set nonu

2、設定vim忽略或區分字符大小寫

:set ignorecase

:set ic

:set noic

3、設定自動縮進

:set autoindent

:set ai

:set noai

4、查找到的文本高亮顯示或取消

:set hlsearch

:set nohlsearch

5、語法高亮

:syntax on

:syntax off

5、查看所有環境指令

:set all

十六、配置文件

/etc/vimrc 全局

~/.vimrc 局部 如果沒有,可以手動創建

練習

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

%s/^[[:space:]]\+/#&/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/\(gpgcheck=\|enabled=\)0/\11/g

6.每4小時執行一次對/etc目錄的備份,備份至/backup目錄中,保存的目錄名為性如etc-201504020202

crontab -e 
0 */4 * * * cp -a /etc /backup/etc-`date +%Y%m%d%H%M`

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

crontab -e
0 0 * * 2,4,6 cp -a /var/log /backup/message_logs/messages-`date +%Y%m%d`

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

crontab -e 
0 */2 * * * grep "^S" /proc/meminf >> /stats/memory.txt

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

crontab -e
0 9-18/2 * * 1-5 echo "howdy"

腳本編程練習

  1. 創建目錄/tmp/testdir當前日期時間

  2. 在此目錄創建100個空文件:file1-file100

#!/bin/bash
#
dirname="testdir$(date+%Y%m%d%H%M)"
mkdir /tmp/$dirname
for num in {1..100};do    
    touch /tmp/$dirname/file$num
done

3.  顯示/etc/passwd文件中位于第偶數行的用戶的用戶名

#!/bin/bash
#
sed '1~2d' /etc/passwd|cut -d: -f1

4.  創建10用戶user10-user19;密碼同用戶名

#!/bin/bash
#
for i in {10..19};do
  useradd  user$i
  echo "user$i"|passwd --stdin "user$i"
done

5.  在/tmp/創建10個空文件file10-file19

6.  把file10的屬主和屬組改為user10,一次類推

#!/bin/bash
#
for i in {10..19};do  
    touch /tmp/file$i  
    chown user10:user10 /tmp/file$i
done

原創文章,作者:N24-超,如若轉載,請注明出處:http://www.www58058.com/64240

(0)
N24-超N24-超
上一篇 2016-12-19 21:58
下一篇 2016-12-20 03:22

相關推薦

  • CentOS啟動流程

    CentOS啟動大致流程: POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/et…

    Linux干貨 2017-07-12
  • 數組,字符串處理,mktemp命令,install命令,bash的環境配置文件,程序包編譯

    數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 數組名和索引 索引:編號從0開始,屬于數值索引 注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0版本之后開始支持。 bash的數組支持稀疏格式(索引不連續) 聲明數組: declare -a ARRAY_NAME(普通數組可以不加聲…

    Linux干貨 2016-08-24
  • Kickstart+PXE自動部署

    Kickstart+PXE自動部署 無人值守安裝簡介 無人值守安裝(Unattended Setup)指軟件安裝時無需任何用戶干預,直接按默認或通過應答文件設置安裝,這對于無特殊需求的用戶或企業大批量部署安裝操作系統及軟件時非常方便。無人值守安裝也稱為靜默安裝,在安裝過程中可以靜默安裝好預先設計集成的一些常用軟件,安裝結束以后軟件就已經可以使用,很多軟件都支…

    Linux干貨 2016-09-17
  • Shell編程(1)

    Shell編程:     編程語言:機器語言、匯編語言、高級語言         高級語言:             靜…

    Linux干貨 2016-08-18
  • Linux基礎知識——SHELL之循環

    1、寫一個腳本,判斷當前系統用戶shell是否都為可登陸shell(即非/sbin/nologin),分別計算兩類用戶的個數(通過比較字符串實現) #!/bin/bash #       check the user could login&nbsp…

    Linux干貨 2016-12-13
  • LINUX命令幫助

    命令幫助 在維護和使用Linux系統時,常常會遇到忘記命令的使用方法,遇到一個比較陌生的命令,又或者想知道這個命令是什么的情況可以查看命令使用幫助。 LINUX命令使用幫助可參考:程序自身的幫助文檔、官方文檔、官方站點、LINUX的發行版官方文檔、其他網站或者搜索引擎 LINUX命令分為內部命令(shell內置的命令)和外部命令,內部命令和外部命令…

    Linux干貨 2017-05-28
欧美性久久久久