十年運維系列之基礎篇 - Linux
作者:曾林
聯系:1494445739@qq.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的話就顯示為#),表示等待輸入命令。
