題 shell,console和terminal有什麼區別?


我對術語感到困惑。 shell,console和terminal有什麼區別?


163
2018-05-24 13:22


起源


那怎麼樣? prompt 乃至 command line? - n611x007
從Unix和Linux看一下這個問題: unix.stackexchange.com/questions/4126/... - Flimm
我的妻子說“黑屏” - Kenji Noguchi


答案:


在Linux世界中,從鍵盤上的用戶的角度來看,它們看起來都是一樣的。不同之處在於它們如何相互作用。

貝殼 是實際處理命令並返回輸出的程序。大多數shell還管理前台和後台進程,命令歷史記錄和命令行編輯。這些功能(以及更多功能)是標準配置 bash,現代linux系統中最常見的shell。

一個 終奌站 指的是運行shell的包裝器程序。幾十年前,這是一個物理設備,只包括一個顯示器和鍵盤。隨著unix / linux系統添加了更好的多處理和窗口系統,這個終端概念被抽象為軟件。現在你有像這樣的程序 Gnome終端 它將在Gnome窗口環境中啟動一個窗口,該窗口將運行一個窗口 貝殼 你可以輸入命令。

安慰 是一種特殊的 終奌站。從歷史上看,控制台是單個鍵盤和監視器,插入計算機上的專用串行控制台端口,用於與操作系統進行低級別的直接通信。現代Linux系統提供 虛擬控制台。這些是通過組合鍵訪問的(例如 Alt鍵+F1 要么 按Ctrl+Alt鍵+F1;該 功能鍵 數字不同的控制台)在linux操作系統的低級別處理 - 這意味著沒有特殊的服務需要安裝和配置才能運行。使用a也可以與控制台進行交互 貝殼 程序。


147
2018-05-24 13:37



在終端用鍵盤監視器之前,它們是電傳打字機 - 一種電動打字機。 en.wikipedia.org/wiki/Teleprinter - Kevin Panko
安慰 有時意味著“鍵盤和顯示器物理連接到這台計算機。”例如,“我從控制台登錄,因為服務器沒有響應網絡。” - Kevin Panko
@Doug Harris:你能添加一些你正在談論的硬件圖片嗎? - claws
當我在20世紀80年代末上大學時,我在DEC VT220終端上做了很多工作 - en.wikipedia.org/wiki/VT220  - 這是我描述的物理設備的一個很好的例子。 - Doug Harris
因此,如果 終端 和 遊戲機 在現代,每個都是用軟件實現的 - 兩者(現在)之間有什麼區別? - Gavin Hope


shell是一個提示提示並等待您鍵入命令的程序。它執行它們然後打印另一個提示。所以,像Windows中的CMD或Unix中的Bash。它可以在終端或控制台上運行。

控制台最初是一個物理的東西,一個控制面板。在計算術語中,它通常表示在GUI啟動之前或完成之後看到的顯示;您有時可以切換到顯示它而不是GUI。它是操作系統打印錯誤消息的地方。在多用戶計算機上,它是實際連接到計算機的顯示器。只是為了讓你感到困惑,在Windows上它也意味著一個帶有命令shell的窗口,即一個終端。

終端也最初是硬件,用於與計算機通信。現在它通常指的是一個帶有命令行(shell)的窗口,它可能出現在GUI窗口中或代替GUI。


10
2018-05-24 13:39





想想另一個背景,那就是發展。
即使您對開發沒有非常深入的了解,您也可能知道基礎知識,即:編輯程序,將其提交給編譯器或構建編譯應用程序的解釋器。
控制台就像程序的編輯器;它可以幫助你 寫作 但它並沒有真正執行任何東西:當你完成後,你將它發送給編譯器。

你可以使用你喜歡的編輯器,vim,gedit,emacs,notepad ++,Netbeans,eclise等等,但最後它們只是不同的工具:如果你編寫相同的程序,輸出將是相同的。
在這個比喻中,shell是編譯器。輸入到終端的命令被發送到解釋它們的shell並立即執行它們。
因此,雖然終端只是shell的前端,但shell包含實際的語言,就像編譯器一樣。

顯然,終端並不完全是文本編輯器,主要是因為它不生成文件,而是將文本發送到底層shell並從中檢索輸出。

並且shell不是編譯器,實際上它會解釋您的命令並立即執行它而不是構建可執行文件。

即使是這個巨大的差異,我發現這個比喻有助於理解這個想法。


1
2017-09-21 20:13





確實沒有太大區別。當“shell”是程序時,“終端”是該程序的前端包裝器,“控制台”是與計算機(鍵盤/屏幕)的物理連接。

根據您運行的操作系統有所不同。 “標準”外殼是 BASH,通常適用於所有Linux / Unix版本。 Windows使用完全不同的shell。


0
2018-05-24 13:37





終端是基於文本的界面(可能是shell)

控制台和shell之間的區別是我還沒有掌握的,但我可以告訴你終端如何與shell不同。

終奌站 是(根據維基百科)“用於文本輸入和顯示的串行計算機接口。信息表示為預先選擇的形成字符的數組”。

您可以使用終端與shell進行交互,但您也可以使用它與a進行交互 基於文本的GUI,有時稱為 終端用戶界面。例如:

  • VIM 具有GUI元素,包括行號和命名選項卡
  • 納米 具有GUI元素,包括命令的幫助菜單
  • TMUX 具有GUI元素,包括狀態欄和窗格之間的分隔線
  • 小型機 具有GUI元素,包括菜單和狀態欄

在每種情況下,GUI元素都是用文本而不是像素“繪製”的。


0
2018-01-27 21:26



我不確定它的定義是否僅基於文本。在某種程度上,一些GUI可以被認為是終端imo。 - jiggunjer


適合初學者

有關更詳細的說明: https://askubuntu.com/a/506628/130518

  • terminal =文本輸入/輸出環境
  • console =物理終端
  • shell =命令行解釋器

我將在下文中描述最常見的用例。

一個終端 使用 如地獄。 shell可以在沒有終端的情況下運行。

與日常用品相關:

  • 終端 - >家中的電視屏幕
  • Shell - >在電視屏幕上運行的程序

另一種觀察方式:你的耳朵(輸入)和嘴巴(輸出)是聲音的終端。你的大腦是使用特定shell(處理)的那些聲音的解釋器。

終端適合我們人類,所以我們可以讀取和寫入shell。 殼可以在不需要人工交互的後台處理中運行,例如cron job,因此不需要終端。

存在的終端的例子很少:

  • 命令提示符
  • guake
  • 侏儒末端
  • 終結者

存在少量殼的例子:

  • 巴什
  • sh(Bourne shell)
  • PowerShell [windows]
  • zsh(Z shell)

我只寫了這兩個通常如何工作,還有其他工作方式,但這是為了更高級的用戶。


0
2018-03-06 10:29