2016-08-08
授課內容:
處理文本的工具sed
vim編輯器
Shell腳本編程基礎介紹
sed:sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),
接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。默認不編輯原文件,僅對模式空間的文件副本進行處理
sed [option] ‘addresscommand‘ file….
-n:靜默模式(不輸出模式空間內容的自動打印)
-r:支持擴展正則表達式
-i:原文編輯
-e:多點編輯
‘addresscommand‘:
address:
#:第幾行
n,m:第n到第m行
n,$:第n行到最后一行
/pattern/:被此處模式所能夠匹配到的每一行(正則表達式)
command:
d:刪除
p:打印顯示
a \text:在行后面追加文本;支持使用\n實現多行追加
i \text:在行前面追加文本,同樣支持使用\n實現多行追加
s///:查找替換,支持使用其它分隔符,s@@@,s###
替換標記:
g: 行內全局替換
p: 顯示替換成功的行
w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中
vim編輯器:
visual edit improved
vim [OPTION]… FILE…
+:打開文件時定位在最尾一行
+#:打開文件時定位在第#行內
+/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首
–d file1 file2… 比較多個文件
vim編輯多個文件
vim FILE1 FILE2 FILE3
:next 切換至下一個文件
:prev 切換至前一個文件
:last 切換至最后一個文件
:first 切換至第一個文件
vim的模式:
命令模式(command mode):打開文件時的默認模式
編輯模式(edit mode):輸入i,I,a,A,o,O時進入的文本編輯模式
擴展命令模式(extended command mode):輸入:時的模式
命令模式–>編輯模式:
I:在當前光標所在的行首輸入
i:在當前光標所在處輸入
A:在光標所在行的行尾處
a:在光標后面處輸入
O:在光標的上一行開始處
o: 在光標的下一行開始處
插入模式—-> 命令模式
ESC
?命令模式—-> 擴展模式
:
?擴展模式—-> 命令模式
ESC
關閉文件:
擴展命令模式下
:q 沒有更改文件時退出
:wq 保存退出
:q! 強制不保存退出
:wq! 強制保存退出
命令模式:
ZZ:保存退出
ZQ:不保存退出
命令模式下的光標跳轉:
字符間跳轉:
h: 左l: 右j: 下k: 上
#COMMAND:跳轉由#指定的個數的字符;
單詞間跳轉:
w:下一個單詞的詞首
e:當前或下一單詞的詞尾
b:當前或前一個單詞的詞首
#COMMAND:由#指定一次跳轉的單詞數
當前頁跳轉:
H:頁首M:頁中間行L:頁底
行首行尾跳轉:
^: 跳轉至行首的第一個非空白字符;
0: 跳轉至行首
$: 跳轉至行尾
行間移動:
#G、擴展模式:# :跳轉至由#指定行
G:最后一行
1G, gg: 第一行
句間移動:
):下一句(:上一句
?段落間移動:
}:下一段{:上一段
命令模式操作
字符編輯:
x: 刪除光標處的字符;
#x: 刪除光標處起始的#個字符
xp: 交換光標所在處的字符及其后面字符的位置
~:轉換大小寫
刪除命令:
d: 刪除命令,可結合光標跳轉字符,實現范圍刪除;
dd:刪除整行
#dd:shanchu#行
d$: 刪除到行尾
d^:刪除到非空行首
d0:刪除到行首
復制命令(y, yank):
y: 復制,行為相似于d命令
yy:復制整行
y$
y0
y^
粘貼命令(p, paste):
p:緩沖區存的如果為整行,則粘貼當前光標所在行的下方;否則,則粘貼至當前光標所在處的后面
P:緩沖區存的如果為整行,則粘貼當前光標所在行的上方;否則,則粘貼至當前光標所在處的前面
擴展模式:查找
/PATTERN:從當前光標所在處向文件尾部查找
?PATTERN:從當前光標所在處向文件首部查找
n:與命令同方向
N:與命令反方向
s: 在擴展模式下完成查找替換操作
格式:s/要查找的內容/替換為的內容/修飾符
地址定界:
#: 具體第#行,例如2表示第2行;
#,#: 從左側#表示行起始,到右側#表示行結尾
#,+#: 從左側#表示的行起始,加上右側#表示的行數
:2,+3 表示2到5行
.: 當前行
$: 最后一行
.,$-1 當前行到倒數第二行
%:全文, 相當于1,$
命令模式:撤消更改
u撤銷最近的更改
. 重復前一個操作
使用多個窗口瀏覽
多文件:
vim -o|-O FILE1 FILE2 …
-o: 水平分割
-O: 垂直分割
在窗口間切換:Ctrl+w, Arrow
單文件:
Ctrl+w,s: split, 水平分割
Ctrl+w,v: vertical, 垂直分割
ctrl+w,q:取消相鄰窗口
ctrl+w,o:取消全部窗口
:wqall退出
shell腳本基礎:
shell腳本是包含一些命令或聲明,并符合一定格式的文本文件
?格式要求:首行shebang機制
#!/bin/bash
創建shell腳本的規范:
shell腳本的開頭最好寫上作者、日期、描述等基本信息,一方面可以方便別人閱讀,另一方面也方便自己回顧
#!/bin/bash #author: #Version: 1.0 #Description:This script displays some information about your environment
創建腳本步驟:
第一步:使用文本編輯器來創建文本文件
?第一行必須包括shell聲明序列:#!
#!/bin/bash
?添加注釋
注釋以#開頭
?第二步:運行腳本
?給予執行權限,在命令行上指定腳本的絕對或相對路徑
?直接運行解釋器,將腳本作為解釋器程序的參數運行
#!/bin/bash #created by: #date:2016-08-09 #ver:1.0 #DES:test script echo `date` echo `cal 08 2016` [root@Centos7 ~]# sh first.sh Tue Aug 9 09:03:38 CST 2016 August 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
原創文章,作者:麥德良,如若轉載,請注明出處:http://www.www58058.com/31997