Vim的使用與Bash正則表達式
1、Vim的使用shell
[i],[o],[a],[r](插入替換)vim
通常模式 ——————————> 編輯模式數組
—————————————— ——————————————————bash
光標移動,搜索替換 <—————————— 以插入替換來編輯內容app
[Esc]測試
[:],[/],[?]ui
刪除字符,整行 ——————————> 命令行模式編碼
—————————————— ——————————————————spa
複製整行,粘貼整行 <—————————— 讀取/保存文件
[Esc]
1) [v],[V],[Ctrl]+[v]
2)光標移動
3)[y]
:n 編輯下一個文件,:N 編輯上一個文件,:files 查看全部的文件
窗口之間的切換: [Ctrl] + [w] + [j] / [Ctrl] + [w] + [下] 移到下方的窗口
[Ctrl] + [w] + [k]/ [Ctrl] + [w] + [上] 移到上方的窗口
[Ctrl] + [w] + [q] 結束當前的窗口
vim的設置值通常存放在/etc/vimrc文件中,可使用 # vim ~/.vimrc進行修改,可是不建議這樣操做。
2、Bash
硬件、內核與Shell
圖形 ————> 用戶界面 ——————> 核心 ————> 硬件
—————— ——————————————— ———— ————————
文字界面 <———— Shell,KDE,applications <—————— Kernel <———— Hardware
接受來自用戶的指令 控制硬件工做,包括CPU進程 系統工做的實體
內存管理和IO
shell的功能只是提供用戶操做系統的一個藉口,須要調用其餘的命名(軟件)來執行,狹義上shell就是bash命令,廣義上shell也包括圖形界面軟件。
/bin/bash (Linux默認的shell)
Bash shell的功能:命令的記憶、命令與文件的補齊、命令別名的設置功能、做業控制,先後臺的控制、程序腳本、通配符。
Shell
1、shell的變量功能
環境變量的舉例:
變量的有效範圍:通常狀況下,父進程的自定義變量沒法在子進程內使用,除非經過export將其變爲環境變量,不然就是自定義變量。(與內存分配的記憶塊有關)
-a: variable爲數組類型
-i: variable爲integer類型
-x:用法與export一致
-r:變量設置爲readonly,只讀類型,不能夠修改
數組變量類型:array
數組名 下標 變量值
變量內容的刪除、替換:
${變量#關鍵字} 若變量內容從頭開始數據符合」關鍵字「,則將符合的最短數據刪除。
${變量##關鍵字} 若變量內容從頭開始數據符合」關鍵字「,則將符合的最長數據刪除。
${變量%關鍵字} 若變量內容從尾開始數據符合」關鍵字「,則將符合的最短數據刪除。
${變量%%關鍵字} 若變量內容從尾開始數據符合」關鍵字「,則將符合的最長數據刪除。
${變量/舊字符串/新字符串} 替換第一個符合的字符串。
${變量//舊字符串/新字符串} 替換所有符合的字符串。
new_var=${old_var-content}
新變量 關鍵字 舊變量 變量內容
3、Bash Shell操做環境
一個命令被執行時,命令執行的順序是:
Shell
1、通配符與特殊符號
通配符 | |
* | 0到無窮個任意的字符 |
? | 必定有一個任意字符 |
[] | 必定由一個[]中的字符 |
[-] | 編碼順序內全部的字符 |
[^] | 必定有一個非[]中的字符 |
特殊符號 | |
# | 批註符號,視爲說明,並不執行 |
\ | 轉義字符,將後面的內容還原爲原來的意思 |
| | 管道,風格兩個管道命令的界定 |
; | 連續命令的執行 |
~ | 用戶的主文件夾 |
$ | 使用變量的前導符 |
& | 做業控制,命令變成背景下工做 |
! | 邏輯非 |
/ | 目錄符號 |
>,>> | 數據流重定向,輸出 |
<,<< | 數據流重定向,輸入 |
' ' | 無變量置換的變量表示 |
" " | 有變量置換的變量表示 |
` ` | 先執行的命令 |
() | 子shell的起始與結束標誌 |
{} | 中間爲塊命令的組合 |
2、shell其它指令及功能
cmd1 ; cmd2 執行完cmd1,執行cmd2
cmd1 && cmd2 cmd1正確執行則執行cmd2
cmd1 || cmd2 cmd1正確執行則不執行cmd2
cut能夠將一段信息的某一段切出來。
# cut -d ‘分隔字符’ -f field
# cut -c 字符範圍
grep 分析一行的信息
# grep [-acinv] [--color=auto] '字符串' filename
# sort [-fbMnrtuk] [file or stdin]
# tr [-ds] SET1 ... 刪除一段信息中的文字或者文字替換
# col [-xb] -x tab轉爲空格,-b 文字內有轉義字符時直接保留\後的內容
# join [-ti12] file1 file2 兩個文件中相同數據一行加在一塊兒
# paste [-d] file1 file2 不進行對比直接將兩個文件貼在一塊兒
# expand [-t] file tab轉空格
3、Shell Script 程序化腳本
命令行彙整執行,相似與程序的編寫,可是不須要編譯執行,
利用shell的功能所寫的一個純文本的程序,在一些shell語法與命令卸載裏面配合正則表達式,管道和重定向達處處理的目的。
shell script執行的方法:
直接命令執行 shell.sh 文件必須具有rx的權限, 以bash進程來執行,經過./she.sh或shell she.sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH