Try   HackMD

為何要學習命令列模式

難度:☆未入門

2017台北市文山社大Python課到最後一節時,竟然還有同學問「為甚麼常叫出那個黑色框框來跑Python?」,這表示有些同學對程式執行的基本概念非常陌生。在這裡我稍為說明一下:

我的習慣是文章和程式源碼post上後,會不定期檢查修改,務求文字精練準確,內容完備。本文亦不例外,內容將不斷更新。

就如同老師的解釋,那個黑色框框稱為命令列(Command line)視窗,我自己有時會叫作DOS window(其實已和DOS無關)。叫出這個視窗,除了老師教的打cmd之外,也可以從開始 -> 所有程式 -> 附屬應用程式 -> 「命令列提示字元」開啟。

為甚麼要叫出這個命令列視窗才能跑Python?答案是命令列的模式本來就是Windows的核心,不只是Python,事實上所有程式內部都是在這個模式上運行。也不只Windows,Linux基本上也是在命令列上執行所有功能和程式。

那又為甚麼平常我們都是在Windows的「桌面」或者從「開始」那裡用滑鼠「點選」圖示執行程式,很少在命令列上執行呢?這是因為Windows這個作業系統用了種種GUI(這老師有講噢,就是Graphical User Interfcae, 使用者圖形介面)的技術,將原來要在命令列上執行的程式,「包裝」成現在大家看到漂漂亮亮的樣子。這些GUI物件只是Windows作業系統的「殼」,是給使用者甜頭的「糖衣」,當然那不是毒藥。撕開糖衣,內部運作還是命令列。例如要跑Excel,一般我們都是點選桌面上的圖示,或點選「開始」的地方,其實也可以開一個命令列視窗,cd到Excel安裝的目錄,直接輸入'Excel'執行。

那何以Python沒有圖示可以點選,或者老師何以不採用GUI的模式教授Python,而偏偏要用命令列視窗的最原始方式呢?原因是:

  1. Python的「直譯器(interpreter)」或稱「編譯器(compiler)」即Python.exe本來就是用命令列模式執行。compilerS一般都是命令列模式(在IDE上可以直接run,那也是將命令列模式的compiler包裝成GUI而已)。還有用來安裝openpyxl, wxpython, cx_Freeze等library的 pip.exe程式(此工具在安裝Python時順帶安裝),也是命令列版本。當然pip.exe可以包成GUI版,那不難,同學有興趣可以試寫一下。

  2. 一般剛學習一種程式語言時,最好是focus在語言本身,而不要管那些GUI甚麼的,不然學習起來會失焦。命令列模式完全不涉及任何GUI,是比較理想的學習方法。事實上不只是Python,就算學習Java, C#等其他主流語言,如果老師循序漸進教學,大概都會從命令列模式教起吧。

所以,大家不要被GUI寵壞了,電腦內部的世界其實還是Command line喲。

tags: command line 命令列