對正則表達式,VIM的基本命令的操作,SHELL編程的基本格式等的一些見解。

第一 正則表達式,第二 VIM的具體適應,第三 shell編程的基本格式跟規范!

一 (正則表達式)
正則表達式(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

(1)
李登峰李登峰
上一篇 2018-04-08 14:18
下一篇 2018-04-08 14:40

相關推薦

  • mysql練習題

    ?導入hellodb.sql生成數據庫?(1) 在students表中,查詢年齡大于25歲,且為男性的同學的名字和年齡MariaDB [hellodb]> select Name,Age from students where Age>25 and Gender=’M’;?(2) 以ClassID為分組依據,顯示每組的平均…

    Linux筆記 2018-06-09
  • 吐血整理,國內常見的幾種Linux認證

      因為在培訓機構工作過,身邊很多人咨詢我Linux認證的事宜?,F在國內各種培訓機構的確很多,各家都說Linux認證多么多么重要,能獲得多少薪水……這些聽聽就好了。 如果想在開源行業有所作為,必須要投入到實戰中去。當你不是發燒友,不是開源社區骨干、不經常泡國外的壇子,那么實戰是你唯一的成長路徑。尤其是對基于Linux的開發、運維、糾錯,都有上手經驗…

    2018-06-01
  • 計算機及Linux基礎知識

    1、描述計算機的組成及其功能 根據馮諾依曼體系結構,計算機由運算器、存儲器、控制器、輸入設備和輸出設備五個基本部件組成,其中運算器和控制器合稱為中央處理器(CPU)。 各基本部件的功能是: 存儲器用于存放指令和數據; 控制器控制指令自動執行; 運算器進行加、減、乘、除四種基本算術運算以及邏輯運算和附加運算;輸入輸出設備通過和主機進行通信,完成人機數據交互。 …

    2018-06-23
  • 轉義字符Escape character在正則中的用法

    通過()的在基本正則和擴展正則中的不同使用,詳細介紹了轉義字符的使用注意事項

    Linux筆記 2018-04-13
  • Linux用戶與組管理命令的易混淆點和重合點

    Linux用戶與組的管理命令,對于初學者來說很容易造成混淆,此外,這些命令之間有很多相重合的用法,即:擁有多種命令可實現相同的需求的情況。

    2018-04-03
  • 第四周課程總結

    sed高級編輯命令模式空間相當于正在處理數據的這塊空間保持空間相當于倉庫,臨時存放暫時沒有處理完的半成品的空間P(大寫):打印模式空間開端至\n內容,并追加到默認輸出之前(即只打印第一行)h: 把模式空間中的內容覆蓋至保持空間中H:把模式空間中的內容追加至保持空間中g: 從保持空間取出數據覆蓋至模式空間G:從保持空間取出內容追加至模式空間x: 把模式空間中的…

    Linux筆記 2018-04-22
欧美性久久久久