Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

軟件 Bash Windows 10 文本編輯器 Python部落 2017-06-04
Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。

當Windows10年度升級版(AU)發佈時,針對Linux的Windows子系統(WSL)還遠未完成,並且已知具有許多不兼容性,特別是與流行的開發者工具,如node.js,Java等不兼容。然而,讓這個令人興奮的新功能掌握在真正的用戶手中是具有重要意義的,我們可以方便地從中學習。WSL需要運行什麼,做什麼工作,不做什麼工作等都取決於你。

這個版本是由你而建,也是為你而建的

我代表WSL&控制檯工程團隊,衷心感謝在過去12個多月裡嘗試過和使用過Bash/WSL的所有人,特別是對所有在GitHub上提出問題,或在Twitter上聯繫我,或在UserVoice上提交/投票,和在StackOverflow,AskUbuntu,Reddit,Command-Line博客,WSL Team博客和其他地方進行問題詢問的朋友。

我們在Windows 10 Creators Update中發佈的大規模改進過的Bash/WSL和Windows控制檯應歸功於所有人!

WSL的新特性

在Windows10創作者更新(CU)的開發期間,WSL工程團隊完成了數百個修復和改進,其中大部分在WSL版本說明中有記載。儘管在 Command-Line 博客中強調了一些的控制檯和WSL的顯著特點,但我們認為有一個最重要特性和功能的綜合清單是很有益處的。

所以,請閱讀Windows10創作者更新(CU)並找出Bash/WSL&控制檯的新特性吧:

更高兼容性

對於Win10 CU的主要目標是大幅提高WSL的深度和與Linux系統調用接口(SCI)的兼容性的廣度。通過擴大和改進我們的系統調用實現,我們增加了用戶需要運行的工具,平臺,運行時間等。

結果是,在Win10 CU中最主流的開發工具現在能夠按預期工作,其中包括:

  • 核心工具:apt, sed, grep, awk, top, tmux, ssh, scp等

  • Shells:Bash, zsh, fish等

  • 開發工具:vim, emacs, nano, git, gdb等

  • 語言&平臺:Node.js & npm, Ruby & Gems, Java & Maven, Python & Pip, C/C++, C# & .NET Core & Nuget, Go, Rust, Haskell, Elixir/Erlang等

  • 系統&服務:sshd, Apache, lighttpd, nginx, MySQL, PostgreSQL

  • 其他

注意事項:可能有人已經對運行X/GUI apps和desktops on WSL進行了探索。雖然我們沒有明確支持WSL X / GUI應用/桌面,但我們沒有做任何事情來阻止它們。所以,如果你希望讓你喜歡的編輯器,桌面,瀏覽器等運行,這也是可以的。但要知道,我們仍然專注於提供一個非常堅實的命令行體驗,運行的所有你需要命令行開發工具。

支持Ubuntu 16.04

雖然Win10年度升級版提供對Ubuntu14.04的支持,在Win10創作者更新版中,WSL現在支持Ubuntu16.04,安裝在Win10 CU的任何新的Bash實例現在都安裝Ubuntu16.04。

如果您想了解您運行的是什麼版本的Ubuntu,請在Windows控制檯中Ubuntu上的Bash中輸入:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

重要提示:現有的Ubuntu14.04實例不會自動升級到16.04,您必須按照下面兩種方式之一手動將實例升級到Ubuntu16.04:

  1. 移除或替換(推薦)

  2. 原地升級

移除或替換

如果你正在運行一個Ubuntu14.04的實例,建議您移除並用新的Ubuntu實例16.04取代現有的實例。

警告:。下面的操作會刪除現有的版本和任何你存儲在Linux文件系統中的文件。因此,一定要複製/移動任何您希望保留的Linux文件,例如,複製到Windows文件夾(例如:/mnt/c/temp/wslbackup/…),然後再拆卸和替換您的實例!

要刪除並重新安裝你的Ubuntu實例,請在CMD/ PowerShell控制檯輸入下面的命令:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

上面的lxrun /install命令會安裝一個新的Ubuntu 16.04副本在你的電腦中。

原地升級

如果你的Ubuntu實例是特別複雜的配置,你可以選擇就地升級,但這可能不是最佳的選擇。如果您選擇就地升級您的實例,使用Ubuntu指令升級現有的實例:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

支持IFconfig與網絡連接枚舉

Win10 AU最大的缺點之一是它缺乏枚舉網絡連接的能力,這會阻止ifconfig,gulp,npm等工具正常運行。

這在Win10 CU中已經解決了,您可以使用ifconfig來枚舉和檢查可用網絡適配器的配置:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

支持Ping & ICMP網絡

用戶在Win10 AU中經常遇到的另一個問題是非管理員無法ping網絡端點。 這已經在Win10 CU中修復了:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

支持文件更改通知(INOTIFY

另一個非常必要的改進就是使一個工具在更改文件時能夠註冊通知的能力。這是Web,Node.js,Ruby和Python開發人員以及許多其他開發人員經常使用的基本功能。

例如,如果您正在完成一個node.js網站項目,在vim,Emacs,Sublime Text,VS Code等環境中編輯源代碼,每當您保存代碼時,您可能希望您的網站服務器重新加載新更改的頁面來源,以便您可以刷新瀏覽器,並立即看到您的更改。

那麼現在你可以!WSL支持inotify,允許應用程序註冊文件系統更改通知,然後可以觸發操作,如重建項目或重新啟動本地Web服務器。這適用於DrvFS和內部LXF的定位。

重要的是,此支持文件更改通知特點還支持Windows文件系統中文件的文件更改通知。這意味著您可以使用Windows GUI編輯器(如VSCode,Visual Studio,SublimeText,Notepad ++等)編輯存儲在Windows文件系統上的項目源,並且在Bash / WSL中運行的node.js為您的網站提供服務,並獲取您保存文件時的更改。

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

Windows <-> Linux Interop

構建WSL的一個關鍵目標是減少Windows工具與Linux命令行工具和環境一起運行時遇到的“gaps”。當我們在Windows 10 AU中發送WSL時,我們將Linux和Windows併入,但是仍然存在很大的“gap”——而兩個系統可以共享一些相同的文件,每個環境彼此相互隔離。

用戶經常告訴我們,他們希望能夠從Bash中調用Windows應用程序,並從Windows中調用Linux應用程序。所以,我們添加了這個功能!在Windows 10 Creators Update中,您現在可以從Bash中啟動Windows應用程序和工具:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

您可以從Windows中啟動Linux二進制文件/命令/腳本:

Bash / WSL和Windows控制檯的新功能(Windows 10 Creators Update)

相關推薦

推薦中...