終端 Shell tty 和控制台(console)有什麼區別?

時間 2021-05-05 21:57:19

1樓:

看了這麼多,貼個自認為解釋到位的鏈結,以饗各位。

終端與shell的區別 - 友人C

裡面寫到:

終端的工作其實是很少的哦,簡單來說3點:GUI軟體介面、接收輸入、顯示輸出

而shell的核心工作就是操控計算機核心

2樓:嗯嘿哈

先說簡要定義,看不懂的可以直接跳到分割線處,有更通俗的解釋。

tty:它是終端的統稱,因為最早的外設終端是電傳打字機(teletype,簡稱為tty)。

終端(terminal):單純的人機互動「硬體」或者「軟體(也就是終端模擬器)」。

控制台(console):乙個等級更高的終端,擁有特殊許可權,可以顯示普通終端不能顯示的系統訊息。

外殼(shell):乙個解釋kernel(核心)命令的軟體程式。

我再提乙個。

核心(kernel):電腦系統最基礎的「控制器」(軟體)。

如果看到這裡感覺聽不懂也沒關係,我再用通俗易懂的方式給你解釋。

從前有個國王(核心-kernel),他統治著整個國家(電腦的作業系統)。

後來有一天,乙個外國商人(人-電腦的使用者or使用者)想來這個國家做交易。

但是當中存在個問題,就是外國商人不會這個國家的語言(計算機語言或者命令),他們都只會說自己的本國話。

所以國王叫了自己的翻譯(外殼-shell)來解決這個問題。

不過又考慮到這個商人是外中國人,肯定不能直接讓他進自己國家來和自己當面交流啊,更何況自己可是國王,一般人都是沒權利見面的。

於是國王決定讓外國商人在自己國家的城外呆著,不能進來,同時給他安排了乙個跑腿代話的傢伙(終端-terminal)。

那外國商人就疑惑了,「那為什麼我就不能直接和翻譯說話呢?要那個跑腿的豈不是多此一舉?」

國王回答:「因為你不配。」(開玩笑,實際上當你開啟終端模擬器,它就會自動呼叫shell,但是為了大家理解兩者的概念和區別,我這裡就不把這兩個東西擬變乙個人了,反而專門把他們分開成兩個角色。

)跑腿的把這句話傳給翻譯。(terminal將接收到的命令資料輸送給shell)

翻譯將這句英語翻譯成國王聽的懂的中文。(shell將接收到的命令進行解釋)

翻譯將翻譯好的中文轉告給國王:「我要乙個蘋果。」(shell將解釋好的命令輸送給kernel)

國王聽到後做出了回應:「可以,給你乙個蘋果,把乙個貝殼放在地上。」(kernel接受命令然後開始處理,並將命令結果返還給翻譯)

然後翻譯把國王回應的中文翻譯成英文並轉告給跑腿的。(shell將接收到的命令進行解釋,然後輸送給terminal)

3樓:

摘抄:在UNIX的術語中,最簡單的回答是:

終端(terminal)=tty=文字的輸入輸出環境控制台(console)=物理終端

shell=命令列直譯器

4樓:maowei117

個人理解:

終端(Terminal)是對字元輸入輸出裝置的抽象,在Linux中terminal是一種特殊的檔案,在/dev目錄下。通常情況下,鍵盤輸入會寫這個檔案,而對應的終端驅動程式會執行諸如回顯的工作(可以通過stty改變驅動程式的預設行為),如果沒有了terminal,那麼就無法響應鍵盤的輸入。

shell的本質是乙個軟體,這個軟體中可以通過fork + exec + wait去載入別的可執行程式並執行。如果沒有了shell,那麼我們輸入'ls'的時候,只會回顯'ls'字元,並不會執行ls這個程式,所以shell的工作就是解析我們的輸入字元,並執行對應的指令。

Terminal和shell之間有什麼關係呢?當我們去執行shell軟體的時候,shell的stdin、stdout和stderr會開啟並指向乙個特定的terminal檔案,這樣導致我們通過鍵盤的輸入實際上是寫到terminal檔案裡面,但是shell也可以通過他的stdin從這個terminal檔案中讀到。

linux下的終端與控制台還有偽終端,啞終端分別是什麼意思?求科普?

任皓 tty teletypewriter 電傳機,這邊按乙個按鍵,主機端接受到乙個資料,主機端傳出乙個資料,電傳機列印乙個字元。這個是一切終端 terminal 的祖先,輸入字元和列印字元是一體的,主機裡面執行的叫程式。我輸入乙個字元,主機上接受到乙個字元。那我想換行就麻煩了,因為這就是控制字元了...

c 如何讓控制台的影象,自主動起來?

Exermon 儷菌俺 雙緩衝,可以上網搜一下怎麼實現,其實挺簡單的,就是預先存乙個char陣列,然後呼叫Windows.h的api不斷讓這些char存入緩衝區,然後兩個緩衝區不斷切換,就是雙緩衝 大概理解是這樣子,好久沒看了忘了 不過帶顏色的沒做過,不太清楚行不行 可以看下我的這篇回答 夾帶私貨h...

在C 控制台應用程式中,可以改變輸出文字的顏色和字型大小嗎 如何改變?

葉星辰 顏色 windows 需要include SetConsoleTextAttribute GetStdHandle STD OUTPUT HANDLE color 其中color是顏色,分為前景色和背景色 前景色 背景色 16就是color,還可以隨便加256 對應表 0 黑色 1 藍色 2...