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中輸入:
重要提示:現有的
Ubuntu14.04實例不會自動升級到
16.04,您必須按照下面兩種方式之一手動將實例升級到
Ubuntu16.04:
移除或替換(推薦)
原地升級
移除或替換
如果你正在運行一個
Ubuntu14.04的實例,建議您移除並用新的
Ubuntu實例
16.04取代現有的實例。
警告:。下面的操作會刪除現有的版本和任何你存儲在
Linux文件系統中的文件。因此,一定要複製
/移動任何您希望保留的
Linux文件,例如,複製到
Windows文件夾(例如:
/mnt/c/temp/wslbackup/…),然後再拆卸和替換您的實例!
要刪除並重新安裝你的
Ubuntu實例,請在
CMD/ PowerShell控制台輸入下面的命令:
上面的
lxrun /install命令會安裝一個新的
Ubuntu 16.04副本在你的電腦中。
原地升級
如果你的
Ubuntu實例是特別複雜的配置,你可以選擇就地升級,但這可能不是最佳的選擇。
如果您選擇就地升級您的實例,使用
Ubuntu指令升級現有的實例:
支持
IFconfig與網路連接枚舉
Win10 AU
最大的缺點之一是它缺乏枚舉網路連接的能力,這會阻止
ifconfig,
gulp,
npm等工具正常運行。
這在
Win10 CU中已經解決了,您可以使用
ifconfig來枚舉和檢查可用網路適配器的配置:
支持
Ping & ICMP網路
用戶在
Win10 AU中經常遇到的另一個問題是非管理員無法
ping網路端點。
這已經在
Win10 CU中修復了:
支持文件更改通知(
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為您的網站提供服務,並獲取您保存文件時的更改。
Windows <-> Linux Interop
構建
WSL的一個關鍵目標是減少
Windows工具與
Linux命令行工具和環境一起運行時遇到的「
gaps」。當我們在
Windows 10 AU中發送
WSL時,我們將
Linux和
Windows併入,但是仍然存在很大的「
gap」——而兩個系統可以共享一些相同的文件,每個環境彼此相互隔離。
用戶經常告訴我們,他們希望能夠從
Bash中調用
Windows應用程序,並從
Windows中調用
Linux應用程序。所以,我們添加了這個功能!
在
Windows 10 Creators Update中,您現在可以從
Bash中啟動
Windows應用程序和工具
:您可以從
Windows中啟動
Linux二進位文件
/命令
/腳本:
可以從我們的博客中了解更多相關內容。
UNIX
和
Netlink Socket改進
Anniversary Update
中不支持
UNIX套接字和
Netlink套接字的某些方面。
在
Creators Update中,
UNIX數據報套接字和
Netlink套接字,選項與屬性已添加到
WSL,支持各種形式的
IPC,允許許多現代工具在
WSL上運行。
更多內容請閱讀
WSL Release Notes。
TCP socket & IPv6
改進
在
Creators Update中,
WSL團隊和
Windows核心網路團隊合作,使
WSL能夠支持幾個額外的
IPv6和
TCP套接字選項和屬性。這使得依賴各種網路套接字功能的廣泛工具和技術能夠實現,並增強了
IPv6支持。
更多內容請閱讀
WSL Release Notes。
其他
WSL改進
上面列出的
WSL改進只是一些最明顯和值得注意的變化,但創作者更新(
Creators Update)中包含了數百種其他
WSL改進。以下是更多的內容,也可以詳細了解發行說明。
顯示於
Windows Process枚舉基礎設施的
Linux進程,也顯示在
TaskManager等上。
增加了特性以幫助使反惡意軟體和防火牆工具能夠了解
Linux進程
。
支持
PostgreSQL和其他工具所需的共享內存。
Windows
控制台
&命令行改進
Windows
控制台是整個操作系統中最基本的部分之一,幾十年來一直是
Windows的一部分。
大約
2年前,組建了一個新的
Windows控制台團隊,讓控制台得到在三十多年內最大的整改。
控制台檢測的主要驅動因素之一是需要啟用控制台來顯示在
WSL上運行的
Linux命令行工具和應用程序的輸出。
該團隊還對控制台的基礎和內部部件進行了一些非常需要的改進和現代化改造,這將有助於今後更加快速,更有前景的功能發展。
在
Win10 CU
中控制台有哪些新特性呢?
多
VT序列的改進
因為
Windows控制台最初不是為了支持
*NIX而構建的,所以它無法處理由
*NIX命令行工具和應用程序生成的不同行為和輸出格式代碼(
ANSI Escape Codes和
VT序列)。
但是,這已經結束了:
在
Windows 10 Anniversary Update中,控制台具有處理大多數常見
VT序列功能的功能,使其能夠正確呈現大部分簡單的文本格式。然而,它缺乏對幾種高級場景的支持。
在
Windows 10 Creators Update中,進一步改進
Windows控制台對
VT序列的支持,以正確處理幾個更高級的
VT序列,使控制台能夠實現
vim,
emacs,
Midnight Commander,
tmux,
htop等中的許多豐富的文本
UI功能。
支持
24bit顏色
來自社區的另一個常見需求是控制台支持
>16種顏色。當使用日益豐富和複雜的命令行工具和
shell等時,支持
256種顏色越來越重要。
在
Win10 Creators Update中,控制台已更新,以支持完整,絢麗的
24位顏色!
支持滑鼠
隨著豐富的文本
UI數量的不斷增加,用戶希望滑鼠支持
Midnight Commander,
Htop等工具,所以我們在
Win10 CU中添加了滑鼠支持。
Windows
中無管理員許可權的
SymlinksSymlinks
是在
Linux中廣泛使用的重要工具,但在
Windows中,由於需要管理員許可權才能創建符號鏈接,並且創建符號鏈接的控制台必須以管理員身份運——用戶很少會這樣做。
在
Windows 10 Creators Update中,已啟用開發人員模式的用戶取消了管理員許可權限制,允許從沒有升級的控制台創建符號鏈接。
下一步做什麼?
那麼,我們做完了嗎?不!還離得很遠!
WSL
和
Windows控制台還有很多改進和新功能值得我們繼續開展工作。
另外,雖然控制台和
WSL在
Creators Update中得到了顯著的改善,但是要注意,儘管我們削減一些粗略的邊緣部分並改進一些核心功能,但
WSL在
Win10 Creators Update中仍然是
beta功能。
我們會繼續推進許多計劃中的改進和令人興奮的新功能。繼續關注
Windows 10未來版本中更多令人興奮的功能:如果您想成為第一個訪問並體驗下一個
Windows 10改進版本,請務必註冊
Windows Insider程序並設置
Windows內部更新!
而且,一如以往,請提出您的反饋意見:如果您在使用
WSL時遇到問題,請隨時在
Twitter上提出,也可以在
UserVoice上提出新功能,在
Reddit,
StackOverflow,
SuperUser等上面進行所有偉大的討論,並保留
Command-Line博客和
WSL團隊博客上的評論。
英文原文:https://blogs.msdn.microsoft.com/commandline/2017/04/11/windows-10-creators-update-whats-new-in-bashwsl-windows-console/
譯者:精武英雄
TAG:Python程序員 |
※linux Web控制台
※Cloud Commander:一個有控制台和編輯器的 Web 文件管理器
※「python」colorama 模塊-改變控制台輸出文本的顏色
※微軟打包出售Xbox One控制台、Xbox Live和Game Pass服務,每月34.99美元
※windows C/C++ 使控制台窗口全屏
※Win10 19H1新特性:Windows控制台能縮放了
※C從零開始寫 SharpDx 應用 控制台創建 Sharpdx 窗口
※Pac-Man 256向PC和控制台方向發展 火箭聯盟增加了Xbox One
※AWS推出問題與事件統一處理控制台OpsCenter
※谷歌雲抽瘋,控制台和Dataflow罷工數小時
※解決weblogic頁面和控制台亂碼問題
※Telltale的回到未來來到下一代控制台 索尼將 與From 合作
※微軟Win10系統Xbox應用正式更名Xbox控制台小幫手
※特斯拉Kubernetes控制台遭黑客入侵,居然是為了「挖礦」?
※你只差這兩步|將Sentinel 控制台應用於生產環境
※微軟發布 Windows 命令行參考文檔,涵蓋超 250 項控制台命令
※生化危機7的XboxOneX補丁提供比標準控制台更大的提升
※任天堂已經賣出了超過1.5米的開關控制台 撲克玩家 Squared今天出局
※任天堂發布Labor系列紙板遊戲控制台
※玩家挖出《CSGO》控制台新BUG!沙雕道具回歸戰場