vim 與 腳本

1、總結(jié)vim命令行模式常見快捷方式,以及vim查找,替換的方法

vim命令行模式常見快捷方式


i insert, 在光標所在處輸入
I 在當前光標所在行的行首輸入
a append, 在光標所在處后面輸入
A 在當前光標所在行的行尾輸入
o 在當前光標所在行的下方打開一個新行
O 在當前光標所在行的上方打開一個新行
ZZ 保存退出
ZQ 不保存退出
:q 退出
:q! 強制退出,丟棄做出的修改
:wq 保存退出
:x 保存退出

字符間跳轉(zhuǎn):
h: 左 l: 右 j: 下 k: 上
#COMMAND:跳轉(zhuǎn)由#指定的個數(shù)的字符

單詞間跳轉(zhuǎn):
w:下一個單詞的詞首
e:當前或下一單詞的詞尾
b:當前或前一個單詞的詞首
#COMMAND:由#指定一次跳轉(zhuǎn)的單詞數(shù)

當前頁跳轉(zhuǎn):
H:頁首 M:頁中間行 L:頁底
zt:將光標所在當前行移到屏幕頂端
zz:將光標所在當前行移到屏幕中間
zb:將光標所在當前行移到屏幕底端

行首行尾跳轉(zhuǎn):
^: 跳轉(zhuǎn)至行首的第一個非空白字符
0: 跳轉(zhuǎn)至行首
$: 跳轉(zhuǎn)至行尾

