加入 Systematic Facebook 擁躉群  

這個頁面上的內容需要較新版本的 Adobe Flash Player。

取得 Adobe Flash Player


想定期知道最新課程及優惠嗎?
免費訂閱本中心的課程通訊!
觀看課程通訊
Reasonable Spread:
Permission email marketing

課堂錄影隨時睇 10 大優點之免費試讀:無條件免費試讀,讓您毋須擔心錄影課程及導師質素,信心保證!

Shell Script Linux 自動化課程

  • 課程時間
  • 課程簡介
  • 課程內容

推介服務:課堂錄影隨時睇
編號 地點 可預約星期及時間 學費低至 8 折  
NJ1706MV 旺角 一至五:11:30 - 22:30   六及日:10:30 - 21:30   (公眾假期休息) 95 折後只需 $1,311 按此報名
NJ1706OV 觀塘 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 9 折後只需 $1,242 按此報名
NJ1706PV 北角 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 9 折後只需 $1,242 按此報名
NJ1706SV 沙田 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 9 折後只需 $1,242 按此報名
NJ1706YV 屯門 一至五:13:30 - 22:00   六及日:12:30 - 21:00   (星期三及公眾假期休息) 8 折後只需 $1,104 按此報名
* 各政府部門可使用 P Card 付款  
免費試睇: 首 1 小時,請致電與本中心職員預約。 查看各地點電話
旺角 2332-6544
觀塘 3563-8425
北角 3580-1893
沙田 2151-9360
屯門 3523-1560
免費重睇: 學員可於享用時期內於報讀地點不限次數地重看課堂錄影,從而可反覆重溫整個課程!
導師解答: 學員可於觀看某一課堂錄影後提出課堂直接相關的問題,課程導師會樂意為學員以單對單的形式解答!
課時: 12 小時
享用時期: 報讀日至 4 星期內,進度由您控制,可快可慢。
課堂錄影導師: Franco (任教課程清單)
課堂錄影隨時睇: 詳情及示範片段


Linux 是全球知名的作業系統,使用 Linux 的伺服器已經十分普遍。如何有效管理 Linux 成為 Linux 使用者需要面對的課題。而 Shell Script 就是有效管理 Linux 的利器。

Shell Script 是利用 Linux Shell 的功能所編寫的 Script (程式)。Shell Script 內透過使用指令、程式邏輯 (e.g. if then else, loops, etc.)、正規表示式 (Regular expression)、管線 (Pipe)、資料流重導向 (Redirection)、Sed (Stream editor)、Gawk (GNU Awk) 等技術達到 Linux 自動化的效果,令我們不再需要人手地處理一些重覆、笨拙和易錯的系統管理工作。

Shell Script 能自動化以下的工作:

  • 自動化進行備份,並為每個備份加上準確的日期時間。
  • 自動化執行 Linux 指令,例如執行指令以備份 MySQL 資料庫。
  • 自動化在檔案 / 設定檔內新增、修改或移除文字或設定,例如在 apache2.conf (Apache2 網頁伺服器的其中一個設定檔) 內新增、修改或移除設定。
  • 自動化進行檔案操作,例如為某個目錄的檔案先進行 N 次的過濾 (filter)、排序 (Sort)、然後為大量的檔案改名。
  • 自動化監控 Linux,例如如果硬盤空間不足,便會發送電郵給管理員以及時解除危機。
  • 取得用戶的輸入並針對用戶輸入作程式處理。
  • 更多…
《Shell Script Linux自動化課程》 是一個全面的 Linux Shell Script 課程。在課程的初段導師會教授同學 Linux Shell 知識,然後教授編寫具程式邏輯的 Shell Script。掌握 Linux Shell Script 技巧後便會教授編寫綜合實用例子,如自動化進行備份、自動化監控 Linux 硬盤空間,如果硬盤空間不足便會發送電郵給管理員等。

課程時數: 12 小時 (共 4 堂)
適合人士: 已修讀 "Linux 安裝及基本管理課程" 或具有同等知識。學員無需要具有任何編寫程式的經驗和知識。
授課語言: 以廣東話為主,輔以英語
課程筆記: 本中心導師親自編寫中文為主筆記,而部份中文字附有英文對照。


