Windows 指令列工具

由於開發人員大部分的時間都在 OSX 和 Linux 上寫程式,我們想瞭解 Windows 新型指令列設定的可能是什麼樣子。

StackOverflow 開發人員問卷調查顯示,使用 Windows 的開發人員數量超過任何其他作業系統,因此我們想瞭解這項工具是否與我們在 *nix 土地上使用的工具一致。

我們花了些時間評估 Windows CLI 工具的環境,我們決定採用一套工具,讓作業流程的效率提升了 95%。

最終,我們採行了以下組合:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • 巧克力
  • 巴布 (選填)

請參閱下文,瞭解這些不同機械賦予您的更多好處。

PowerShell (殼層)

  • 與 cmd.exe 相比,真正更接近真正的「殼層」,其中提供強大的指令碼編寫環境,可自動執行任務。您可以將其與 Bashzsh 進行比較,
  • 自動完成目錄和檔案名稱
  • 自動完成應用程式名稱
  • 具有整合式別名和指令 (稱為 cmdlet - 例如 Select-String 類似 grepInvoke-Elevated 類似 sudoSort-Objectsort 一樣,Get-Process 會列出所有執行中的程序)。如果是從其他殼層移至 PS,Set-Alias 可讓您將自己習慣的別名對應至 Windows 同等項目。例如:使用 server 別名時,Set-Alias server python -m http.server 8000 會啟動 Python 伺服器。
  • 您可以在 PowerShell 設定檔中保留別名
  • 支援管道,例如 Unix。與 Unix 不同的是,這項工具會連接物件,而非文字串流。這需要用起來,但在想離開資源時可以避免重複。
  • 支援模組。PSGet 是 PowerShell 的套件管理員,可讓您輕鬆擴充其工具。
  • 您可以選擇使用 Posh-Git,這是用於 Git 的 PowerShell 指令碼,以便取得內容相關 Tab 鍵自動完成。

如果您對於益智問答有興趣,請參閱本文內容,瞭解首席架構師為何 MS 建立了 PowerShell。

PSReadLine (控制台編輯輔助程式)

  • 大幅改善控制台編輯體驗
  • 每次開始輸入指令時都會醒目顯示語法。以紅色的「>」字元清楚表示語法錯誤。
  • 可高度自訂的按鍵繫結
  • 混搭風格的自動完成建議
  • Bash/zsh 互動式記錄搜尋 (Ctrl + R)。強大的指令記錄週遊功能。使用方向鍵輕鬆查看先前的多行指令,而非只是指令的最後一行。
  • 支援複製/貼上/裁切 (Ctrl+C/X/V 應可正常運作)
  • 適合復原/重做
  • 系統會自動儲存記錄

或者,您也可以使用 Clink,其中包含一組類似功能,但並非只針對 PowerShell 編寫。

ConEmu (控制台主機)

  • 可執行所選殼層的進階主控台模擬器。
  • 支援在不同分頁中開啟多個終端機。讓不同的使用者都能輕鬆啟動終端機。
  • 極度自訂 - 包括捷徑、文字選取和狀態列顏色等。
  • 支援分割畫面檢視模式
  • 可在分頁中執行簡易 GUI 應用程式
  • 支援 Windows 7+ 跳轉清單
  • 支援流暢的視窗大小調整功能
  • Windows 字型反鋸齒
  • 您可以視需要完整自訂起始分頁,將分頁放在特定目錄中
  • 智慧複製/貼上功能

有些人還是喜歡使用 Console2,Scott Hanselman 也撰寫了一篇相關的網誌文章

Cmd 鍵

您還可以使用 Cmder 這款主控台模擬套件,結合 ConEmu、Clink 和 msysgit 的功用,可為您提供 Git 輔助工具。基本上,Cmder 透過 MoEmu 的單色色彩配置,為 ConEmu 帶來更精緻的體驗。

Cmder 還具備其他一些小優點,例如與 GUI 應用程式整合,例如 Sublime Text

Chocolatey (套件管理員)

  • 基本上就是在 Windows 上自製,讓您能輕鬆導入喜愛的 Windows 應用程式。目前市面上有大約 3,000 種套件,可以直接使用 Chocolatey 更新。
  • 來自 Nuget 的擴散器。NuGet 適用於開發程式庫。Chocolatey 是二進位機器套件管理工具,採用 NuGet 基礎架構建構而成。
  • 提供有效率的無聲版本

您可能也想瞭解 Microsoft 的套件管理員..manager OneGet,您可以在 Windows 10 中搭配使用 Chocolatey。

Babun (Cygwin 預先設定)

  • Cygwin (類似 Linux 的 Windows 環境) 減去一些過去已知的問題。使用 Babun 安裝程式可以大幅加快整體設定作業。如果您特別熟悉 Unix,而且不想學習 PowerShell,那麼您可以考慮使用 cygwin/Babun。
  • 包含與 apt-get 類似的套件管理員,名稱是 pact (與 brew 有點類似)。這筆費用十分龐大,因為您目前在新增套件時,必須重新執行 Cygwin 安裝程式,而不是單純使用精簡版本。
  • 預先安裝及預先設定 Vim
  • 整合 oh-my-zsh 的支援
  • 自動更新

延伸閱讀