shell,bash,zsh,console,terminal究竟是什麼意思,它們之間又是什麼關係?

原文連接html

終端(terminal,或者叫物理終端):
是一種設備,不是一個程序,通常說的就是能提供命令行用戶界面的設備,典型的是屏幕和鍵盤,或其餘的一些物理終端。
虛擬終端:
屏幕和鍵盤只是一個終端,可能不夠用,又不想增長設備投入,就產生了虛擬終端。
gnome-terminal,urxvt,mlterm,xterm等等:
是一個程序,職責是模擬終端設備,和虛擬終端的區別表面上在於它以 GUI 形式的窗口出現,內部則是程序結構和系統控制結構有所不一樣,但本質上差很少。
控制檯(console):
顯示系統消息的終端就叫控制檯,Linux 默認全部虛擬終端都是控制檯,都能顯示系統消息。
但有時專指CLI下的模擬終端設備的一個程序,和gnome-terminal,urxvt,mlterm,xterm等相同,只是CLI和GUI界面的區別。通常console有6個,tty1-6,CTRL+ALT+fn切換。還沒據說過怎麼換console

shell是一個抽象概念,shell的一切操做都在計算機內部,負責處理人機交互,執行腳本等,是操做系統能正常運行的重要組成部分
bash,ash,zsh,tcsh等是shell這個抽象概念的一種具體的實現,都是一個程序,都能生成一個進程對象。
若是想換shell的程序,能夠修改/etc/passwd,把裏面的/bin/bash換成你想要的shell,或者用chsh命令來切換

shell與終端的關係:shell把一些信息適當的輸送到終端設備,同時還接收來自終端設備的輸入。通常每一個shell進程都會有一個終端關聯,也能夠沒有。shell

berkeleysong
相關文章
相關標籤/搜索