1.當一個shell腳本程序執行時,一些變量會隨着環境的設置進行初始化。
$HOME:當前用戶的家目錄。
$PATH:用冒號分割的用來搜索命令的列表。
$IFS:輸入域分割符
$0:shell腳本的名字
$#:傳遞給shell腳本的參數個數
$$:shell腳本的進程號
$?:上一個命令的退出值Last command or function's return value.
$!: Last program's PID.上一個進程的pid,例如用在shell腳本中用這個語句啓動一個新進程nohup a.sh;echo $!就可以輸出a.sh的pid。
2.可以使用export在子shell中設置環境變量。
3.$1,$2,$3....表示依次傳入shell的參數,$*是指列出所有輸入參數,$@也是所有輸入參數,但不受$IFS影響。
4.可以用read +參數名來從控制檯讀取參數輸入變量。
5.shell執行時 在末尾加入&可以在後臺執行。
6.IFS=‘’可以設置環境變量,使用unset IFS取消環境變量設置,回到默認。
7.if [ $var = "yes"] 與 “$var” = "yes"的區別,當c$var爲空時前者會報shell錯誤,後者不會,因爲解析後前者是if [ = "yes"],後者是if [ “” = "yes"]
8.#!/bin/sh
9.eval命令允許對參數進行求值,類似於一個額外的$,它允許對代碼隨時的生成和運行,例如 y='$'$x;eval z=$y,那麼z的值就變成了x的值。
10.exec的用法,exec後面接執行命令。將當前shell替換成執行程序,執行程序的進程id變成當前shell的,exec後面一行的命令不會再執行了。
nohup命令也可以在當前命令中執行一個新程序,但不是替換。新程序有新的pid。
11.export導出變量,使變量在子shell中也是可用的。
12.用反引號或者$取得命令的執行結果,使命令執行,如x=`expr $x + 1`;或者x=$(expr $x + 1);
13.expr表達式
14.set的作用,set可以爲當前shell設置參數變量,許多命令的輸出結果是以空格分割的,如果需要輸出某個域的值就可以用這個命令。如set $(date),然後用$2就可以取得月份的值。
15.shift命令的作用,將參數全都左移一位,$0不變,原先$1的丟棄,$2編程$1.
16.ps -p pid這個進程的使用時間;如果有這個進程,返回true。
top實時監控當前進程及性能
16.trap命令,用於指定接收到信號要執行的命令。trap command signal。如trap 'rm -R file' INT,INT是中斷信號。如果要重置某個信號的處理方式到默認值,可以將command設爲-。
17.find命令,參考linux程序設計第70頁。
18.grep命令。
19.正則表達式