vim編輯器和bash算術運算入門
阿新 • • 發佈:2017-10-08
不存在 使用 sub file vim編輯 set 水平分隔 倒數 search
(一)vim末行模式
- vim末行模式:內建的命令行接口
- 地址定界
- start_pos[,end_pos]
- #:特定的第#行,例如5即第5行
- .:表示當前行
- $:表示最後一行,例如.,$-1表示從當前行到倒數第2行
- #,#:指定行範圍,左側為起始行,右側為結束行,例如10,100表示從第10行到第100行共91行
- #,+#:指定行範圍,左側為起始行,右側為偏移量,例如3,+7表示從第3行開始加後面7行共8行
- %:表示全文,等於1,$
- /PATTERN/:從光標位置往下,第一個被PATTERN匹配到的行,例如/Pattern/,$表示從匹配行到最後一行
- 可同編輯命令一同使用,實現編輯操作
- d/刪除,y/復制,c/修改
- 中間沒有空格,編輯命令直接跟在地址定界後面
- w FileName/內容另存為
- r FileName/將另外一個文件合並進來
- 查找
- /PATTERN:從光標所在處開始,往後查找所有被PATTERN匹配到的字符串,光標停在第一個匹配到的字符串
- ?PATTERN:從光標所在處開始,往前查找所有被PATTERN匹配到的字符串,光標停在第一個匹配到的字符串
- n:下一個查找結果,與命令方向相同
- N:上一個查找結果,與命令方向相反
- 查找並替換
- s/用來查找的內容/用來替換的內容/修飾符
- 用來查找的內容:正則表達式
- 用來替換的內容:不能使用正則表達式,但是可以引用
- 如果“用來查找的內容”在模式中使用了分組符號,在“用來替換的內容”中可以使用後項引用\1,\2...
- 或者直接引用“用來查找的內容”匹配到的全部文本,要使用&符號
- 如果內容本身就帶有/符號,需要添加\進行轉義
- 也可以將/變成其它不常用的字符,這樣內容本身的/符號就不需要轉義了,例如使用@符號,或者#符號等等
- 修飾符
- i:忽略大小寫(忽略查找的PATTERN中的大小寫)
- g:全局替換,意味著一行中如果匹配到多次,則均替換;默認只替換每一行中的第一次出現
- 例子
- 1,20s/this/This/g
- %[email protected]\<t\([[:alpha:]]\+\)\>@T\[email protected]:在全文中將所有的小寫t開頭的單詞轉換為大寫T開頭的單詞
- %[email protected]\<t[[:alpha:]]\+\>@&[email protected]:在全文中將所有小寫t開頭的單詞後面加er
- %[email protected]^#@@:刪除每一行前面的#號
- s/用來查找的內容/用來替換的內容/修飾符
- 地址定界
練習:
1,復制/etc/grub2.cfg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中所有行前面的空白字符
答案:
cp /etc/grub2.cfg /tmp
vim /tmp/grub2.cfg
:
%[email protected]^[[:space:]]\[email protected]@
2,復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件中每個以空白字符開頭的行的行首加上#
答案:%[email protected]^[[:space:]]\+[^[:space:]]@#&@
3,為/tmp/grub2.cfg文件的前三行的行首加上#號
答案:1,3s/*/#&/
4,將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換為enabled=1,所有的gpgcheck=0替換為gpgcheck=1
答案:%[email protected]\(enabled\|gpgcheck\)[email protected]\[email protected]
- vim的多文件模式
- vim FILE1 FILE2 FILE3...
- 在文件間切換:first/第一個文件,last/最後一個文件,next/下一個文件,previous/前一個文件
- 保存並退出所有文件:wqall
- 保存所以文件:wall
- 退出所有文件:qall
- 多窗口
- 多文件
- -o:水平分隔;ctrl+w,松開後按上下箭頭,可以切換文件;vim -o FILE1 FILE2 FILE3
- -O:垂直分隔;ctrl+w,松開後按左右箭頭,可以切換文件
- 單文件
- ctrl+w,松開後按s,水平分隔單文件
- ctrl+w,松開後按v,垂直分隔單文件
- 多文件
- 定制vim的工作特性
- 末行模式下的命令設定,僅對當前vim進程有效 想永久有效,需要修改配置文件;直接把末行命令寫在配置文件裏就行
- 全局:/etc/vimrc
- 用戶個人:~/.vimrc,如果文件不存在,需要自己創建
- 行號
- 顯示:set number或者set nu
- 取消:set nonumber或者set nonu
- 括號匹配高亮(貌似現在vim一直高亮,命令無效了>_<)
- 顯示:set showmatch或者set sm
- 取消:set noshowmatch或者set nosm
- 自動縮進
- 啟用:set ai
- 禁用:set noai
- 高亮搜索結果
- 啟用:set hlsearch
- 禁用:set nohlsearch
- 語法高亮
- 啟用:syntax on
- 禁用:syntax off
- 忽略字符大小寫
- 啟用:set ic
- 禁用:set noic
- 在末行模式下,可以用help命令獲得幫助,也可以help subject獲得某個主題的幫助,如help set
作業:如果設置tab鍵縮進4個字符,而不是8個
(二)bash腳本編程的算術運算
- 算術運算符:+,-,*,/,**,%
- 算術運算格式
- let var=算術運算表達式
- $[算術運算表達式]
- $((算術運算表達式))
- expr命令
- 各個操作數和操作符之間都要有空格
- 要想獲得結果,需要使用命令引用
- 註:乘法符號在某些場景中需要使用轉義字符
練習:寫一個腳本,添加三個用戶,求這三個用戶的UID之和
vim編輯器和bash算術運算入門