1. 程式人生 > >作業系統的shell是個什麼東西?(也談為什麼雙擊.exe後黑屏閃一下就消失)

作業系統的shell是個什麼東西?(也談為什麼雙擊.exe後黑屏閃一下就消失)

         我們經常聽到別人說shell, 那麼究竟什麼是shell呢?先複習兩個簡單的單詞吧:

core  :  核心

shell : 外殼

         在計算機中,shell是一個軟體(此處的shell跟shell sort沒有關係),沒有重量,沒有味道,shell這個軟體對應一個操作介面,供使用者與計算機進行互動,體現在:使用者在該操作介面中輸入命令,shell對該命令進行解析,然後計算機進行響應,shell把響應的一些結果放在操作介面上,讓使用者看。

         Dos中有一個command.com的軟體,這就是Dos系統的shell. (.com是Dos下的一種可執行檔案)

         Windows中有一個cmd.exe的軟體,這個就是Windows的shell. (.exe是Windows下的一種可執行檔案)

        (值得一提的是,我發現,command.com和cmd.exe有個小區別:雖然在command.com和cmd.exe的黑色對話方塊中,均不能用Ctrl + V進行復制,但是,在cmd.exe對應的對話方塊中,可以用滑鼠進行復制,而在command.com對應的對話方塊中,不能用滑鼠進行復制。)

        下面看一個最簡單的程式:

#include <iostream>
using namespace std;

int main()
{
	cout << "C++" << endl;
	
	return 0;
}
        生成的可執行檔案為:test.exe, 雙擊該檔案,可以發現黑色的對話方塊閃一下就沒有了,但要知道程式的確執行了,只是程式執行後,返回到作業系統中去了。

       那如何才能看到程式的結果呢?用shell吧,如圖所示:(我把test.exe複製到了桌面):


       之所以能看到結果,是因為,程式執行後,退回到了cmd.exe中,也就是說,cpu執行完test.exe後,繼續執行cmd.exe