當前位置:
首頁 > 知識 > Bash / WSL和Windows控制台的新功能(Windows 10 Creators Update)

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




  1. 移除或替換(推薦)



  2. 原地升級




移除或替換


如果你正在運行一個

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

中無管理員許可權的

Symlinks


Symlinks

是在

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/


譯者:精武英雄



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

做一個微信小程序要多少錢?

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!沙雕道具回歸戰場