[Windows] 求生手冊:命令提示字元 (Command Prompt) 環境入門教學

【分享本文】
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

    前言

    很多年輕的電腦使用者沒有經歷過 DOS 或類 Unix 系統 (GNU/Linux、FreeBSD 等) 的洗禮,很少用終端機環境。本文簡介 Command Prompt (命令提示字元) 環境,給還不會用終端機的電腦學習者一個入門指引。

    啟動命令指示字元

    現在的 Windows 系統預設使用圖形介面,只能透過終端機模擬器使用終端機環境。在 Windows 8 以前的 Windows 系統,透過左下角的 開始 (Start) ,選取 執行 (Run) 輸入 cmd 後,即可進入終端機環境。

    在 Windows 10 中,在左下角按右鍵,選 Command Prompt 即可。由於微軟希望使用者使用 PowerShell 而非原先的命令提示字己,現在已經把命令提示字元從啟動選單藏起來了。如果要用 Command Prompt,可以透過 執行 ® 輸入 cmd 指令來啟動 Command Prompt。

    用 Cmder 取代內建的終端機

    前一節所述的方式是開啟原生的命令提示字元。但原本的命令提示字元功能上比較陽春,建議讀者可用 Cmder 來代替內建的命令提示字元。Cmder 內部仍然是跑命令提示字元,但是加入自己的調校,以及新增一些命令列工具,會比 Windows 原本附帶的命令提示字元終端機來得好用得多。

    依據不同使用情境啟動不同終端機

    在類 Unix 系統上,終端機環境設置得相當完善,有許多命令列工具可用,不同的命令列工具皆共用同一個終端機環境,系統整合得相當好。相對來說,Windows 的終端機就沒整合得那麼好,執行不同的任務需要切換不同的終端機。像是 Visual C++ 有自己的終端機,MSYS2 有自己的終端機,Anaconda 也附帶了 Python 終端機。

    開始使用命令列終端環境

    第一次開啟命令提示字元環境時,建議先調整字體的大小,將字體換成等寛的 Consolas,比較不會看得那麼吃力,調整的方式是在視窗條按右鍵後選取相關選單:

    Command Prompt Property

    進入終端機環境時,會看到類似以下的提示畫面 (實際位置可能略有不同):

    C:\Users\user>
    

    Windows 系統會用 C:D:E: 等代號來代表系統上的第一、二、三個磁碟。Windows 系統預設裝在 C: 磁碟。C:\Users\user> 代表現在所在的位置在 C: 磁碟的 Users 資料夾內的 user 資料夾,這是使用者 user 預設的家目錄 (home directory) 位置。

    使用 dir 觀看目錄內的檔案和子目錄

    使用終端機的方法為在命令列上輸入指令。例如,我們要觀看某個目錄內的內容,可以用 dir 指令。輸入指令的方法是在命令列輸入 dir 三個字母後按下 ENTER 鍵,如下例:

    C:\Users\user>dir
     Volume in drive C has no label.
     Volume Serial Number is xxxx-xxxx
    
     Directory of C:\Users\Michael Chen
    
    03/18/2018  03:16 AM    <DIR>          .
    03/18/2018  03:16 AM    <DIR>          ..
    03/07/2018  08:10 AM    <DIR>          Contacts
    03/18/2018  02:24 AM    <DIR>          Desktop
    03/07/2018  08:10 AM    <DIR>          Documents
    03/18/2018  02:45 AM    <DIR>          Downloads
    03/07/2018  08:10 AM    <DIR>          Favorites
    03/27/2018  07:53 AM    <DIR>          Links
    03/07/2018  08:10 AM    <DIR>          Music
    03/27/2018  07:53 AM    <DIR>          OneDrive
    03/07/2018  08:10 AM    <DIR>          Pictures
    03/07/2018  08:10 AM    <DIR>          Saved Games
    03/07/2018  08:10 AM    <DIR>          Searches
    03/07/2018  08:10 AM    <DIR>          Videos
                   0 File(s)              0 bytes
                  14 Dir(s)  512,341,483,520 bytes free
    
    C:\Users\user>
    

    在本例中,dir 顯示出家目錄所有的內容後,將控制權返還給使用者,這時候可以繼續輸入下一個指令。

    我們可以用參數 (parameter) 改變指令的行為,如下例:

    C:\Users\user>dir /w
     Volume in drive C has no label.
     Volume Serial Number is E680-CBFA
    
     Directory of C:\Users\Michael Chen
    
    [.]           [..]          [Contacts]    [Desktop]     [Documents]   [Downloads]   [Favorites]   [Links]       [Music]       [OneDrive]    [Pictures]    [Saved Games] [Searches]    [Videos]
                   0 File(s)              0 bytes
                  14 Dir(s)  511,730,880,512 bytes free
    
    

    在這個例子中,我們在 dir 指令額外加上 /w 參數,改變顯示的方式。

    獲得命令列工具內建的使用說明

    另外一個值得注意的參數是 /?,這個參數是該指令內建的小型教學文件,如下例:

    C:\> dir /?
    Displays a list of files and subdirectories in a directory.
    
    DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
      [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
    
      [drive:][path][filename]
                  Specifies drive, directory, and/or files to list.
    
      /A          Displays files with specified attributes.
      attributes   D  Directories                R  Read-only files
                   H  Hidden files               A  Files ready for archiving
                   S  System files               I  Not content indexed files
                   L  Reparse Points             -  Prefix meaning not
      /B          Uses bare format (no heading information or summary).
      /C          Display the thousand separator in file sizes.  This is the
                  default.  Use /-C to disable display of separator.
      /D          Same as wide but files are list sorted by column.
      /L          Uses lowercase.
      /N          New long list format where filenames are on the far right.
      /O          List by files in sorted order.
      sortorder    N  By name (alphabetic)       S  By size (smallest first)
                   E  By extension (alphabetic)  D  By date/time (oldest first)
                   G  Group directories first    -  Prefix to reverse order
      /P          Pauses after each screenful of information.
      /Q          Display the owner of the file.
      /R          Display alternate data streams of the file.
      /S          Displays files in specified directory and all subdirectories.
      /T          Controls which time field displayed or used for sorting
    Press any key to continue . . .
    

    學習從命令列工具本身查閱命令列工具的參數相當重要,無論是書籍或線上教程等次級資料,不一定能代表自己的系統上該工具真正可用的參數。養成自己查指令參數的習慣,可以得到系統上最真實的初級資料。

    命令提示字元內建的說明文件軟體

    help 也是一個值得一提的工具,該工具羅列出所有命令提示字元環境的內建命令:

    C:\> help
    For more information on a specific command, type HELP command-name
    ASSOC          Displays or modifies file extension associations.
    ATTRIB         Displays or changes file attributes.
    BREAK          Sets or clears extended CTRL+C checking.
    BCDEDIT        Sets properties in boot database to control boot loading.
    CACLS          Displays or modifies access control lists (ACLs) of files.
    CALL           Calls one batch program from another.
    CD             Displays the name of or changes the current directory.
    CHCP           Displays or sets the active code page number.
    CHDIR          Displays the name of or changes the current directory.
    CHKDSK         Checks a disk and displays a status report.
    CHKNTFS        Displays or modifies the checking of disk at boot time.
    CLS            Clears the screen.
    [移除一些內容]
    

    help 搭配某個指令名稱時,等同於該指令的 /? 參數:

    C:\> help cls
    Clears the screen.
    
    CLS
    

    透過以上教學,讀者應該有足夠的能力可以自我學習。

    雖然 help 附帶的文件不是很容易閱讀,但該命令內的說明是系統的第一手資料,最好還是試著習慣這些文件。

    命令提示字元內常見指令

    我們這裡列出命令提示字元中常見的內建指令:

    • exit:離開終端機
    • dir:列出資料夾的內容
    • cd:切換資料夾
    • mdmkdir:建立資料夾
    • move:搬移或重新命名檔案
    • renrename:重新命名檔案
    • copy:拷貝檔案
    • xcopy:拷貝檔案或整個資料夾
    • del:移除檔案
    • rdrmdir:移除資料夾

    命令提示字元內建的指令很少,讀者可自行下載其他第三方工具以擴展命令提示字元的功能,像是本系列文章先前提到的 GnuWin32UnxUtilsMSYS2 等。本文先前提到的 Cmder 內也附帶一些從類 Unix 系統移植來的命令列工具。

    筆者不會很刻意去學命令提示字元的內建指令,而會優先使用等效的類 Unix 系統指令的移植品來替代。因為使用這些替代指令,可以把類 Unix 系統的學習經驗帶過來。筆者只有在要寫給外人使用的命令稿時,才會刻意使用命令提示字元的內建指令。

    繼續深入學習

    微軟提供一份官方版本的指令參考手冊,適用於 Windows 8.1 之後的版本,會比內建的 help 指令提供更多的資訊,有線上版和 PDF 版,有需要的讀者可自行前往該網站。

    【分享本文】
    Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email
    【追蹤新文章】
    Facebook Twitter Plurk
    標籤: CMD, DOS, WINDOWS