1 Shell Script 簡介

2 Linux 的指令介面 (CLI, Command Line Interface)
2.1 使用指令介面 (CLI, Command Line Interface) 的時機
2.2 前景與背景執行
2.2.1 前景執行
2.2.2 背景執行
2.3 常用的指令
2.3.1 Manual page (man page)
2.3.2 touch
2.3.3 cat
2.3.4 more 與 less
2.3.4.1 more
2.3.4.2 less
2.3.5 head
2.3.6 tail
2.3.7 wc
2.3.8 pwd
2.3.9 mkdir
2.3.10 mv
2.3.11 rm
2.3.12 file
2.3.13 find
2.3.14 tar
2.3.14.1 打包與壓縮
2.3.14.2 檢視 tar 或 tar.gz 檔案的內容
2.3.14.3 拆包與解壓
2.3.15 free
2.3.16 df
2.3.17 !!
2.3.18 !$
2.4 指令的路徑
2.4.1 which
2.4.2 $PATH
2.4.3 執行 Linux 預設沒有提供的指令
2.4.3.1 在 $PATH 內新增路徑
2.4.3.2 在 Linux 內執行 Java 程式
2.5 環境變數
2.5.1 顯示所有環境變數
2.5.2 顯示個別的環境變數
2.5.3 使用環境變數
2.5.4 新增環境變數
2.5.5 取消環境變數
2.5.6 環境變數從何而來?
2.5.6.1 在系統層面設定環境變數
2.5.6.2 在用戶層面設定環境變數
2.6 標準輸入與標準輸出
2.6.1 標準輸入與 "<"
2.6.2 標準輸出與 ">"
2.6.3 標準輸出與 ">>"
2.6.4 "<<"
2.6.5 結合標準輸入與輸出
2.6.6 1>, 2> 及 &>>
2.6.6.1 1>
2.6.6.2 2>
2.6.6.3 &>>
2.7 管線 (Pipes)
2.7.1 管線的邏輯
2.7.2 wc
2.7.3 sort:預設排序
2.7.4 sort:進階排序
2.7.5 sort 與uniq
2.8 特殊字元、引號、大括號及正規表示式 (Regular Expression)
2.8.1 特殊字元
2.8.1.1 萬用字元
2.8.1.2 單一字元
2.8.1.3 跳脫字元
2.8.2 單引號與雙引號
2.8.2.1 單引號
2.8.2.2 雙引號
2.8.3 大括號
2.8.3.1 順序擴展 (第一部份)
2.8.3.2 順序擴展 (第二部份)
2.8.3.3 倒序擴展 (第一部份)
2.8.3.4 倒序擴展 (第二部份)
2.8.3.5 更多的例子
2.8.4 正規表示式 (Regular Expression)
2.8.4.1 開始
2.8.4.2 含有
2.8.4.3 結束
2.9 grep
2.9.1 只顯示成功比對的行數
2.9.2 相反
2.9.3 多個參數的比對 (OR)
2.9.4 多個參數的比對 (AND)
2.9.5 最少出現的次數
2.9.6 出現次數的範圍
2.9.7 不區分大小寫
2.10 參數代換
2.10.1 xargs
2.10.2 例子:將所有的 jar 檔案複製到指定的資料夾內
2.11 權限、擁有者及群組
2.11.1 權限
2.11.1.1 檔案類型
2.11.1.2 擁有者、群組及其他人的權限
2.11.1.3 了解權限
2.11.1.4 設定權限
2.11.2 擁有者及群組與 sudo
2.11.2.1 設定擁有者及群組
2.11.2.2 一般用戶在無需鍵入密碼的情況下取得特殊權限
2.11.2.2.1 sudo
2.11.2.2.2 實踐一般用戶在無需鍵入密碼的情況下取得特殊權限

