終端機、控制台、Shell 和命令列之間有什麼區別?
答案1
簡短回答:
- 終端= 文字輸入/輸出環境
- 安慰= 實體終端
- 殼= 命令列解釋器
長答案:
控制台和終端密切相關。最初,它們指的是一種可以與電腦互動的設備:在 UNIX 的早期,這意味著電傳打字機- 類似打字機的設備,有時稱為電傳打字機,或簡稱為「tty」。 「終端」這個名字來自電子的角度,「控制台」這個名字來自家具的角度。在 Unix 歷史的早期,電子鍵盤和顯示器就成為終端的標準配置。
終端
在 Unix 術語中,終端是一種特殊的裝置檔案它實作了許多附加命令(讀寫控制)超越讀寫。一些終端由核心代表硬體設備提供,例如來自鍵盤的輸入和進入文字模式螢幕的輸出,或透過串行線路傳輸的輸入和輸出。其他終端,有時稱為偽終端或偽 tty,由稱為終端模擬器。某些類型的終端模擬器包括:
- GUI應用程式運行在X視窗系統:Xterm、Gnome 終端、Konsole、終結者等。
- 螢幕和多路復用器,它在程式和另一個終端之間提供了一層隔離
- SSH,它將一台機器上的終端與另一台機器上的程式連接起來
- 預計,用於編寫終端互動腳本
這個單字終端也可以具有更傳統的含義,即人們透過其與電腦互動的設備,通常使用鍵盤和顯示器。例如,X 終端機是一種瘦客戶端,一種特殊用途的計算機,其唯一目的是驅動鍵盤、顯示器、滑鼠以及偶爾的其他人類交互外圍設備,而實際應用程式在另一台更強大的計算機上運行。
安慰
A安慰通常是物理意義上的終端,根據某種定義,它是直接連接到機器的主終端。控制台在作業系統中顯示為(核心實現的)終端。在某些系統上,例如 Linux 和 FreeBSD,控制台顯示為多個終端機 (tty)(在這些終端之間切換的特殊組合鍵);只是為了混淆問題,給每個特定終端的名稱可以是「控制台」、「虛擬控制台」、「虛擬終端」和其他變體。
也可以看看為什麼虛擬終端是「虛擬」的,「真實」終端是什麼/為什麼/在哪裡?。
命令列[介面]
A命令列是使用者鍵入命令(表示為字元序列 - 通常是命令名稱後面跟著一些參數)並按下按鍵Return來執行該命令的介面。
殼
A殼是使用者登入時看到的主要介面,其主要目的是啟動其他程式。 (我不知道原來的比喻是shell是使用者的家環境,還是shell是其他程式運作的地方。)
在 Unix 圈裡,殼專門指的是命令列外殼,以輸入要啟動的應用程式的名稱為中心,然後輸入應用程式應操作的檔案或其他物件的名稱,然後按 Enter 鍵。其他類型的環境(最近值得注意的 Gnome Shell 除外)通常不使用“shell”一詞;例如,視窗系統涉及“視窗管理器“ 和 ”桌面環境”,而不是“殼”。
有許多不同的 Unix shell。 Ubuntu 的預設 shell 是重擊(與大多數其他 Linux 發行版一樣)。流行的替代品包括桀騁(強調功能和可自訂性)和魚(強調簡單性)。
命令列 shell 包括用於組合命令的流控制結構。除了在互動式提示符號下鍵入命令之外,使用者還可以編寫腳本。最常見的 shell 具有基於以下內容的通用語法:Bourne_shell。當討論“外殼程式設計”,shell 幾乎總是暗示是 Bourne 風格的 shell。一些經常用於編寫腳本但缺乏高級互動功能的 shell 包括科恩外殼 (ksh)還有很多灰變種。幾乎所有類 Unix 系統都安裝了 Bourne 風格的 shell /bin/sh
,通常是 ash、ksh 或 bash。在 Ubuntu 上,/bin/sh
是短跑,一個 ash 變體(選擇它是因為它比 bash 更快並且使用更少的記憶體)。
在unix系統管理中,使用者的殼是登入時呼叫的程式。受限外殼或一些其他特定命令(例如,僅用於文件傳輸帳戶)。
終端機和shell之間的分工並不完全明顯。以下是他們的主要任務。
- 輸入:終端將按鍵轉換為控制序列(例如Left→
\e[D
)。 shell 將控制序列轉換為指令(例如\e[D
→backward-char
)。 - 行編輯、輸入歷史記錄和補全由 shell 提供。
- 終端可以提供自己的行版本、歷史記錄和完成,並且僅在準備好執行時才將行傳送到 shell。以這種方式操作的唯一常見終端是
M-x shell
Emacs。
- 終端可以提供自己的行版本、歷史記錄和完成,並且僅在準備好執行時才將行傳送到 shell。以這種方式操作的唯一常見終端是
- 輸出:shell發出諸如「顯示
foo
」、「將前景色切換為綠色」、「將遊標移至下一行」等指令。 - 提示符號純粹是一個 shell 概念。
- shell 永遠看不到它運行的命令的輸出(除非重定向)。輸出歷史記錄(回滾)純粹是一個終端概念。
- 應用程式間複製貼上由終端提供(通常使用滑鼠或按鍵序列,例如Ctrl+ Shift+V或Shift+ Insert)。 shell 也可能有自己的內部複製貼上機制(例如Meta+W和Ctrl+ Y)。
- 作業控制(在背景啟動程式並管理它們)主要由 shell 執行。但是,終端負責處理組合鍵,例如使用Ctrl+C來終止前台作業,使用Ctrl+Z來暫停前台作業。
回收自Unix 和 Linux
答案2
視覺表現。
終端
您可以坐下來像老闆一樣工作。
安慰
一些可以做很多事情的硬體。
控制台的另一個範例是視訊遊戲控制台,例如超級任天堂 [您可以在其中玩 Actraiser]
殼
基本上是一個用於運行命令的應用程式。
命令列[介面]
基本上任何你輸入命令的東西。
答案3
來自Linux 資訊項目:
終端:從技術上講,終端機視窗也稱為終端機模擬器,是圖形使用者介面 (GUI) 中模擬控制台的純文字視窗。
用我們的話來說,GUI 應用程序,我們可以從中存取用戶的控制台。
安慰:包含電腦控制項的儀表板
殼:shell 是一個為 Linux 和其他類 Unix 作業系統提供傳統的純文字使用者介面的程式
命令列:命令列是電腦顯示器(通常是 CRT 或 LCD 面板)上全文本顯示模式下命令提示字元右側的空間,使用者可以在其中輸入命令和數據
答案4
這殼是一個程式流程命令和回報輸出,就像 Linux 中的 Bash。
A終端是一個運行的程式殼。過去它是一個實體設備(在終端機成為帶有鍵盤的顯示器之前,它們是電傳打字機)然後它的概念被轉移到軟體中,例如 GNOME Terminal。
因此,當我打開 GNOME 終端機時,會出現一個黑色窗口,運行殼出現,以便我可以運行我的命令。
A安慰是一個特殊類型的終端。這也是一個實體設備。例如在 Linux 中我們有虛擬控制台Ctrl,我們可以透過++ AlttoF1的組合來存取它F7。
安慰有時指鍵盤和顯示器身體上的連接到這台電腦。