vim及shell編程基礎
u撤銷最近的更改
#u撤銷之前多次更改
U 撤消光標落在這行後所有此行的更改
按Ctrl - r重做最後的“撤消”更改
. 重復前一個操作
n.重復前一個操作n次
退出模式下e!直接還原到文件最初打開狀態
二:可視化模式
可視化模式:vim在命令模式下按v及V可以選擇文本塊。
v:面向字符
V:面向行
Ctrl+v面向塊
選擇出的部分可以被刪除(d),復制(y),變更,過濾,搜索,替換等。
三:多文件模式及多窗口
vim file1 file2 ....
:next 下一個
:prev 前一個
:wall 保存所有
:qall 退出所有
vim -o|O file1 file2(多文件)
-o:水平分割
-O:垂直切割
窗口間切換:Ctrl+w,方向鍵
vim file(單文件)
Ctrl+w,s 水平分割
Ctrl+w,v 垂直分割
Ctrl+w,q 取消相鄰窗口
Ctrl+w,o 取消全部窗口
:wqall 退出
四:vim配置文件
1.在配置文件中修改永久有效。配置文件一個是全局文件/etc/vimrc對所有用戶有效,個人文件是~/.vimrc。只對當前用戶有效
2.設置行號:set number 取消行號:set nonumber
3.括號匹配:set showmatch 取消:set nosm
在vim命令模式下,在括號上按%可以匹配括號。
4.自動縮進:set ai 禁用:set noai
5.高亮搜索:set hlsearch 禁用:set nohlsearch
6語法高亮: syntax on(默認開啟) 禁用:syntax off
7.忽略字符大小寫:啟用:set ic 不忽略:set noic
8文件格式: Windows:set fileformat=dos Unix:set fileformat=unix
9.設置文本寬度:
:set textwidth=65(vim only)
:set wrapmargin=15
補:.swp文件
這個文件是在編輯文件時產生的,保存著在原文件上所作的操作。當文件正常退出時,該文件會自己刪除,電腦突然斷電時,我們可以通過他找回在原文件上的操作。找回的過程:第一種方式:(1)vim -r file 還原(2)刪除.swp文件第二種方式:(1)vim file (2)按r
五:shell編程基礎
程序是指令+數據,程序可以分為過程式和對象式,過程式以指令為中心,數據服務於指令,對象式以數據為中心,指令服務於數據。
計算機運行二進制指令,編程語言分為低級和高級語言,低級語言更貼近於硬件,比如匯編語言。高級語言又分為兩類,一類是編譯型語言,需要編譯器進行編譯。比如java,c#,另一種是解釋型語言,需要解釋器,實時翻譯。比如shell,Perl,python。需要註意的是每種語言都有自己的解釋器,各種語言的解釋器不能混用。解釋比編譯效率低,但重在靈活,反應快,更加適合運維。
shell腳本:包含一些命令或聲明,並符合一定格式的文本文件
shell的用途:自動化常用命令;系統管理和故障排除;創建簡單的應用程序;處理文本或文件。
創建shell腳本:
(1)使用文本編輯器創建文件
要點:1.第一行必須包含shell聲明序列:#!,如#!/bin/bash。
2.#!的作用:當要執行程序時,命令中如果不包含解釋器的路徑,此時就會根據文件的#!來尋找解釋器,但這種執行方式要求文件必須可執行。
3.添加註釋,註釋以#開頭
(2)運行腳本:
第一種執行方式:給予權限,在命令行上指定腳本的絕對或相對路徑
第二種執行方式是 命令中直接包含解釋器的路徑,運行解釋器,將腳本作為解釋器程序的參數。
腳本調試:
bash -n file
bash -x file
變量
變量:命名的內存空間。數據分為字符型數據和數值型數據存儲在變量中。變量可以存儲數據,參與運算
變量分為強類型和弱類型,強類型變量不經過強制轉換,他永遠是這個數據類型,不允許隱式的類型轉換。定義變量時必須指明類型,參與運算必須符合類型要求;調用未聲明變量會產生錯誤,如java,c#。弱類型變量會在運行時隱式做數據類型轉換。無需指定類型,默認字符型;參與運算會自動進行隱式類型轉換;變量無需定義,可直接調用。
變量的命名法則:
(1)不能使用保留字
(2)只能使用數字字母,下劃線且不能以數字開頭
(3)做到見名知意
變量的種類:
(1)本地變量:只在當前shell進程生效
1.變量賦值:變量名=...
...可以是直接字符串:如name="root"
...可以是變量引用:如name="$USER"
...可以是命令引用:name=`command ...`或name=$(command ...)
2.變量引用:${name} $name
"":弱引用,其中的變量引用會被替換為變量值
'':強引用,其中的變量引用不會被替換為變量值,保持原字符串。
3. 顯示已定義的所用變量:set
4. 刪除變量:unset name
(2)環境變量:在當前shell及子shell進程有效
1.變量聲明賦值:
export name=VALUE
declare -x name=VALUE
2.顯示所有環境變量;
env;export;declare -x
(3)局部變量:通常在當前shell進程和函數中生效
(4)位置變量:$1,$2, 用於讓腳本在腳本代碼中通過命令行傳遞它的參數。
1.$*:傳遞給腳本的所有參數,全部參數為獨立字符串 2.$@:傳遞給腳本的所有參數,每個參數為獨立字符串兩者只有被“”抱起來的時候才會有差異
3.set -- 清空所有位置變量
(5)只讀變量:只能聲明,但不能修改和刪除
1.只讀變量的聲明:readonly name 或 declare -r name
2.查看只讀變量:readonly -p
退出狀態:用來報告成功或失敗
0:成功,1-255:失敗
$?變量保存最近的命令退出狀態
bash自定義退出狀態碼:exit n,腳本中一旦遇到exit命令,腳本會立即終止;退出狀態碼取決於exit命令後面的數字。
算數運算及賦值:
(1)算數運算有:+,-,*,/%,**(乘方)
(2)賦值:
let var= 算術表達式
let var= $[算術表達式]
let var= $((算術表達式))
declare -i var=數值
echo '算術表達式'|bc
(3)隨機數生成器:echo $[$RANDOM%50] :0-49之間的隨機數
vim及shell編程基礎