ps - check running processes in the current shell terminal |
"script" 就是針對shell所寫的劇本,將許多指令彙整在一起工特定功能使用,如同DOS的批次檔 (.BAT files)。Unix的shell script比Widnows的批次檔或powershell功能更強大,幾乎無所不能。常看阿宅工程師,只要有鍵盤和vi編輯器,就能搞定很多工作,就是熟悉shell script和相關工具指令。Shell script的進階功能很多,還提供條件與邏輯判斷、迴圈、陣列等功能,以shell直接來撰寫程式,不需要編譯即可執行。
- 想要搞懂Linux,從shell script學習可以比較容易體會。例如:Linux system services如何啟動,就定義在 /etc/init.d/ 目錄下script files。
- 想當駭客,更要熟悉shell scripts,不然常常要做查詢、追蹤、監控等分析任務,對象可能是流量、使用者、主機狀態等,若是用圖形化界面操作,應該會覺得像笨蛋一樣,要盯著螢幕使用無腦地使用滑鼠,當然要寫程式來分析、預警、寄送訊息,這樣才專業。
撰寫shell script的基本語法:
- 指令執行由上到下、從左至右來parse,每個指令以「;」或「換行」分隔。
- 和寫程式習慣不盡相同,空白要注意,盡量不要有多餘空白,容易語法錯誤 (e.g. date + %y就會產生語法錯誤 "date +%y" 才對)。
shell scripts usually named with .sh |
nas@ubuntu:~/Ubuntu One/Commands$ source date-.sh
Date1 = 140216
Date2 = 20140216
- 字串:$(命令) 或 `命令`
- 註解:# 之後的字串都是註解
- 執行shell script命令:上述 "/home/nas/Ubuntu\ One/Commands/date-.sh" 要如何執?
- shell script檔案必須要具備可讀與可執行 (rx) 的權限:chmod +x date-.sh
- 不在terminal命列模式,可以透過 "bash date-.sh" 或 " sh date-.sh" 執行
習慣上,shell script以註解 #!/bin/bash 開始,以表示此 .sh 檔,在bash上執行 (tested ok)。
No comments :
Post a Comment