從微軟的Build 2016大會之後,微軟針對Windows Insider的會員在四月初發佈了第一次的Redstone Wave 1 Build 14316 更新,在4/22推送了 build 14328的更新、昨天又發表了14332更新。這接連幾次,帶來了Windows 10週年的許多重大改變,其中比較有趣的,就是支援執行原生 Bash on Ubuntu on Windows。
不過,有很多使用者找了半天都找不到這個功能,原因是因為這個Bash on Ubuntu on Windows並不是你一更新Windows 10之後就可以用的,必須要開啟一些設定才可以使用。(前提是你要是Windows Insider的會員,如果你是正式版使用者,則要等到八月份正式更新)
小編本身對Linux完全不熟,或許也有很多人跟小編一樣有個疑問,如果你不是開發者的話,這個功能對你來講到底有沒有用?小編參考了一些資料,並且實際啟用了Bash on Ubuntu on Windows,下面是簡單的心得。如果是Linux的重度使用者,發現文中有什麼問題,也請在留言中回覆分享。
Windows 10的Bash Shell是什麼?
Windows 10的Bash Shell並不是虛擬機器,而是一個原生的Linux子系統包含在Windows 10裡頭。基本上,這個子系統的由來,是來自於微軟之前放棄的一個Astoria 計畫,當初這個計畫原本是打算用來讓Windows也能執行Android App的,但這個計畫宣告失敗之後,原本的計畫就衍生成現在這個樣貌。
其實在Build 14316 更新中,Bash on Ubuntu on Windows就已經釋出了。那麼它能夠做什麼呢?在Linux上有一個程式叫做Wine,可以讓Linux執行部分Windows的Exe程式。而相對來說,Windows 10的Linux子系統,也是可以讓你在Windows上直接執行Linux的程式。
微軟是與Ubuntu的開發公司Canonical合作,提供一個Ubuntu Base的Bash Shell來執行這個子系統。但是技術上來說,這並不是Linux,Linux指的是底層的作業系統核心,但在這個子系統裡頭並沒有這個。但是這個子系統可以讓你執行Bash Shell,並且可以執行一般在UBuntu Linux上的程式。
但是在執行上還是有一些限制(可以說是很多限制),你不能執行Server軟體,此外也不能執行圖像化的軟體。這個工具主要是用來幫助那些開發者,想要在Windows上執行Linux命令列應用程式而設計的。這些Linux的程式可以存取Windows的檔案系統,但也就只有這個功能了,你無法使用Bash的命令來執行Windows的程式,或是利用Windows的命令列來執行Bash指令。
此外,也不是所有的Linux命令列程式都可以在Windows上順利執行,畢竟這功能仍然是在Beta測試中。
如何在Windows 10啟用Bash on Ubuntu
1.
要使用這個功能,首先你要到設定中,「更新與安全性」裡頭的「開發人員專用」下面,打開「開發人員模式。」
2.再來到「控制台」中的「程式和功能」,點選「開啟或關閉Windows功能」,裡頭有一個「適用於Linux的Windows子系統」項目將它打勾。
3.啟動之後要等一下安裝必要的工具,裝好後需要重新啟動。
4.現在打開Windows命令列, 輸入bash就可以了。中文版會顯示出一些亂碼,但是應該不影響實際使用。
5.還有另外一種做法,是你可以直接在搜尋列輸入BASH,也會跑出一個執行程式。
下載安裝Bash on Ubuntu on Windows
1.當你啟動bash.exe之後,你會看到開始執行命令列。雖然都是亂碼,但是你會看到有一個「Y」的字樣,其實這是系統問你要不要安裝Ubuntu on Windows,因此在這裡要按下「Y」。
2.接下來就會顯示下載進度,這是表示正在從Windows Store上下載Ubuntu on Windows。
3.最後會顯示這樣的畫面:
4.這時如果你到開始功能表,會看到在最近新增的程式中,新增了一個「Windows上Ubuntu的Bash」。
瞭解簡單的Bash命令
現在,你已經完全完成安裝程序了。現在你可以使用UBuntu的 apt-get命令來從Ubuntu的repositories(Ubuntu的官方軟體庫)來安裝軟體。不過要注意的是,正如前面所說的,現在還在Beta階段,不是所有的程式都可以順利在Windows上執行。
如果你跟小編一樣是新手,就一起來學一點基本Bash指令吧,BASH的指令與DOS命令列指令差不多,以下是基本對照表:
- 更換目錄: Bash:cd ,DOS: cd 或 chdir
- 列出目錄下的內容: Bash:ls, DOS: dir
- 搬移或是更改檔名:Bash :mv ,DOS:move 、 rename
- 複製檔案:Bash: cp, DOS:copy
- 刪除檔案:Bash: rm, DOS: del
- 創造一個新的目錄:Bash:mkdir, DOS: mkdir
- 使用文字編輯器:Bash: vi或 nano,DOS: edit
另外,Linux的檔案系統與Windows不一樣,當你要檢視C槽的內容時,你不能像是DOS那樣直接打 cd c:,Linux中C槽是在/mnt/c之下。因此,我們來練習一下,當你要檢視C槽內容的步驟如下:
1.先切換到C槽
2.檢視C槽的內容
如何下載並且執行程式
1.下載程式的指令為 apt-get install [程式名稱],舉例來說,假設你要安裝mutt這個命令列的發信程式,就可以下指令:apt-get install mutt
2.接下來就會下載並且安裝。
3.要執行的時候就直接輸入程式名稱
4.執行
好,如果你跟小編一樣對於Linux很陌生的話,那麼接下來一定會再問,「我怎麼知道要下載什麼命令列程式?」或是「有什麼好用的命令列程式可以建議的嗎?」
嗯...這也是小編現在正想要問的問題。
上面這個mutt,其實是小編Google才知道的一個命令列程式,找了一些論壇發現在討論的也都是圖形化的程式,嘗試下載一些圖形化程式,也都是以失敗告終。如果你知道有什麼推薦的,或是對於非開發者有更好的應用以及想法,請跟大家分享吧!
本文主要參考網站:howtogeek
> 有機會取代cygwin嗎?把GCC弄上來後搞不好可以build好多東西。
根據之前的展示影片,確定有 gcc
跑一些linux程式還滿方便的
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\bash]
@="Ubuntu bash here"
"icon"="%USERPROFILE%\\AppData\\Local\\lxss\\bash.ico"
[HKEY_CLASSES_ROOT\Directory\Background\shell\bash\command]
@="cmd.exe /s /k bash "