更多筆記點擊查看
linux
Linux學習從入門到打死也不放棄,徹底筆記整理(持續更新)nginx
http://www.javashuo.com/article/p-viilhgyh-vk.html
git
筆記整理起始時間:2018年4月7日14:15:07正則表達式
本章內容:算法
各類文本工具來查看、分析、統計文本shell
cat,tac,rev,more,less,head,tail,cut,paste,wc,uniq,sort,diff
express
grepvim
正則表達式windows
擴展正則表達式bash
vim
支持標準輸入的命令|
cat tr mail bc
more less head tail cut wc sort uniq grep
抽取文本的工具
文本內容:less和cat
文本截取:head和tail
按列抽取:cut
按關鍵字抽取:grep
文件查看命令:
cat,tac,rev
cat -E 顯示行結束符$
-n 對顯示出的每一行進行編號
-A 顯示全部控制符
-b 非空行編號
-s 壓縮連續的空行成一行
tac file 上下反向查看文件
rev file 左右反向查看文件
分頁查看文件內容:
more: 分頁查看文件
more -d file 顯示翻頁及退出提示
less 一頁一頁地查看文件或stdin輸出
查看時有用的命令包括:
/文本 搜索文本
n/N 跳到下一個或上一個匹配
less命令爲man命令默認使用的分頁工具
顯示文本前或後行內容
head file 默認查看文件前10行
-c1000 指定獲取前1000字節
-n# 指定獲取前#行
-# 指定前#數 (跟-n#好像沒什麼不一樣)
tail file 默認查看文件後10行
-c50 指定獲取後50個字節
-n# 指定獲取後#行
-# 指定獲取後#行
-f 跟蹤顯示文件fd新追加的內容,經常使用於日誌監控
可是文件若是被刪除,沒法發現
-F 跟蹤文件名,至關於--follow=name --retry
當文件被刪除時會受到提示
tailf file 相似於tail -f,當文件不增加(好比刪除)時並不訪問文件
按列抽取文本cut,合併文件paste
cut [option]...[file]...
-d「」 指明分隔符,默認tab
-f filed 指明第幾列
# 第#個字段
1,5 第1和第5列
1-5 第1-5列
1-3,5 第123,5列
-c1-15, 按字符切割
cut -d: -f6-7 /etc/passwd
以冒號爲分隔符取/etc/passwd的第6-7列
cut -d: -f1,7 /etc/passwd /etc/shadow|cat -n
以冒號爲單位/etc/passwd和/etc/shadow的第1和第7列 且顯示行數
--output-delimiter=STRING 指定輸出分隔符
如:
cut -d: -f1-3 --output-delimiter=@ /etc/passwd
以:爲分隔符取etc/passwd 第1-3列,且輸出以@爲分隔符
cut -c1-14,30-45 /etc/profile
取/etc/profile 每行1-14 30-45個字符
paste [option]...[file]... 合併兩個文件同行號的列到一行
-d"" 指定分隔符,默認用tab
-s 全部的行合成一行顯示
paste f1 f2 行合併
paste -s f1 f2 列顯示變行顯示
分析文本的工具:
wc:文本數據統計
計算單詞總數,行總數,字節總數和字符總數
能夠對文件或者stdin中的數據運行
wc /etc/profile
76 252 1795 /etc/profile
行數 單詞數 字節數
經常使用選項
-l 只計算行數
-w 只計算單詞總數
-c 只計算字節總數
-m 只計算字符總數
-L 顯示文件中最長行的長度
sort:文本排序sort
把整理過的文本顯示在stdout,不改變原始文件
sort files 默認是按字符排序文件
經常使用選項:
-r 反向排序
-R 隨即排序
-n 執行按數字大小整理
-f 選項忽略(fold)字符串中的字符大小寫
-u 選項(獨特,unique)刪除輸出中的重複行
-t"#" 使用#做爲字段界定符
-k"X" 按照使用#字符分隔的第X列來整理,可以使用屢次
例:
cut -d: -f1-3 /etc/passwd|sort -t: -k3 -n
以:爲分隔符取/etc/passwd前3列,且按照uid數字大小排序
uniq命令:
uniq:從輸入中刪除先後相接的重複的行
uniq [option]...[file]...
-c 顯示每行重複出現的次數
-d 僅顯示重複過的行
-u 僅顯示未曾重複的行
注意:連續且徹底相同方爲重複
常和sort命令一塊兒配合使用:
sort userlist.txt |uniq -c
比較文件:
比較兩個文件之間的區別
diff file1 file2
比較文件,會標記不一樣的行
1,51c1,51,表示1-51行有區別
diff命令的輸出被保存在一種叫作「補丁「的文件中
使用 -u 選項來輸出「統一的(unified)"diff格式文件,最適合用於補丁文件
patch 複製在其餘文件中進行的改變(要慎重使用)
適用 -b 選項來自動備份改變了的文件
例:
diff -u f11 f22 > f33.diff
rm -rf file1
patch -b f22 f33.diff
使用f11 f22的diff文件f33.diff恢復f11文件
原f22文件會被更名備份爲f22.orig,f22文件即爲原f11文件
練習1:
1.找出ifconfig 網卡名 命令結果中本機的IPv4地址
ifconfig ens33|head -n2|tail -n1|tr -s " " |cut -d" " -f3
2.查出分區空間使用率的最大百分比值
df|tr -s " " "%"|cut -d"%" -f5|sort -nr|head -n2|tail -n1
3.查出用戶UID最大值的用戶名、UID及shell類型
cat /etc/passwd|cut -d: -f1,3,7|sort -nr -t":" -k2|head -1
4.查出/tmp的權限,以數字方式顯示
stat /tmp|head -n4|tail -1|cut -d: -f2|tr -dc "[:digit:]\n"
5.統計當前鏈接本機的每一個遠程主機IP的鏈接數,並按從大到小排序
netstat -nt|tr -s " "|cut -d" " -f5|uniq -c|tr -s ' ' |sort -nr
-c"" -k2
cat access_log |cut -d' ' -f1|sort|uniq -c|sort -nr
Linux文本處理三劍客
grep:文本過濾(模式:pattern)工具
grep,egrep,fgrep(不支持正則表達式搜索)
sed:stream editor,文本編輯工具
awk:linux上的實現gawk,文本報告生成器
grep:Global search Regular expression and Print out the line
做用:文本搜索工具,根據用戶指定的「模式」對目標文本逐行進行匹配檢查
打印匹配到的行
模式:由正則表達式字符及文本字符所編寫的過濾條件
grep [options] pattern [file]...
例:
grep root /etc/passwd 在/etc/passwd 中搜索含有root的行並輸出
grep "$USER" /etc/passwd 在/etc/passwd中搜索當前用戶,並輸出行
grep '$USER' /etc/passwd 在/etc/passwd中搜索字符$USER,並輸出行
grep `whoami` /etc/passwd 支持命令調用如`whoami`
ls |grep ok 在ls的輸出結果中匹配含有「ok」的選項並輸出
--color=auto: 對匹配到的文本着色顯示
-v 取反,顯示不被pattern匹配到的行
-i 忽略字符大小寫
-n 顯示匹配的行數
-c 統計匹配的行數,僅顯示行數,不輸出匹配到的信息
-o 僅顯示匹配到的字符串
-q 靜默模式,不輸出任何信息,
結果存在變量 $? 中,有匹配爲0,沒有匹配爲1
-A#:after 連同匹配到的行數的後#行一塊兒輸出
-B#:befor 連同匹配到的行數的前#行一塊兒輸出
-C#:context 先後#行一塊兒輸出
-e: 實現多個選項間的邏輯or關係
grep -e 'cat' -e 'dog' file
-w 匹配整個單詞,僅包含的不輸出,如只匹配roo,就不會輸出root
字母數字下劃線都算單詞的一部分,其餘符號爲分隔符
-E 使用ERE(擴展正則表達式)
-F 至關於fgrep,不支持正則表達式
grep -f file 匹配文件中的pattern,或關係
i 特殊顯示,會在行首顯示文件名
$?,存儲上一個命令的返回值,ture爲 0,錯誤爲非0
正則表達式:
man 7 regex
regexp:由一類特殊字符及文本字符所編寫的模式(pattern),其中有些字符
(元字符)不表示字符字面意義,而表示控制或通配的功能
程序支持:grep,sed,awk,vim,less,nginx,varnish等
分兩類:
基本正則表達式:BRE
擴展正則表達式:ERE
grep -E , egrep支持擴展正則表達式
正則表達式引擎:
採用不一樣算法,檢查處理正則表達式的軟件模塊
PCRE(Perl Compatible Regular Expreesions)
元字符分類:
字符匹配,匹配次數,位置錨定,分組
字符匹配:
. 匹配任意單個字符
[abcA-Z1-5] 匹配指定範圍內的任意單個字符
[^abc] 匹配指定範圍外的任意單個字符
[:alnum:] 字母和數字
[:alpha:] 表明任何英文大小寫字符,A-Z,a-z
[:lower:] 小寫字母
[:upper:] 大寫字母
[:digit:] 十進制數字
[:xdigit:] 十六進制數字
[:blank:] 空白字符(空白和製表符)
[:space:] 水平和垂直的空白字符(比[:blank:]包含的範圍廣)
[:cntrl:] 不可打印的控制字符(退格,刪除,警鈴。。。)
[:graph:] 可打印的非空白字符
[:print:] 可打印字符
[:punct:] 標點符號
例:
ls|grep ... 顯示全部三個字符,多餘部分不會標紅
ls|grep "..." 顯示3個字符組成的單詞
ps:[.]放在中括號裏面就是.自己
匹配次數:
用在要指定次數的字符後面,用於指定前面的字符要出現的次數
* 匹配前面的字符任意次,包括0次
貪婪模式:儘量長的匹配
.* 任意長度的任意字符
\? 匹配其前面的字符0次或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配其前面的字符至少每次,至多n次
\{,n\} 匹配前面出現的字符至多n次
\{n,\} 匹配前面出現的字符至少n次
位置錨定:
定位出現的位置
^ 行首錨定,用於模式的最左側
$ 行尾錨定,用於模式的最右側
^pattern$ 用於模式匹配整行
^$ 空行
^[[:space:]]*$ 空白行
\< \b 詞尾錨定,用於單詞模式的左側
\> \b 詞尾錨定,用於整個單詞的右側
\<pattern\> 匹配整個單詞
分組:
\(\) 將一個或者多個字符捆綁在一塊兒,當作一個總體進行處理,如:
\(root\)\+ 匹配root最少出現一次
echo rootroot |grep -o "\(root\)\+"
分組括號中的模式匹配到的內容會被正則表達式引擎記錄於內部的變量中
這些變量的命名方式爲;\1, \2, \3...
echo rootpppproot|grep -o "\(root\).*\1"
\1 表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符
示例:
\(string1\+\(string2\)*\)
\1:string\+\(string2\)*
\2:string2
後項引用:引用前面的分組括號中的模式所匹配的字符,而非模式自己
或者:\|
示例a\|b a或b
C\|cat C或cat
\(C\|c\)at Cat或cat
練習2:
1.顯示/proc/meminfo文件中以大小s開頭的行(要求使用兩種方法)
cat /proc/meminfo |grep -i ^s
cat /proc/meminfo |grep "\(^s.*\)\|\(^S.*\)"
2.顯示/etc/passwd文件中不以/bin/bash結尾的行
cat /etc/passwd|grep -v "/bin/bash\>"
3.顯示用戶hello默認的shell程序
getent passwd hello|cut -d: -f7
getent passwd hello|grep -o "/.*\>"
4.找出/etc/passwd文的兩位或三位數
cat /etc/passwd|grep -o "\<[0-9]\{2,3\}\>"|cat -n
5.顯示Centos7的/etc/grub2.cfg文件中,至少以一個空白字符開頭的且後面
有非空白字符的行
cat /etc/grub2.cfg|grep "^[[:space:]]\+.*..*$"
6.找出"netstat-tan"命令結果中以LISTEN後跟任意多個空白字符結尾的行
netstat -tan|grep "LISTEN[[:space:]]\+$"
7.顯示CentOS7上全部系統用戶的用戶名和UID
getent passwd|cut -d: -f1,3
8.添加用戶bash、testbash、basher、sh、nologin(其shell爲/sbin/nologin)
找出/etc/passwd用戶名和shell同名的行
getent passwd|grep "^\(..*\)\>.*\<\1$"
9.利用df和grep,取出磁盤各分區利用率,並從大到小排序
df|grep dev/sd|tr -s ' ' |cut -d' ' -f1,5|sort -t' ' -k2 -nr
保留磁盤名稱
df|grep dev/sd|grep -o "[0-9]\+%"|sort -nr
不保留磁盤名稱
egrep:
egrep = grep -E
egoup [options] pattern [file...]
支持擴展的正則表達式
擴展的正則表達式的元字符:
字符匹配:
. 任意單個字符
[abc] 指定範圍的字符
[^abc] 不在指定範圍的字符
[:alnum:] 。。。。
次數匹配:
* 匹配前面字符任意次
? 匹配前面字符0或1次
+ 1次或屢次
{m} 匹配m次
{m,n} 至少m次,至多n次
位置錨定:
^ 行首
$ 行尾
\< \b 單詞首
\> \ba 單詞尾
分組:
() 分組
\1,\2 後項引用
或者:
a|b a或者b
C|cat C或cat
(C|c)at Cat或cat
練習3:
1.顯示三個用戶root、mage、wang的UID和默認shell
cat /etc/passwd|egrep "^(root)\>|^(hello)\>|^(lily)"|cut -d: -f1,3,7
getent passwd root hello lily|cut -d: -f1,3,7
2.找出/etc/rc.d/init.d/functions文件中行首爲某單詞(包括下劃線)後面跟
一個小括號的行
cat /etc/rc.d/init.d/functions |egrep "^[[:alpha:]]+.*\>\(\)"
3.使用egrep取出/etc/rc.d/init.d/functions中其基名和目錄名
echo /etc/init.d/functions/ |egrep -o "\<[[:alpha:]]+/?$"
echo /etc/init.d/functions |egrep -o "/.*\>/"
5.統計last命令中以root登陸的每一個主機IP地址登陸次數
last|egrep "^root\>"|tr -s ' ' |cut -d' ' -f3|sort|uniq -c
6.利用擴展正則表達式分別表示0-9,10-99,100-199,200-249,250-255
[0-9] [1-9][0-9] 1[0-9][0-9] 2[0-4][0-9] 25[0-5]
7.顯示ifconfig命令結果中全部ipv4地址
ifconfig |egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"
ifconfig |egrep -o "\<(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
8.將此字符串:welcome to magedu linux 中的每一個字符去重並排序,重複次數
多的排到前面
echo welcome to magede linux|tr -d ' '|grep -o .|sort|uniq -c|sort -nr
vim簡介:
vi:visual interface,文本編輯器
文本:ASCII,unicode
文本編輯種類:
行編輯器:sed
全屏編輯器:nano,vi
vim:vi improved
其餘編輯器:
gedit 一個簡單的圖形編輯器
gvim 一個vim編輯器的圖形版本
vim:打開文件
vim [option]...file...
vim +# file 打開文件後,讓光標處於第#行的行首,
+ 默認最後一行的的行首
+/pattern 打開文件後,直接讓光標處於第一個被pattern匹配到的
行的行首
-b file 二進制方式打開文件
-d file1 file2... 比較多個文件,會顯示不一樣的位置
-m file 只讀打開文件
ex file 或者vim -e 直接進入ex模式
若是該文件存在,文件被打開並顯示內容
若是該文件不存在,當編輯後第一次存盤時建立文件
vim:模式
三種主要模式:
命令(normal)模式:默認模式,移動光標,剪切/粘貼文本
插入(insert)或編輯(edit)模式:修改文本
擴展命令(extended command)模式:保存,退出等
R:改寫模式
Esc鍵退出當前模式
ese ese 老是返回到命令模式
模式轉換:
命令模式-->插入模式
i:insert,在光標所在處輸入
I:在當前光標所在行的行首輸入
a:append,在光標所在處後面輸入
A:在當前光標所在行的行尾輸入
o:在當前光標所在行的下方打出一個新行
O:在當前光標所在行的上方打開一個新行
插入模式-->命令模式
Esc
命令模式-->擴展命令模式
:
擴展命令模式-->命令模式
Esc,enter
關閉文件:
擴展模式:
:q 退出
:q! 強制退出,丟棄作出的修改
:wq 保存退出
:x 保存退出
命令模式:
ZZ 保存退出
ZQ 不保存退出
擴展模式:
:進入ex模式
建立一個命令提示符:處於底部的屏幕左側
命令:
w 寫(存)磁盤文件
wq 寫入並退出
x 寫入並退出
q 退出
q! 不存盤退出,即便更改都將丟失
r filename 讀文件內容到當前文件中
w filename 將當年文件內容寫入另外一個文件
!cmd 執行命令
r!cmd 讀入命令的輸出
命令模式光標跳轉:
字符間跳轉:
h: 左
l: 右
j: 下
k: 上
#command:跳轉由#指定的個數的字符
好比33j,向下跳33行
單詞間跳轉:
w:下一個單詞的詞首
e:當前或下一個單詞的詞尾
b:當前或前一個單詞的詞首
#cmd:由#指定一次跳轉的單詞數
當前頁跳轉:
H: 頁首
M:頁中間行
L: 頁底
行首行尾跳轉:
^: 跳轉至行首的第一個非空白字符
0: 跳轉至行尾
$: 跳轉至行尾
行間移動:
##G,(擴展模式:#): 跳轉至由##指定行
G: 最後一行
1G,gg 第一行
句間移動
) 下一句
( 上一句
段落間移動:
} 下一段
{ 上一段
命令模式:
翻屏操做:
ctrl+f 向文件尾部翻一屏
ctrl+b 向文件首部翻一屏
ctrl+d 向下半屏
ctrl+u 向上半屏
字符編輯:
x 刪除光標處字符
#x 刪除光標處起始的#個字符
xp 交換光標所在處的字符及其後面字符的位置
~ 轉化大小寫
J 刪除當前行後的換行符
替換命令:
r 替換光標所在處的字符
R 切換成Replace,改寫模式
刪除命令:
d 刪除命令,可結合光標跳轉字符,實現範圍刪除
d$ 刪除至行尾
d^ 刪除到非空行首
d0 刪除到行首
dw 向右刪除一個單詞
de 向右刪除一個單詞
db 向左刪除一個單詞
dd 刪除光標所在的行
#dd: 多行刪除
D 從當前光標位置一直刪除到行尾,留空行,等同於d$
dG :從當前行刪除到最後1行
dgg :從當前行刪除到第1行
複製命令:
y 複製,行爲類似於d命令
y$ 從光標處複製到行尾
y0 從光標處複製到行首
y^ 複製到非空行首
ye 拷貝後一個單詞
yw
yb 拷貝前單詞
yy 複製整行
#yy 複製多行
Y 複製整行
yG :從當前行復制到最後一行
ygg :從當前行復制到第一行
粘貼命令:
p:緩衝區存的若是爲整行,則粘貼當前光標所在行的下方;不然,則粘貼
至當前光標所在處的後面
P:緩衝區存的若是爲整行,則粘貼當前光標所在行的上方;不然,則粘貼
至當前光標所在處的前面
改變命令:
c:修改後切換成插入模式
命令模式--->插入模式
c$ 刪除至行尾,並切換成插入模式
c^
c0
cb
cw
#command
cc 刪除當前行並輸入新內容
#cc 多行刪除並輸入新內容
C 刪除當前光標到行尾,並切換成插入模式
其餘操做
100iwang【esc】 粘貼wang 100次
<stat position><command><end position>
command:
y 複製 d 刪除 gU 變大寫 gu 變小寫
例如:
0y$ 命令意味着:
0 先到行頭
y 從這裏開始拷貝
$ 拷貝到本行最後一個字符
ye:從當前位置拷貝到本單詞的最後一個字符
擴展命令模式:
地址定界:
:start_pos,end_pos
:# (y,d..) 具體第幾行,例如:2表示第2行,能夠直接進行復制、刪除等
:#,@(y,d..) 從第#行起,到第@行止,執行命令
:#,+@(y,d..) 從第#起,到第#+@行
如:2+5,表示從第2行到第7行
:. 表示當前行
:$ 最後一行
.,$-1 當前行到倒數第二行
:% 全文
如:%d 刪除全文
匹配:支持正則表達式
/pat1/,/pat2/
從第一次被pat1模式匹配到的行開始,一直到第一次被pat2匹配到的行結束
#,/pat/ 第#行到被匹配行
/pat/,$ 被匹配行到最後一行
使用方式:後跟一個編輯命令
d
y
w file 將範圍內的行另存至指定文件中
r file 在指定位置插入指定文件中的全部內容
查找:
/pattern 從光標處向文件尾部查找
?pattern 從光標處向文件首部查找
n: 與命令同方向,下一個
N: 與命令反方向,上一個
查找並替換:
s 在擴展模式下完成查找替換操做
格式:
定界#.#s/要查找的內容/替換爲的內容/修飾符
%s/haha/xixi/i
要查找的內容:可使用模式
替換爲的內容:不能使用模式,但可使用\1,\2,等後項引用符號
還可使用&引用前面查找時查找到的整個內容
如:
1,5s/haha/&ya/
將1-5行的haha替換成hahaya
%s/^\(UUID\)/#\1/
將UUID開頭的行加註釋,(替換成#UUID)
52s/\(feee\)/\1\1/
將第52行的feee替換成feeefeee
修飾符:
i:忽略大小寫
g:全局替換;默認狀況下,每一行只替換第一次出現的匹配
gc:全局替換,每次替換前詢問
查找替換中的分隔符/可替換爲其餘字符
例如:
s@/etc@/etc/var@g
s#/boot#/root#i
練習4:
1.複製/etc/profile至/tmp/目錄,用查找替換命令刪除/emp/profile文件中
的行首的空白字符
:%s/^[[:space:]]\+//
2.複製/etc/rc.d/init.d/functions文件至/tmp目錄,用查找替換命令爲
/tmp/functions的每行開頭爲空白字符的行的行首添加一個#號
:%s/^\([[:space:]]\+\)/#\1/
命令模式:撤銷更改
u 撤銷最近的更改
#u 撤銷以前屢次更改
U 撤銷光標落在這行後全部此行的更改
ctrl -r 重作最後一次的「撤銷」更改(取消撤銷)
. 重複前一個操做
n. 重複前一個操做n次
vim的寄存器:
vim有26個命名寄存器和1個無名寄存器,常存放不一樣的剪貼板內容,能夠不一樣
會話間共享
(須要複製以後關掉會話而後在另一個會話使用p,或者複製以後從新打開新會話複製。可能。。。)
寄存器名稱a,b,c...z,
格式:
"寄存器名 放在數字和命令之間
如:
3"tyy 表示複製3行到t寄存器中
"tp 表示將t寄存器的內容粘貼
未指定,將使用無命名寄存器
有10個數字寄存器,用0,1,2,..,9表示,0存放最近刪除內容。1存放最近刪除內容,
當新的文本變動和刪除時,1轉存到2,2轉存到3,以此類推,數字寄存器不能在
不一樣會話間共享
編輯二進制文件:
以二進制方式打開文件:
vim -b binaryfile
擴展命令模式下,利用xxd轉換爲可讀的十六進制
:%!xxd
編輯二進制文件
擴展命令模式下,利用xxd命令轉換回二進制
:%!xxd -r
保存退出
可視化模式:
容許選擇的文本塊:
v 面向字符
大V 面向行
ctrl+v 面向塊
可視化鍵可用於與移動鍵結合使用:
w )} 箭頭等
突出顯示的文字可被刪除,複製,變動,過濾,搜索,替換等
多文件模式:
vim file1 file2 file3.。。
:next 下一個
:prev 前一個
:first 第一個
:last 最後一個
:wall 保存全部
:qall 退出全部
:wqall 保存退出全部
使用多個「窗口」:
多文件分隔
vim -o |-O file1 file2
-o 水平分割
-O 垂直分割
在窗口間切換:ctrl+w,箭頭
單個文件窗口分割:
ctrl+w,s 水平分割
ctrl+w,v 垂直分割
ctrl+w,q 取消相鄰窗口
ctrl+w,o 取消所有窗口
:wqall 存退
定製vim的工做特性:
配置文件:永久有效
全局:/etc/vimrc
我的:~/.vimrc
擴展模式:當前vim進程有效
(1)行號
顯示:set number,簡寫爲set nu
取消顯示:set nonumber,簡寫爲set nonu
(2)忽略字符的大小寫
啓用:set ic
不忽略:set noic
(3)自動縮進
啓用:set ai
禁用:set noai
(4)智能縮進
啓用:set smartdent,簡寫set si
禁用:set nosi
(5)高亮搜索
啓用:set hlsearch
禁用:set nohlsearch
(6)語法高亮
啓用:syntax on
禁用:syntax off
(7)顯示tap 和換行符 ^I 和$顯示
啓用:set list
禁用:set nolist
(8)文件格式
啓用windows格式 set fileformat=dos
啓用unit格式: set fileformat=unix
簡寫:set ff=dos|unix
(9)設置文本寬度
啓用:set textwidth=65(vim only)
禁用:set wrapmargin=15
(10)設置光標所在行的標識線
啓用:set cursorline,簡寫cul
禁用:set no cursorline
(11)複製保留格式
啓用:set paste
禁用:set nopaste
瞭解更多:
set幫助
:help option-list
:set or set all
vim內置幫助
vimturor 練習文件
練習5:
1.在vim中設置tap縮進爲4個字符
2.複製/etc/rc.d/init.d/functions文件至/tmp目錄,替換/tmp/functions
文件中的/etc/sysconfig/init爲/var/log
:%s@/etc/sysconfig/init@/var/log@
3.刪除/tmp/functions文件中全部以#開頭,且#後面至少有一個空白字符的行
的行首的#號
:%s@^#\([[:space:]]\+\)@\1@
筆記整理完成時間:2018年4月10日18:57:14