(001)Linux下的終端和shell概念


十年運維系列之基礎篇 - Linux

作者:曾林 

聯系:1494445739@qq.com

網站:www.jplatformx.com

版權:文章未經同意請勿轉載


一、引言

  本小節中簡單講解一下終端的概念,終端這個概念也是普遍迷惑Linux新手們的一個不太容易理解又模糊的概念。

 

二、偽終端

  圖形界面下的命令行窗口,叫做偽終端。但是這個偽終端是跟那個脫離圖形界面的、黑漆漆的、按Alt+Ctrl+F1~F6組合鍵出來的那個終端而說的。偽終端的工作方式是在桌面上申請一個窗口,然后在里面模擬顯示出一個黑漆漆的界面。比如Gnome終端、Konsole終端、xterm終端、urxvt終端等等。

 

三、虛擬終端

  虛擬終端就是那些沒有圖形界面,像DOS那樣的命令行。虛擬終端就是把一台全功能的電腦(比如咱們的PC)通過軟件模擬成另外一台計算機的終端設備。

 

四、終端 

  其實終端最初是一種輸入/輸出硬件設備,有鍵盤顯示器和連接主機的接口電纜,是過去大中小型計算機上的概念。咱們用的PC(也就是微型機)是沒有終端這個概念的。

 

  以上介紹了終端、虛擬終端、偽終端。有些人可能會有所顧忌,覺得在這些終端里面執行的Linux命令不是真正的Linux命令。這里其實需要澄清一個概念,那就是終端本身是不會解析命令的。它只是一個界面而已,是負責人機交互的一個接口而已。真正處理命令的並不是這些終端,真正處理命令行的是shell。終端只是負責提供一個輸入命令的交互界面而已,在里面運行的命令並不歸終端界面去解析,而是找到專門的命令行程序,這種程序我們一般將其稱之為shell。

 

五、shell

  Linux本質上是一個內核,這個內核可以用來做很多的事情,整個電腦都歸內核來管理。顯卡、聲卡、內存、硬盤,以及硬盤上的各種程序也歸內核調度。那么,內核讓硬件、軟件去做什么事情呢?內核本身是不清楚的,它需要接受指令,那么下指令的是誰呢?就是人類用戶。

  可以人類用戶要做什么操作,靠嘴說是無濟於事的。因為內核根本就不會懂。因此就需要一個軟件來作為人機之間的橋梁,這個軟件可以將人類的操作意圖轉述給內核,那么這個軟件就是shell。它就像一個罩在操作系統和人之間的一個外殼一樣,在人和操作系統之間傳達着信息。

  shell廣義上可以指操作系統和用戶接口的界面,圖形界面也是一種shell。因為圖形界面的本質也是實現“把人類用戶的操作意圖轉述個內核”。

  

六、shell和終端的關系

  shell是一個程序,一個二進制可運行可執行的程序,一般情況下,我們並不會感覺它的存在,因為我們很少主動去調用它,除非我們人為去執行bash程序。那么shell跟終端有什么關系呢?

  shell和終端的關系就是終端程序會自動調用shell程序。體現在每次打開終端(偽終端、虛擬終端)的時候,終端程序都會去調用shell。終端調用終端程序成功的情況下,終端就會顯示如下的信息:

[user@host ~]$

  其中user指示的就是登錄人是誰,host指示登錄到的主機,~表示當前操作目錄,$表示的是命令提示符(如果登陸人是root的話就顯示為#),表示等待輸入命令。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM