1 / 31

Shell Script 程式設計

Shell Script 程式設計. 鄧姚文. 教材. 陳源謙( 2010 ), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004 ) 湯秉翰( 2013 ), CentOS Linux 系統建置與實務 ( 第二版 ) , 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312 )

Download Presentation

Shell Script 程式設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Shell Script程式設計 鄧姚文

  2. 教材 • 陳源謙(2010), Ubuntu Linux 管理與架站實務, 博碩文化股份有限公司, ISBN 978-986-201-389-2 (書號 OS30004) • 湯秉翰(2013), CentOS Linux系統建置與實務(第二版), 博碩文化股份有限公司, ISBN 978-986-201-764-7 (書號 OS31312) • 鳥哥(2011), 鳥哥的Linux私房菜--伺服器架設篇(第三版), 碁峰資訊股份有限公司, ISBN 9789862579329 (書號 ACA016100)

  3. 章節大綱 • 認識 shell • 認識 Shell Script • 變數 • 控制結構 • 程式迴圈

  4. 簡介 • 如果系統管理員每一件事情都要親自動手,絕對忙不過來 • 很多工作可以藉由 Shell Script 自動化 • 維護 log • 清除垃圾 • 套件更新 • 報告入侵事件

  5. 認識 Shell(殼層) • 介於使用者與系統核心之間的仲介程式 • 提供人機介面 • 接受使用者下達的指令,驅動作業系統完成工作 • 常見的 Shell: • Bourne Shell • 執行檔 sh,通常是 /bin/sh • UNIX 的標準配備,root 預設的 shell • C Shell • 執行檔 csh,通常是 /bin/csh • 工作排程控制、指令歷史、別名(alias) • Tenex C Shell • 執行檔 tcsh,基於 csh • 改進指令列的編輯 • Korn Shell • 執行檔 ksh,基於 Bourne Shell • 加上 tcsh 的 alias、job controll、指令列編輯 • Bourne Again Shell • 執行檔 bash • GNU 的產品

  6. 練習 • 執行下列指令檢查目前使用者的 Shellecho $SHELL • 執行下列指令檢查 Shell 程式的詳細資訊file $SHELL • 執行下列指令檢查系統可用於登入的 Shell 有哪些cat /etc/shells • 執行下列指令安裝 tcshsudo apt-get install tcsh • 執行下列指令檢視 tcsh 的位置which tcsh • 執行下列指令將登入的 Shell 變更為 tcshchsh -s `which tcsh`

  7. 什麼是 Shell Script ? • 一種程式 • 變數 • 條件判斷 • 迴圈 • 純文字檔案 • 指令為 Linux Command 系統指令【export】即可列出當前的所有變數

  8. 什麼是 Shell Script ? • 指令【echo】及「變數名稱」亦可以直接顯示指定變數的資料值 • 預設的環境變數隨著所採用的Shell 不同將有所差異。以Bash 為例,所列出的環境變數包括:

  9. 什麼是 Shell Script ? • Shell script 指令分成系統指令( 例如: ls、cat、rm、ps、tail、cp) 與 shell 指令(case、loop、if 等 shell 直接解譯的指令)。

  10. Shell Schrip如何執行? • 變更程式權限為可執行 • chmod 755 或 chmod +x • ./helloworld.sh • 使用 sh執行指定的 Shell script

  11. 變數 • Shell 本身會建立環境變數,例如:當前登入之使用者帳號(USER)、當前所在的目錄路徑(PWD)、當前使用者帳號的家目錄(HOME) 等等,這些都是由Shell 預先訂定的。 • 變數的自訂 幾個為定義變數的範例: MYNAME="Frank" AGE=30 CURRENT_DATE=`date +%Y%m%d`

  12. 變數 • 變數的取值 • 在變數前方,冠上「$」就能夠輸出變數的值 • 定義名稱為「CURRENT_DATE」,該變數的值來自於SHELL 本身指令date 的執行結果

  13. 控制結構 • 因應狀況的變化採取不同的措施 • 條件判斷 • if-else • case

  14. 控制結構 if-else

  15. 控制結構 if-else • and : && • or : ||

  16. 控制結構 if-else • 檔案屬性運算符

  17. 控制結構 if-else • 檔案屬性運算符

  18. 控制結構 if-else • 比較數值

  19. 控制結構 if-else • 比較字串

  20. if 控制結構範例 • 透過 if [ -d /root/autobackup ] 判斷指定路徑的資料夾是否存在,若不存在,則執行 mkdir 建立資料夾,再進行資料庫匯出備份的動作。

  21. if 控制結構範例 • 透過 if [-ge] 和 if [-le] 分別判斷輸入的數值,是否大於等於90,或者小於等於60分,若符合兩者其一的條件,便顯示對應的訊息。

  22. 控制結構 case

  23. 練習: 控制結構 case • 以下列指令觀察 rsync服務的程式內容cat /etc/init.d/rsync

  24. 程式迴圈 • 重複執行 • for 迴圈 • while 迴圈 • until 迴圈

  25. 程式迴圈 for

  26. 程式迴圈 for

  27. 程式迴圈 while

  28. 範例: 程式迴圈 while

  29. 程式迴圈 until • 與 while 迴圈相反 • 當條件為假時執行迴圈,條件為真結束迴圈

  30. 程式迴圈 until 執行結果

  31. 本章結束 Q&A討論時間

More Related