3 Shell Scripts 語法
3.1 Shell (殼層) 介紹
3.1.1 Bash shell
3.2 文字編輯器
3.2.1 gedit
3.2.2 Sublime Text
3.2.2.1 安裝 Sublime Text
3.2.2.2 安裝 Package Control
3.2.2.3 安裝用作編寫 Shell Script 的插件
3.2.2.4 測試是否具有自動填寫 Shell Script 語法的功能
3.2.3 nano
3.2.4 vi
3.2.4.1 使用 vi 的事前準備
3.2.4.2 一般模式的指令
3.2.4.3 編輯模式的指令
3.2.4.4 底線模式的指令
3.2.4.5 使用 vi 開啟檔案
3.2.4.6 離開 vi
3.2.4.7 跳到第 888 行
3.2.4.8 在第 888 行的下方開始進行編輯
3.2.4.9 鍵入文字
3.2.4.10 刪除文字
3.2.4.11 儲存及離開
3.2.4.12 檢查是否已經儲存內容
3.3 編寫 Shell Script 的流程及Shell Script 的結構
3.3.1 編寫 Shell Script 的流程
3.3.2 Shell Script 的結構
3.3.3 實習:Hello World
3.4 註釋 (Comments)
3.4.1 實習:註釋 (Comments)
3.5 echo
3.5.1 echo (一整行)
3.5.1.1 實習:echo (一整行)
3.5.2 echo (非一整行)
3.5.2.1 實習:echo (非一整行)
3.6 使用 Shell Script 執行指令
3.6.1 實習:使用 Shell Script 執行指令 (第一部份)
3.6.2 實習:使用 Shell Script 執行指令 (第二部份)
3.7 變數
3.7.1 實習:錯誤處理變數的示範
3.7.2 實習:正確處理變數的示範
3.7.3 實習:變數的特點:變
3.7.4 Shell Script 內的單引號、雙引號及倒引號
3.7.4.1 單引號
3.7.4.2 雙引號
3.7.4.3 倒引號
3.7.4.4 實習:顯示行號
3.7.4.5 實習:單引號、雙引號及倒引號
3.7.5 參數及特殊的變數
3.7.5.1 實習:參數及特殊的變數
3.7.6 最得用戶的輸入
3.7.6.1 實習:取得用戶的輸入
3.8 算術運算
3.8.1 實習:算術運算
3.9 流程控制
3.9.1 if (基本:第一部份)
3.9.1.1 實習:if (基本:第一部份)
3.9.2 if (基本:第二部份)
3.9.2.1 實習:if (基本:第二部份)
3.9.3 if (數字比較)
3.9.3.1 實習:if (數字比較)
3.9.4 elseif
3.9.4.1 實習:elseif
3.9.5 if (字串比較)
3.9.5.1 實習:if (字串比較)
3.9.6 if (指令是否能夠執行)
3.9.6.1 實習:if (指令是否能夠正確執行)
3.9.7 case
3.9.7.1 實習:case
3.9.8 for loop (固定次數)
3.9.8.1 實習:for loop (固定次數)
3.9.9 break 與 continue
3.9.9.1 break
3.9.9.1.1 實習:break
3.9.9.2 continue
3.9.9.2.1 實習:continue
3.9.10 sleep
3.9.10.1 實習:sleep
3.9.11 for loop (取得資料夾內的資料夾或檔案及備份)
3.9.11.1 實習:for loop (取得現在資料夾內的資料夾或檔案)
3.9.11.2 實習:for loop (取得指定資料夾內的資料夾或檔案)
3.9.11.3 實習:for loop (遞歸地取得指定資料夾內指定的檔案)
3.9.11.4 實習:for loop (備份指定的檔案並為該備份加上日期時間戳)
3.9.12 while loop
3.9.12.1 實習:while loop
3.9.12.2 實習:while loop (製作清單)
3.9.13 until loop
3.9.13.1 實習:until loop
3.9.13.2 實習:until loop (製作清單)
3.9.14 檢查檔案屬性
3.9.14.1 實習:檢查是不是資料夾
3.9.14.2 實習:檢查是不是檔案
3.9.14.3 實習:檢查是否存在
3.9.14.4 實習:檢查是有沒有讀、寫及執行的權限
3.10 函數 (function)
3.10.1 實習:不具參數的函數
3.10.2 實習:具參數的函數 (基本結構)
3.10.3 實習:具參數的函數 (處理重覆性強的情況)
3.11 隨機數 (Random Numbers)
3.11.1 實習:隨機數 (Random Numbers)
3.12 處理日期和時間
3.12.1 實習:取得現在的年月日時分秒
3.12.2 更多的選項
3.12.3 實習:基於現在的時間進行 "加" 操作
3.12.4 實習:基於現在的時間進行 "減" 操作
3.12.5 實習:基於指定的時間進行 "加減" 操作
3.12.6 實習:時間範圍迴圈
3.12.7 實習:找出時區
3.12.8 實習:顯示不同時區現在的日期時間
3.12.9 實習:顯示不同時區指定的日期時間
3.13 定時地執行 Shell Script
3.13.1 crontab 檔案
3.13.1.1 例子1
3.13.1.2 例子2
3.13.1.3 例子3
3.13.1.4 例子4
3.13.1.5 例子5
3.13.1.6 例子6
3.13.2 實習:不含的 Shell Script 的排程工作
3.13.3 實習:執行具 Shell Script 的排程工作
3.14 遠端檔案抄寫 (Remote file copying)
3.14.1 概念
3.14.2 設定的概念
3.14.3 實習:設定遠端檔案抄寫 (Remote file copying)
3.14.4 實習:透過 Shell Script 進行遠端檔案抄寫 (Remote file copying)

