一 (正則表達式)
正則表達式(REGEXP)是由一類特殊字符和文本字符所編寫的模式,其中有些字符(元字符)不表示字符字面的意義,而表示控制或通配的功能。
分為兩類: 基本正則表達式:BRE 擴展正則表達式: ERE
元字符分類:字符匹配,匹配次數,位置錨定,分組。
字符匹配: · 表示匹配的單個字符
\. 轉義,表示(·)的字符本意
【】 表示匹配指定范圍內的任意單個字符,【】里的·表示本意,不用轉義
【托字符】 表示匹配指定范圍外的任意單個字符
【:alnum:】 字母和數字 【:alpha:】 代表任何英文大小寫字符
【:lower:】 小寫字母 【:upper:】 大寫字母
【:blank:】 空白字符 【:space:】 水平和垂直的空白字符(比blank范圍大)
【:punct:】 標點符號
匹配次數: 用于在要指定次數的字符后面,是表示前面字符出現的次數。
* 表示匹配前面的字符重復的次數,包括0次
·* 任意長度的任意字符
\? 匹配前面的字符0次或1次
\+ 匹配前面的字符至少1次
\{n\} 匹配前面的字n次,是指定m次
\{n,m\} 匹配前面的字符最少n次,最多m次
\{,n\} 匹配前面的字符最多n次
\{n,\} 匹配前面的字符最多n次
位置錨定: 定位出現的位置。
^ 行首錨定,用于模式的最左側
$ 行尾錨定,用于模式的最右側
\> 詞尾錨定,用于單詞模式的最右側
\< 詞首錨定,用于單詞模式的最左側
\b 單詞的邊界
分組: \(\) 將一個或多個字符捆綁在一起,當做一個整體進行處理。
二 VIM的基本命令操作
VIM 的文本編輯器
+# 打開文件后,讓光標處于第#的行首
-d 可以比較多個文件
-m 只讀的方式打開文件,避免誤操作
-e 進入ex模式(編輯模式)
三種主要模式
命令模式:默認模式
插入模式:編輯模式
擴展命令模式:ex模式
可以讓命令模式進入插入模式的,按ESC退出的一些操作:
按 i 光標不懂
按 I 光標移動到行首
按 a 光標往后移動一個字符
按 A 光標移動到本行的行尾
按 o 在光標下行切換新行
按 O 在光標上行切換新行
在命令模式下按: 就進入ex模式了
在ex模式下:
Wq 存盤退出 q 退出
Q! 強行退出,修改的不算
W 空格 跟文件 就可以把VIM的內容傳送到文件
R 空格 跟文件 就可以把文件的內容讀入VIM
在命令模式下的一些常用的用法:
字符間的跳動: h 左 l 右 j 下 k 上
# 前面加上數字# ,配合其他按鍵進行跳動
單詞間的跳動: w 跳動到下一個單詞的詞首
e 跳動到下一個單詞的詞尾
b 跳動到前一個單詞的詞首
也可以配合#進行跳動
當前頁面跳動: H 跳動到當前頁面的頁首
M 跳動到當前頁面的中間
L 跳動到當前頁面的頁底
行首行尾的跳動: ^ 跳轉至行首的第一個非空白字符
0 跳轉至行首
$ 跳轉至行尾
行間移動: G 直接跳動到整個文件的最后一行
gg 直接跳動到整個文件的第一行
一些快捷鍵: ctrl +f 向文件尾部翻一頁
Ctrl+b 向文件首部翻一頁
Ctrl+d 向文件尾部翻半頁
Ctrl+u 向文件首部翻半頁
命令模式的字符編輯: x 刪除(剪切)光標處的字符
#x 前面加上數字,表示刪除幾個字符
Xp 交換光標處字符跟后面字符的位置
J 刪除當前行后的換行符
~ 轉換大小寫
替換命令: r 替換光標所在處的字符
R 切換成REPLACE 模式,批量替換字符
刪除命令: d 刪除字符,可以結合光標跳轉字符實現范圍刪除
d$ 刪除到行尾
d^ 刪除到非空白字符行首
d0 刪除到行首,不包括光標處
dd 刪除光標所在行 (配合數字批量刪除)
D 從當前光標處一直刪除到行尾
復制命令: (復制完可以按P粘貼)
y 復制
y$ 復制到行尾
y0 復制到行首
y^ 復制到非空白字符行首
yy 復制光標所在行
#yy 配合數字實行多行復制
Y 復制整行
改變命令: c 修改后切換成插入模式,配合d進行相應操作
100i wang [esc] 粘貼wang 100次 復制wang 100次
擴展命令模式: (ex)模式
地址定界:
:# 輸入數字幾,跳到第幾行
#,#:從第幾行到第幾行,后配合相應命令
· 表示當前行
$ 表示最后一行
% 表示全文件內容
S 在擴展模式下完成查找替換操作
格式: s/要查找的內容/替換為的內容/修改符
修改符: i 忽略大小寫
g 修改的全局替換(默認情況只替換每行第一次改的)
gc 全局替換時每次前詢問
命令模式下: (小寫)u 撤銷 #u 撤銷之前多次修改
(大寫)U 撤銷光標落在此行后所有的更改
按ctrl -r 重做最后撤銷的更改(倒回去)
· 重做前一個操作
n. 重做前一個操作N次
VIM的寄存器
有26個命名的寄存器 (可以在不同窗口進行)
名稱以a b c ….z 來表示
格式: 寄存器放在數字和命令之間
如: “ ayy 表示把當前光標所在行復制到a寄存器
“ap 表示把a寄存器的內容粘貼
VIM “F1 F2”一次處理多個文件
剛進去默認在第一個文件
:next 下一個
: prev 前一個
: qall 退出所有
: wqall 保存退出所有
VIM 使用多個窗口
VIM -o 上下分屏
VIM-O 左右分屏
在窗口間來回切換 ctrl+w
完成后 wqall
在VIM里加行號
顯示 set nu
取消 set nonu
要想行號永久有效,必須保存配置文件:(用VIM改)
全局:/etc/vimrc 個人:~/.vimrc
在VIM里設置文本寬
啟用 set textwidth =65
禁用 set wrapmargin =15
在VIM里設置光標所在的標識線
啟用 set cursorline (cul)
禁用 set no cul
更詳細用法請查:VIM help
三 shell腳本編程簡介和基本格式
程序 : 指令+數據
程序編程風格:
過程式:以指令為中心,數據服務于指令。
對象式:以數據為中心,指令服務于數據。
編程邏輯處理方式:順序執行 循環執行 選擇執行
Shell 編程:過程式,解釋執行。
編程語言的基本結構:
各種系統命令的組合
數據存儲:變量,數組
表達式:a+b
Shell腳本:包含命令或聲明,并符合一定格式的文本文件
格式要求:首行 shebang 機制
#!/bin/bash
Shell腳本的用途: 自動化常用命令
執行系統管理和故障排除
創建簡單的應用程序
處理文本或文件
第一步: 使用文本編輯器來創建文本文件,第一行必須包括shell聲明序列:#!
#!/bin/bash
添加注釋,以#開頭
第二步:運行腳本
1 給予執行權限,在命令行上指定絕對或相對路徑
2 直接運行解釋器,將腳本作為解釋器程序的參數運行
腳本規范:1 第一行一般為調用使用的語言
2 程序名,避免更改文件名為無法找到正確的文件
3 版本號
4 更改后的時間
5 作者相關信息
6 該程序的作用及注意事項
7 最后是各版本的更新簡要說明
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95371