shell是命令直譯器,最常用的是bash檢視bash所在位置echo $bash
df -h檢視分割槽情況
第一行是環境,#!/bin/bash 第二行通常是註解指令碼作用,第三行是註解,作者這類資訊
編輯後賦予執行許可權 chmod +x filename
shell變數可以是區域性變數和全域性變數,變數可以在建立該變數的指令碼中使用,全域性變數可以在全域性環境中使用。$uid(當前使用者id,0是root使用者)
$pwd(當前所在目錄)
$0 當前程式的名稱
$n 當前程式的第 n 個引數 ,n=1,2, , 9
$* 當前程式的所有引數 ( 不包括程式本身 )
$# 當前程式的引數個數 ( 不包括程式本身)
$? 命令或程式執行完後的狀態,一般返回0,代表是返回成功,我們常用來判斷上一條命令是否執行成功
if、while、case、for語句編寫自動mysql備份指令碼-f 判斷檔案是否存在 eg: if [ -f filename ] -d 判斷目錄是否存在 eg: if [ -d dir ]
-eq 等於 應用於:整型比較
-ne 不等於 應用於:整型比較
-lt 小於 應用於:整型比較(less than)
-gt 大於 應用於:整型比較(grater than)
-le 小於或等於 應用於:整型比較(less equal)
-ge 大於或等於 應用於:整型比較(greater equal)
-a 雙方都成立( and) -o 單方成立( or ) 邏輯表示式 –o 邏輯表示式
-z空字串
if 中括號是判斷數字大小,兩個小括號也可以
乙個中括號是判斷檔案或者目錄是否存在
sh -n 指令碼名稱,判斷指令碼是否有問題
>>追加到檔案 >覆蓋文
編寫指令碼自動安裝mysql這類工具for迴圈,範圍要用反引號,比如&&成功後繼續判斷
幾個基本符號及其含義
為何2>&1要寫在後面?
命令:index.php task testone >/dev/null 2>&1
我們可以理解為,左邊是標準輸出,好,現在標準輸出直接輸入到 /dev/null 中,而2>&1是將標準錯誤重定向到標準輸出,所以當程式產生錯誤的時候,相當於錯誤流向左邊,而左邊依舊是輸入到/dev/null中。
在安裝軟體時候常用的命令:make 編譯軟體 make install 安裝軟體
for i in `seq 1 $4`
example:
案例一,列印 seq 數字迴圈#!/bin/sh
for i in `seq 15`
doecho 「num is $i 」
done
案例二,求和 1-100 的值
#!/bin/bash
#auto sum 1 100
j=0for ((i=1;i<=100;i++))
doj=`expr $i + $j`
done
echo $j
案例三,找到相關log ,然後批量打包
#!/bin/sh
for i in `find /var/log -name
dotar –czf 2014log.tgz $i
done
shell學習筆記(一)
1.在變數的設定中,單引號與雙引號有什麼不同呢?單引號與雙引號的最大的不同在於雙引號仍然可以保有變數的內容,但單引號僅能是一般字元,而不會有特殊符號。2.在指令下達的過程中,quote 這個符號代表的意義為何?在一串指令中,在 之內的指令將會被先執行,而其執行出來的結果將作為外部的輸入資訊!例如 u...
shell學習筆記(一)
1.history 執行命令歷史紀錄 2.執行上一次命令3.n執行這條命令4.vim執行最近的乙個 vim 5.alias 可以簡單修改名字別名也就是把貓叫個咪 也可以比如 alias ls 6.ctrl z jobs,fg bg作業控制 7.mail s vayne 1219345363 qq.c...
shell學習筆記(一)
一.指令碼編寫和使用 1.sh指令碼宣告 bin sh 2.注釋寫法 該行都是 3.使指令碼可執行 chmod x filename 4.執行指令碼 在終端terminal中輸入.filename即可 二.變數的定義和使用 1.定義變數 變數名 屬性值 2.使用變數 變數名 大括號用來表示變數名的範...