4 sed (stream editor)
4.1 準備
4.1.1 版本檢查
4.1.2 sed 的運作流程
4.2 刪除所有內容
4.2.1 實習:刪除所有內容
4.3 操作範圍
4.3.1 實習:刪除第一行的文字
4.3.2 實習:刪除連續特定行數的文字 (第一部份)
4.3.3 實習:刪除連續特定行數的文字 (第二部份)
4.3.4 實習:刪除連續特定行數的文字 (第三部份, 單數行或雙數行)
4.3.5 實習:negation (否定)
4.4 代換 (Substitution)
4.4.1 實習:簡單代換 (Substitution)
4.4.2 實習:不區分大小寫的代換 (Substitution)
4.4.3 實習:具特定範圍的代換 (Substitution)
4.4.4 實習:同一行的多次比對
4.4.5 實習:改變預設的分隔符
4.4.6 實習:透過代換 (Substitution) 作刪除
4.5 插入 (Insertion) 與附加 (Append)
4.5.1 實習:插入 (Insertion) 一行的內容
4.5.2 實習:插入 (Insertion) 多行的內容
4.5.3 實習:附加 (Append) 多行的內容
4.5.4 實習:在檔案的最下方附加 (Append) 多行的內容
4.5.5 實習:產生很多文字的檔案 (第一部份)
4.5.6 實習:產生很多文字的檔案 (第二部份)
4.6 改變 (Change)
4.6.1 實習:改變 (Change)
4.6.2 sed change 與 substitution 的分別
4.7 sed 與正規表示式 (Regular Expression)
4.7.1 print
4.7.1.1 實習:print (第一部份)
4.7.1.2 實習:print (第二部份)
4.7.2 實習:測試正規表示式 (Regular Expression)
4.7.3 將正規表示式 (Regular Expression) 應用到範圍定義
4.7.3.1 實習:將正規表示式 (Regular Expression) 應用到範圍定義 (第一部份)
4.7.3.2 實習:將正規表示式 (Regular Expression) 應用到範圍定義 (第二部份)
4.7.4 實習:透過正規表示式 (Regular Expression) 取出有用的部份
4.8 sed 處理多行文字的技巧
4.8.1 Pattern space 與 Hold space
4.8.1.1 Pattern space
4.8.1.2 Hold space
4.8.2 實習:多行文字的代換 (Substitution)
4.8.3 實習:透過多行文字的代換 (Substitution) 設定 named.conf.options

