管道符、重定向
- 管道符 "|":將前一個命令的標(biāo)準(zhǔn)輸出當(dāng)作后一個命令的標(biāo)準(zhǔn)輸入
- 輸入輸出重定向:>與<
- 命令行通配符: *:匹配0或多個字符 ?:匹配任意單個字符 [0-9]:匹配范圍內(nèi)的數(shù)字 [abc]:匹配其中的字符
- PATH變量:負(fù)責(zé)告訴bath要執(zhí)行的命令存放在哪里 查看當(dāng)前PATH變量:echo $PATH
- 環(huán)境變量:除$PATH外,還有$HOME、$SHELL、$LANG、$RANDOM等等
Vim
- 命令模式:HJKL控制光標(biāo)移動、dd刪除(剪切)該行、yy復(fù)制該行、p粘貼、u撤銷、/字符串:搜索字符串
- 輸入模式:命令模式下按a、i、o進(jìn)入輸入模式,Esc回到命令模式
- 末行模式::w->保存、:q->退出、:q!->強(qiáng)制退出、:wq保存并退出、:set nu->顯示行號
Shell
1、腳本聲明:#!/bin/bash ->告知系統(tǒng)用何種解釋器來解釋 ps:解釋器有bash、dash、等
2、注釋信息:以#開頭的為注釋信息
3、可執(zhí)行語句:
4、文件名以.sh結(jié)尾
- 執(zhí)行shell腳本三種方法:
1、腳本文件路徑:./Example.sh
2、sh 腳本文件:sh Example.sh
3、source 腳本文件:source Example.sh - 若直接訪問腳本路徑方式出錯,則為腳本添加可執(zhí)行權(quán)限:chmod u+x Example.sh
接收參數(shù):./Example.sh one two three ...
Shell預(yù)定義變量:
$0->當(dāng)前腳本名、$1-9->對應(yīng)參數(shù)位置的變量、$#->參數(shù)總數(shù)、$*所有位置變量的值、$?->判斷上條命令是否執(zhí)行成功 0為成功 非0失敗
測試語句:文件測試、邏輯測試、整數(shù)值比較、字符串比較
格式:[ 條件表達(dá)式 ] ps:兩邊要有空格
1、文件測試:[ 操作符 文件名或目錄名 ]
- 參數(shù):-d->是否為目錄、-e->文件或目錄是否存在、-f->是否為文件、-r、-w、-x->測試當(dāng)前用戶是否有讀、寫、執(zhí)行權(quán)限
2、邏輯測試:[ 表達(dá)式1 ] 操作符 [ 表達(dá)式2 ]
- 操作符: &&->邏輯與 ||->邏輯或 !->邏輯非
- eg:[ $USER!=root ] && echo "user" || echo "root" :若當(dāng)前用戶不是root則打印user否則打印root
3、整數(shù)值比較:[ 整數(shù)1 操作符 整數(shù)2 ]
操作符:-eq->是否等于、-ne->是否不等于、-gt->是否大于、-lt->是否小于、-le->是否小于或等于、-ge->是否大于或等于
eg:FreeMem=
'free -m' | grep cache: | awk '{print $3}'使用命令輸出結(jié)果對變量賦值時要用反引號`
4、字符串比較:[ 字符串1 操作符 字符串2 ]
操作符: =->比較字符串內(nèi)容是否相同 !=->不同 -z->是否為空 [-z $String]
條件測試:if、for、while
-
1、if 2、for 3、while 4、case
if [...] for 變量名 in 取值列表 while 條件測試操作 case 變量值 in then do do 模式1 ... ... ... 命令序列1... else done done ;; ... 模式2 fi 命令序列2... ;; *) esac 計劃任務(wù):一次性與長期
-
1、一次性計劃任務(wù):at指令
at <時間> :安排一次性任務(wù) atq或at -l :查看任務(wù)列表 at -c 任務(wù)編號 :預(yù)覽任務(wù)與設(shè)置環(huán)境 atrm 任務(wù)編號 :刪除任務(wù) -
2、長期性計劃任務(wù):cron指令
crontab -e [-u 用戶名]:創(chuàng)建、編輯計劃任務(wù) crontab -l [-u 用戶名]:查看計劃任務(wù) crontab -l [-u 用戶名]:刪除計劃任務(wù)