對正則表達式,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
下一篇 2018-04-08

相關推薦

  • lamp架構搭建

    lamp架構搭建(yum) 環境:一臺主機,centos7.5   lamp安裝 yum -y install httpd php-fpm php-mysql mariadb-server 啟動php-fpm服務 systemctl start php-fpm 配置httpd生成配置文件,提示http,php-fpm服務在本地 vim /etc/h…

    2018-06-25
  • 數組,字符串切片,高級變量

    數組 變量:存儲單個元素的內存空間 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合 數組名和索引 索引:編號從0開始,屬于數值索引 注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引 bash4.0版本之后開始支持 bash –version?? 查看bash版本 bash的數組支持稀疏格式(索引不連續) 聲明數組: de…

    Linux筆記 2018-05-13
  • liunx 筆記

    服務器硬件—CPU ? ? ?服務器CPU公司 ? :Inter ? ?xeon ?至 強 ?ltanium ? 安騰 ? ? ?AMD A lthlon ?MP ? IBM ?power 這幾種。 服務器CPU分主頻、外頻、倍頻三個頻率。CPU類型 :x86 ? x64 (clsc) ?ARM ?m6l8000 ,m68k power ?pow…

    Linux筆記 2018-04-01
  • 運維自動化之系統部署

    運維自動化之系統部署 安裝程序 ?CentOS系統安裝 系統啟動流程: bootloader–>kernel(initramfs)–>rootfs–>/sbin/init   ?anaconda: 系統安裝程序 gui:圖形窗口 tui: 基于圖形庫curses的文本窗口   &nbs…

    Linux筆記 2018-05-27
  • 變量

    變量 echo $name 與 echo “$name” 假如變量是讀取文件,前者會自動縮進成一行,后者保留原有格式 (umask=022,mkdir /f1)括號相當于開啟一個臨時子進程,能讀取當前shall的變量等信息,但是進程號不變,命令結束后恢復剛才狀態 局部變量,環境變量,只讀變量(常量),位置變量,數組 局部變量:只在當前…

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