Feb 16, 2014

Ubuntu Shell Script 00 - Introduction

Shell script的 "shell" 指的就是「文字界面命令列工具」,如同DOS或Windows的CMD.exe,在Ubuntu使用的shell是BASH,可以由terminal下ps指令得知。
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