## 課程一:Terminal #### 2022年下學期,明新科技大學資管系 #### 講師:胡嘉璽 ---- ## 課程重點 * 作業系統中的重要元件 * 什麼是UI,GUI * 什麼是Terminal * 什麼是shell,CLI * 你為什麼要學CLI Shell * 常見的Terminal ---- ## 課程重點 * <font color="#00f">**作業系統中的重要元件**</font> * 什麼是UI,GUI * 什麼是Terminal * 什麼是shell,CLI * 你為什麼要學CLI Shell * 常見的Terminal ---- ## 作業系統中重要的元件 ---- ### 常見的作業系統 ![](https://i.imgur.com/1gJnZ6d.jpg) ---- ![](https://i.imgur.com/GhdFSHJ.png) ---- ![](https://i.imgur.com/2zWnFje.png) ---- ![](https://i.imgur.com/BuGGiwN.jpg) ---- ![](https://i.imgur.com/5x9vk8Z.png) ---- ### 你熟悉的作業系統 ![](https://i.imgur.com/3VbPDNZ.png) ---- ### 大部分的電腦是沒有UI的 ![](https://i.imgur.com/o6NnrnR.jpg) ---- ### 作業系統的組成 ![](https://i.imgur.com/n5UlS1c.png) ---- ### 作業系統中的元件說明 * 電腦的目的只是讓機器工作 * 人類和電腦溝通沒有必要性 * 大部分電腦都能「自洽」,不需要和人溝通 * 包括交通工具、衛星、家電、零組件、微電腦 * 在製造時已燒錄「控制」硬體的軟體 ---- ## 課程重點 * 作業系統中的重要元件 * <font color="#00f">**什麼是UI,GUI**</font> * 什麼是Terminal * 什麼是shell,CLI * 你為什麼要學CLI Shell * 常見的Terminal ---- ## 什麼是UI、GUI ---- ### 什麼是UI * 即使用者介面(User Interface) * 必須有人類感官與之產生輸出、輸入與運作內容三方互動 * 雙向的資訊傳遞成為可能 * 輸入:允許使用者操作執行一套系統 * 輸出:允許系統向使用者傳達操作效果 * 感官式:和人類感官直接互動,如眼手互動,如GUI * 邏輯式:需了解機器提供的邏輯,如語言式,DOS指令 ---- ### 什麼是UI ![](https://i.imgur.com/KfoICoW.png) ---- ### 早期的UI ![](https://i.imgur.com/11jtsgN.png) ---- ### 早期的UI ![](https://i.imgur.com/vnnbP1r.jpg) ---- ### 不一樣的UI ![](https://i.imgur.com/oQjQ47d.png) ---- ### 這些都是UI ![](https://i.imgur.com/PwCLfMP.png) ![](https://i.imgur.com/7XGMC1h.png) ![](https://i.imgur.com/rhWjvf6.png) ---- ## 什麼是GUI ---- ### 什麼是GUI * 即圖形使用者介面(Grapic User Interface) * 主要利用視窗對作業系統進行操作 * 1968年Douglas Carl Engelbart發明,使用滑鼠 * 1973年PARC正式推出 * 是目前所有電腦、手機GUI的始祖,之後50年也無太大變化 * 只需眼手協調,不需要了解OS的運作原理 * 包括Windows、MAC、Linux、iOS、Android ---- ### 標準的視窗型使用者介面(NeXTSTEP) ![](https://i.imgur.com/bPghDB7.png) ---- ### 擁有各種元件的UI ![](https://i.imgur.com/0Q0BF1P.png) ---- ## 課程重點 * 作業系統中的重要元件 * 什麼是UI,GUI * <font color="#00f">**什麼是Terminal**</font> * 什麼是shell,CLI * 你為什麼要學CLI Shell * 常見的Terminal ---- ## 什麼是Terminal ---- ### 什麼是Terminal * 就是終端機,用於連線回主機操作的設備 * 本身只要有UI即可,不需有任何資源 * 早期大型系統時,多人可同時用終端機連回主機 * 提供多人多工使用 * 主機同時可有多人多用途 * 必須有UI,不見得有GUI * 可透過鍵盤滑鼠、USB、網路、序列/串列埠連回主機 * 操作主機本身也是Terminal的一種,只是是透過鍵盤/螢幕連接而已 * 一般我們從本機操作的Terminal稱之為Terminal Emulator,就是在本機上模擬一個終端機 ---- ### Terminal架構圖 ![](https://i.imgur.com/aSAmY5I.png) ---- ### GUI的Terminal ![](https://i.imgur.com/WDXQNvR.jpg) ---- ### 使用PC作為Terminal連入主機 ![](https://i.imgur.com/y9FflvE.png) ---- ## 課程重點 * 作業系統中的重要元件 * 什麼是UI,GUI * 什麼是Terminal * <font color="#00f">**什麼是shell,CLI**</font> * 你為什麼要學CLI Shell * 常見的Terminal ---- ## 什麼是Shell、CLI ---- ### 什麼是Shell ![](https://i.imgur.com/JHZjNHP.png) ---- ### 什麼是Shell * 作業系統包括了許多核心功能 * 將這些核心功能提供給「其外」的應用,如人類,機器、軟體 * 由於他是整個OS的最外層,因此命名為Shell(殼) * 代表核心裏面被Shell堅固地保護著 * UI是由Shell所提供的,GUI當然也是Shell提供 * 例如在Windows下,shell提供了文字介面的command prompt、PowerShell以及圖形介面的explorer.exe ---- ### 什麼是CLI * 全程為Command Line Interface,是UI的一種 * 用「邏輯式」的方法提供UI給使用者 * 由各式各樣的command(指令)所組成 * 使用者必須了解指令的使用文法,稱之為語法(Syntax) * 相對於GUI,也稱之為CUI * 必須對作業系統的運作有較深入的了解 * 一般的OS都會提供一個文字介面的shell給終端機使用 ---- ### CLI的特點 * 比GUI難學,上手困難並不易操作 * 不同CLI的指令語法不見得一致,不同系統要學習不同的CLI,如Linux下的sh和Windows下的PowerShell就完全不同 * 不適用於多媒體及互動式操作 * 功能超級強大,速度比GUI快5-100倍 * 提供指令串接功能,可以把不同指令串接使用 * 大部分的OS都提供,不受硬體資源限制 * <font color='#F00'>**可以自動化所有電腦操作**</font> ---- ## 課程重點 * 作業系統中的重要元件 * 什麼是UI,GUI * 什麼是Terminal * 什麼是shell,CLI * <font color="#00f">**你為什麼要學CLI Shell**</font> * 常見的Terminal ---- ## 你為什麼要學CLI Shell ---- ### 你為什麼要學CLI Shell * 省時、簡單、快速、強大、優雅、省功、掌控、安全、自動、穩定、直接 * 主機/伺服器管理中,95%的工作無法用GUI完成 * 大到建立雲端主機,小到執行一個單一程式 * 既然已經學程式語言,多學相對簡單的「程式」 * DevOps的興起,你必須什麼都會 * <font color="#f00">**自動化所有的事情**</font> ---- ### 重新開機 * Windows:在桌面上按 <kbd>alt</kbd>-<kbd>F4</kbd>,用上下箭頭選擇「重新啟動」再按<kbd>Enter</kbd> * 使用CLI:輸入`sudo reboot`然後<kbd>Enter</kbd> ---- ### 開啟一個1000萬行的文字檔 * Windows:應該是沒辦法......:frowning: * 一般CLI:`vi <文字檔名>` ---- ### 照降冪排序一個1000萬行的文字檔 * Windows:用notepad++中應該有辦法:confused: * 一般CLI:`sort -r < <文字檔名> > > <輸出檔名>` ---- ### 將一個1000萬行的文字檔去除重複行 * Windows:用notepad++中應該有辦法:confused: * 一般CLI:`sort <文字檔名> | uniq > <輸出檔名>` ---- ## 常見的Terminal ---- ### 常見的Terminal * Linux的termnial:Terminal * MacOS的terminal:iTerm, iTerm2、PowerShell * Windows 10/11的terminal:Windows終端機 ---- ### Ubuntu Linux Terminal ![](https://i.imgur.com/9WPGuMm.png) ---- ### MacOS iTerm2 ![](https://i.imgur.com/9m87qbN.png) ---- ### Windows 終端機(強烈推薦好用!) ![](https://i.imgur.com/pVG7ZYt.png) ---- ### 終端機和Shell別弄混 * 終端機是一個UI,用來連上主機 * 可能是GUI、可能是CLI,也可能是VR,就是用來連上主機 * 連線方式都可以網路、USB、螢幕鍵盤、無線電、光波..... * 自己連到自己也可以用終端機 ---- ### 終端機和Shell別弄混 * Shell是作業系統的一個功能:heavy_check_mark: * 可以從本機用UI或GUI透過Shell使用OS功能:heavy_check_mark: * 也可以從終端機連上主機,再從Shell使用主機功能:heavy_check_mark: * 「遠端連上主機的終端機」這句話是錯誤的描述。:X:
{"metaMigratedAt":"2023-06-17T12:30:24.612Z","metaMigratedFrom":"YAML","title":"明新科大2022年ansible-1","breaks":true,"slideOptions":"{\"theme\":\"sky\",\"transition\":\"fade\"}","description":"作業系統中的重要元件","contributors":"[{\"id\":\"33d47e04-0bab-4c19-9d2f-fbbbae0b7706\",\"add\":6647,\"del\":1625}]"}
    900 views