5 GAWK
5.1 安裝 GAWK 及版本檢查
5.2 實習:列印所有資料
5.3 預設的變數
5.3.1 實習:預設的變數 (列數)
5.3.2 實習:預設的變數 (欄數)
5.4 控制處理的範圍
5.4.1 實習:只顯示 /dev/sda1 相關的硬碟使用情況
5.4.2 實習:不顯示第一行
5.5 BEGIN 和END
5.5.1 實習:BEGIN 和END
5.6 顯示每個欄位的值
5.6.1 實習:顯示每個欄位的值
5.7 條件判斷
5.7.1 實習:條件判斷
5.8 使用其他分隔符
5.8.1 實習:使用其他分隔符 (第一部份)
5.8.2 實習:使用其他分隔符 (第二部份)

6 其他相關技術
6.1 Shell Script 與 MySQL
6.1.1 安裝 MySQL 及設定 root 密碼
6.1.2 登入 MySQL
6.1.2.1 方式1
6.1.2.2 方式2
6.1.3 使用 Shell Script 操作 MySQL
6.1.3.1 實習:使用 Shell Script 登入 MySQL 並顯示所有資料庫
6.1.3.2 實習:使用 Shell Script 將 MySQL 指令的執行結果寫進檔案內
6.1.3.3 實習:使用 Shell Script 新增 MySQL 資料庫 (Databases)
6.1.3.4 實習:使用 Shell Script 新增 MySQL 資料表 (Tables)
6.1.3.5 實習:使用 Shell Script 新增 MySQL 資料並顯示資料
6.1.4 使用 Shell Script 備份及復原 MySQL 資料庫
6.1.4.1 實習:使用Shell Script 備份MySQL資料庫並在備份檔案內加上時間戳
6.1.4.2 實習:使用Shell Script 復原 MySQL資料庫
6.2 Shell Script 與帳戶管理
6.2.1 實習:使用Shell Script 新增用戶
6.2.2 實習:使用Shell Script 為用戶設定密碼
6.2.3 實習:使用Shell Script 新增群組
6.2.4 實習:使用Shell Script 將用戶加入群組
6.2.5 實習:使用Shell Script 刪除用戶
6.2.6 實習:使用Shell Script 刪除群組
6.3 Shell Script 與發送電郵
6.3.1 測試電郵伺服器
6.3.2 安裝 mailutils
6.3.3 實習:使用 Shell Script 發送電郵
6.3.4 實習:監控 Linux 硬盤空間,如空間不足便發送電子郵件通知 (第一部份)
6.3.4.1 技術背景
6.3.4.2 實習部份
6.3.5 實習:監控 Linux 硬盤空間,如空間不足便發送電子郵件通知 (第二部份)
6.4 連續執行的指令
6.4.1 實習:先執行A,不論 A 成功執行與否都會執行 B
6.4.2 實習:先執行A,只有成功執行 A 後才會執行 B
6.4.3 實習:先執行A,只有A執行失敗後才會執行 B

7 附錄1:安裝 Linux 及 OpenSSH

 

更多綜合課程
  法律課程
  • 代理人的法律責任
  • 公司董事和合夥人的法律責任
  • 婚姻的法律責任
  • 遺產繼承的合法權益
  英文課程
  • IPA 拼音:級別 1 2 3 4
  普通話課程
  • 基礎普通話拼音課程 (免費)
  • 進階普通話拼音課程
  • 普通話會話:級別 1 2 3
  西班牙語文課程
  • 級別 1 2 3
  中醫課程
  • 濕疹與皮膚敏感病
  • 暗瘡與色斑 | 鼻敏感與感冒
  • 脫髮與白髮 | 從五官看健康
  攝影課程
  • 攝影初級
  • 攝影中級 (風景專題)
  • 戶外實景攝影實習
  風水命理課程
  • 紫微斗數:級別 1 2 3
  • 子平八字:級別 1 2 3
  • 八字風水:級別 1 2 3
  • 奇門遁甲:級別 1 2 3

這個頁面上的內容需要較新版本的 Adobe Flash Player。

取得 Adobe Flash Player