作業系統的shell是個什麼東西?(也談為什麼雙擊.exe後黑屏閃一下就消失)
阿新 • • 發佈:2019-01-07
我們經常聽到別人說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對應的對話方塊中,不能用滑鼠進行復制。)
下面看一個最簡單的程式:
生成的可執行檔案為:test.exe, 雙擊該檔案,可以發現黑色的對話方塊閃一下就沒有了,但要知道程式的確執行了,只是程式執行後,返回到作業系統中去了。#include <iostream> using namespace std; int main() { cout << "C++" << endl; return 0; }
那如何才能看到程式的結果呢?用shell吧,如圖所示:(我把test.exe複製到了桌面):
之所以能看到結果,是因為,程式執行後,退回到了cmd.exe中,也就是說,cpu執行完test.exe後,繼續執行cmd.exe