行間移動:
#G :擴展命令模式下:# 跳轉(zhuǎn)至由#指定行
G:最后一行
1G, gg: 第一行
句間移動:
):下一句(:上一句
?段落間移動:
}:下一段{:上一段

Ctrl+f: 向文件尾部翻一屏
Ctrl+b: 向文件首部翻一屏
Ctrl+d: 向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏

字符編輯:
x: 刪除光標處的字符
#x: 刪除光標處起始的#個字符
xp: 交換光標所在處的字符及其后面字符的位置
~:轉(zhuǎn)換大小寫
J:刪除當前行后的換行符

替換命令(r, replace)
r: 替換光標所在處的字符
R:切換成REPLACE模式

刪除命令:
d: 刪除命令,可結(jié)合光標跳轉(zhuǎn)字符,實現(xiàn)范圍刪除

復(fù)制命令(y, yank):
y: 復(fù)制,行為相似于d命令

粘貼命令(p, paste):
p:緩沖區(qū)存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面
P:緩沖區(qū)存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面

vim查找,替換的方法

查找
/PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向

查找并替換
s: 在擴展模式下完成查找替換操作
格式:s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符
要查找的內(nèi)容:可使用模式
替換為的內(nèi)容:不能使用模式,但可以使用\1, \2, ...等后向引用符號;還可以使用“&”引用前面查找時查找到的整個內(nèi)容
修飾符:
i: 忽略大小寫
g: 全局替換;默認情況下,每一行只替換第一次出現(xiàn)
gc:全局替換,每次替換前詢問
查找替換中的分隔符/可替換為其它字符,例如
s@/etc@/var@g
s#/boot#/#i

eg:
用vim,在/etc/default/grub倒數(shù)第二行末尾引號前面加入 xyz

:%s/\(.*CMD.*\)"/\1 xyz"/

用vim,在/etc/fstab中給行首不是#開頭的都加上#

:%s@\(^[^#].*\|^$\)@#\1@
方法二
:%s@^[^#]\|^$@#&@

用vim,去除#開頭的行

:%s/^#.*\n//
方法二 留下了空行
:%s@^#.*$@@

2、總結(jié)腳本中運算符、邏輯運算以及用法

條件運算符

運算符號 代表意義 應(yīng)用 說明
= 等于 整型或字符串比較: str1 = str2 字符串str1 和字符串str2 相等時返回真,如果在[]中,只能是字符串
== 等于 整型或字符串比較: str1 == str2 字符串str1 和字符串str2 相等時返回真,如果在[]中,只能是字符串
!= 不等于 整型或字符串比較: str1 != str2 字符串str1和字符串str2不相等時返回真,如果在[]中,只能是字符串
< 小于 整型或字符串比較: str1 < str2 按字典順序排序,字符串str1 在字符串str2 之前,在[]中,它表示字符串,如需使用請轉(zhuǎn)義<
> 大于 整型和字符串比較 在[]中,它表示字符串,如需使用請轉(zhuǎn)義>
-eq 等于 整型比較: int1 -eq int2 如果int1 等于int2,則返回真
-ne 不等于 整型比較: int1 -ne int2 如果int1 不等于int2,則返回真
-lt 小于 整型比較: int1 -lt int2 如果int1 小于int2,則返回真
-gt 大于 整型比較: int1 -gt int2 如果int1 大于int2,則返回真
-z 空字符串 字符串比較: -z string 字符串string 為空串(長度為0)時返回真
-n 非空字符串 字符串比較 :-n string 字符串string 為非空串時返回真
-le 小于或等于 整型比較: int1 -le int2 如果int1 小于等于int2,則返回真
-ge 大于或等于 整型比較: int1 -ge int2 如果int1 大于等于int2,則返回真

邏輯運算


3、編寫腳本/root/bin/backup.sh,可實現(xiàn)每日將/etc/目錄備份到 /root/etcYYYY-mm-dd中

[root@centos7 bin]#cat backup.sh 
#!/bin/bash
echo "Backup is begin..."
sleep 1
cp -av /etc/ /data/etc`date +%F`
echo "Backup is finished"

4、編寫腳本/root/bin/nologin.sh和login.sh,實現(xiàn)禁止和充許普通用戶登錄系統(tǒng)

解讀:
當/etc/下存在nologin文件時普通用戶就無法登錄系統(tǒng)。管理員刪掉這個文件后才可以登錄。
因此,對于生產(chǎn)環(huán)境中,將來做維護有用,維護時禁止普通用戶登錄。

禁止普通用戶登錄
[root@centos7 bin]#cat nologin.sh
#!/bin/bash
touch /etc/nologin
解除禁止
[root@centos7 bin]#cat login.sh 
#!/bin/bash
rm -f /etc/nologin

5、編寫腳本/root/bin/disk.sh,顯示當前硬盤分區(qū)中空間利用率最大的值

[root@centos7 bin]#cat disk.sh
#!/bin/bash
#
#********************************************************************
#Author:                Jack
#QQ:                    Secret
#Date:                  2019-05-27
#FileName:             disk.sh
#URL:                   Building
#Description:          The test script
#Copyright (C):         2019 All rights reserved
#********************************************************************
echo "The max use of disk is `df -h | grep "/dev/sd.*" | tr -s ' ' | cut -d ' ' -f 5 | sort -nr | head -n1`"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 命令歷史 以:和/開頭的命令都有歷史紀錄,可以首先鍵入:或/然后按上下箭頭來選擇某個歷史命令。 啟動vim 在命令...
    im螞蟻閱讀 31,055評論 3 48
  • 自我總結(jié)篇: 對文件的操作技巧: vim文件一個有三種狀態(tài):命令(瀏覽/輸入命令轉(zhuǎn)變末行模式),文本(添加/編輯/...
    小知大知閱讀 881評論 0 0
  • 本文摘自https://www.cnblogs.com/yangjig/p/6014198.html 感謝原作者的...
    榮子3507閱讀 390評論 1 0
  • 在命令狀態(tài)下對當前行用== (連按=兩次), 或?qū)Χ嘈杏胣==(n是自然數(shù))表示自動縮進從當前行起的下面n行。你可...
    三十兒閱讀 467評論 0 1
  • vim 選擇文本,刪除,復(fù)制,粘貼 文本的選擇,對于編輯器來說,是很基本的東西,也經(jīng)常被用到,總結(jié)如下: v 從...
    壹首簡單的歌閱讀 938評論 0 7

友情鏈接更多精彩內(nèi)容