//Build/ 2016 - Windows 10 上執行 Bash 腳本指令以及 Linux Ubuntu 版本使用者模式執行檔
詳細課程可以欣賞以下 Build 影片
如同大多數使用 Windows 10 的網站開發者,時常在瀏覽網頁時被一些新奇有趣的開源命令列工具所吸引而停下腳步,大多數的時候會見到下面的圖示:
根據過往,對於一般 Windows 使用者,”$” 的圖示象徵著這些工具與他們無關。
我必須要找到諸如
或者
的圖示。
理所當然的,不可能老是找到這樣可以操作的圖示。但在微軟的 Build 開發者大會上,Kevin Gallo 在 keynotes 的時候宣布,開發者將可以 “在 Windows 上執行 Ubuntu 的 Bash 命令列” 。這將是其中一項隨著 Windows 10 “週年“ 更新檔一同發佈的新開發者功能(即將上市)。這項功能可以讓你在 Windows 作業系統上執行原生的 Linux 使用者模式命令列及指令工具。
先在 Windows 設定下開啟「開發者模式」並加入此項功能,執行你的 Bash 便能夠取得由 Canonical 開發商在 Windows Store 所提供的 “Ubuntu On Windows”,如下圖所示:
這並不是將 Bash 或 Ubuntu 執行在虛擬機上,而是真的直接由 Windows 所執行的原生 Bash Linux 執行檔。Microsoft 將實體的 Ubuntu 映像檔掛在 Windows 作業系統之上,並且附上大多數的 Linux 命令列工具諸如 awk, sed, grep, vi ...等。執行起來十分的輕量快速。這些工具的執行檔需要由開發者使用 “apt-get” 來下載,一如既往在 Linux 上的操作方式一樣,因為它就是原生的 Linux。開發者可以藉由 “apt-get” 來下載其他的工具諸如 Ruby, Redis, emacs ...等,這對一個慣於使用大量類型的工具的開發者來說,著實是一項非常驚艷的功能。
這項功能能夠在 64 位元的電腦上不依靠虛擬機來執行,對開發者而言,在哪些情境下 Windows 上的 Bash 能夠融入你的開發環境呢?
如果你想在 Windows 上執行 Bash,過往的你有幾個選擇:
- Cygwin - 為了 Win32 而編譯且能夠與原生 Windows 作業系統底層完整整合的GNU 命令列,但並不算是 Linux 的一種。
- HyperV and Ubuntu - 執行一個完整的 Linux 虛擬機(需求多少記憶體與儲存空間),然後使用遠端的方法連線存取(RDP, VNC, ssh)。
- Docker 也是一個可以執行 Linux container 的方案,在 HyperV 的虛擬機上執行
在 Windows 上可以執行 Bash 這個方案可以說是對症下藥,他的使用情境就像一般在操作 Linux 一般,因為它就是真的在執行一個 Linux 執行檔,只要敲擊 Windows 鍵並鍵入 Bash 即可。
在你安裝完以後,執行 “apt-get update” 來下載一些開發者套件。我需要 Redis 跟 Emacs,便執行 ”apt-get install emacs23” 來獲取 Emacs。要也解到的是這個版本的 Emacs 就等同於我實際上從 Ubuntu 資源上獲取的 Emacs。
理所當然的,我不知道怎麼關閉 Emacs,所以我直接關掉視窗
要注意到的是這項功能並非聚焦在 Linux 伺服器或是 Linux 負載,而是聚焦在已開發者的角度出發,協助移除開發者在他們的工作流程上需要用到 Linux 相關套件或工具時,所遇到的困境。在這裡我使用了 apt-get 指令下載了 Redis 並使它運作已符合我的工作需要。
現在即可使用 bash 來執行 Redis,藉以輔助使用 Visual Studio 編程 ASP.NET 專案的時候會需要用到 redis cache。在這之後我可以藉由 Azure Redis Cache 的功能來將我的專案部署到 Azure 上,所以對開發者而言這樣形成了一個好的開發流程。
開始清單現在也變得很美呢!
可以多關注 https://blogs.msdn.microsoft.com/commandline 在接下來幾週可能提供的技術細節,接下來也會有更多能夠支援程式碼控管、ANSI、VT100 等底層作業的良好更新陸續釋出。目前這個功能還處於早期開發者版本階段,開發團隊也會持續收集使用者的回饋跟評論以繼續改良。能夠在 Windows 上運行 Ubuntu 這項功能也會在 Build Windows 10 之後陸續釋出。期許開發者以新奇試用即發現的心態來探討如何將 Bash on Ubuntu On Windows 這項功能導入你的開發流程!
本文原始發布於: Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10