感謝各個同學說明 , 放一下資料以後回頭看
圖片取自維基百科
用戶使用操作 shell 上的其中一種語言(Bash shell),來和核心 (kernel) 溝通,而 kernel 才去驅動硬體設備。
shell 概述
shell 是讓使用者透過螢幕和鍵盤跟作業系統的核心做溝通,並解析使用者所輸入的指令,故稱為命令解析器( Command Interpreter )
shell 區分:
文字介面 shell
sh
bash
csh圖形介面 shell
kde
gnome
Shell 是殼層,意思是電腦核心之外的一層 API,會有這層其實就是一種保護殼,讓電腦核心不會被使用者無頭無腦的操作更動到,同時也保持與核心的可互動性。
Bash shell 是操作殼層的程式語言,也就是跟 shell 溝通的語言。既然是程式語言當然就百家爭鳴了,依不同作業系統核心/歷史因素會有不同語言。例如比 Bash shell 更新、幫使用者整合更多功能的 Zsh shell。
Unix shell,一種殼層與命令行介面,是 UNIX 作業系統下傳統的用戶和電腦的互動介面。第一個用戶直接輸入命令來執行各種各樣的任務。
Unix 作業系統下的 shell 既是用戶互動的介面,也是控制系統的手稿語言。當然在這點也有別於 Windows 下的命令行,雖然也提供了很簡單的控制語句。在 Windows 作業系統下,可能有些用戶從來都不會直接的使用 shell ,然而在 Unix 系列作業系統下, shell 仍然是控制系統啟動、X Window 啟動和很多其他實用工具的指令碼解釋程式。維基百科
鳥哥超清楚的說明文章:第十章、認識與學習 BASH
以下文字資訊引用文章:Day 18 - shell 是什麼?
Windows OS 是 shell 嗎?
shell 分為圖形使用者界面 (GUI) 和命令列界面 (CLI) 兩大類。
嚴格來說 Windows OS 裡面的的資源管理器 (explorer.exe) 就是一種 GUI 類型的 shell,而命令提示字元 (cmd.exe) 則是 CLI 類型的 shell。
Unix 系統則有不同的 shell,如 bash、C shell、Z shell 等等,而 macOS 內建預設都是 bash(即 Bourne Again shell)。
Mac 上面的 terminal.app 是 shell 嗎?
當然不是喔!
terminal 的中文翻譯是「終端機」,而終端機的歷史由來是因為以前的大型電腦體積不像現在的個人電腦,它是有一個大型主機會連接到很多螢幕跟鍵盤。
那些提供顯示與輸入功能的機器,就稱為終端機。在終端機這邊並沒有執行運算的功能,必須要登入主機才能執行運算與資料儲存。
時至今日,個人電腦的體積已經很小,但是終端機這個功能還是保留了下來,所以 teminal.app 只是一個負責顯示與輸入指令的程式,你只是透過 terminal.app 將指令輸入, 而運行中的 shell 才是真正發送指令的人。