$0 當前shell程序的名字
$1 ~ $9 命令行上的第一到第九個參數
$# 命令行上的參數個數
$* 命令行上的所有參數
$@ 分別用雙引號引用命令行上的所有參數
$$ 當前進程的進程標識號(PID)
$? 上一條命令的退出狀態
$! 最後一個後台進程的進程標識號
系統變量只能引用不能修改!
1、 除了方向鍵上,還可以用“!!”代表上一條輸入的命令,用這個的好處在於可以將這兩個字符放在命令行任何位置以便於構成新的命令。
例如:
$./some-shell-command
$cat !!
則後一條命令就相當於cat ./some-shell-command,這樣做比先按方向鍵上回退一條命令,然後定位到開始,插入cat要快捷得多。
2、 除了!!,!$代表得是上一條命令中最後一個parameter,這是個更有用的變量,例如:
$ls /some-path-to-a-directory
$cat !$/some-file.txt
如果some-path-to-a-directory不幸為一個非常長的路徑的時候,使用!$恰好就能省去輸入這個超長路徑的麻煩,這條命令實際 上就相當於cat /some-path-to-a-directory/some-file.txt
3、 !str代表以歷史命令中最近一條以str開頭的命令。
比如!ssh 就是最後一次執行ssh的命令
4、 !?str?代表歷史命令中最近一條包含str的命令。
5、 !n和!-n,前者代表history命令顯示出來前面的條目數為n的那條命令,後者代表當前命令條目數減去n的那條命令,例如!-3就代表3 條前的那個命令。
對比起來,1和2是相當實用的,剩下3條記得住就用,記不住也無妨了。
來源http://blog.sina.com.cn/s/blog_531bb76301013ulf.html