??每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領域的領跑者。點擊訂閱,與未來同行! 訂閱:https://rengongzhineng.io/
在這個領域的讀者們都知道,我喜歡談論微軟是如何重啟自己的,如何圍繞開源重新定位公司,并創造了WSL(Windows子系統Linux)。讓我驚訝的是,這家曾經稱Linux為癌癥的公司如何重建自己成為一個離不開它的企業。這就引出了今天的新聞。如果你使用的是Windows 11,那么不久后,你將能夠啟動Windows終端并輸入類似下面這樣的命令:
`sudo notepad \windows\system32\drivers\etc\hosts`
這當然是Linux中著名的sudo命令,它如此出名以至于有自己的xkcd漫畫(如下所示)。當你運行sudo時,你會看到熟悉的Windows UAC彈窗,詢問你是否想要提升你的權限。如果你同意,接下來的語句將以管理員身份執行。(對于你接下來輸入的任何內容,生活都會恢復正常。)
在這個例子中,我使用sudo來以管理員身份啟動記事本。這對于編輯hosts文件很重要。作為普通用戶,我不允許更新這個文件。但現在,我玩在線象棋玩得太多了。我知道我可以通過一個簡單的編輯來切斷這個干擾,阻止訪問chess.com,不需要額外的軟件。所以,是時候穿上我的管理員靴子,做出改變了。
如何將sudo引入Windows
Sudo代表“超級用戶執行”。這是Linux中升級權限的一種方便方式。但這個例子是在Windows中,我以普通方式(在非管理員用戶環境中)打開了一個Windows終端窗口。通常,sudo在這里不起作用。但在最新的Windows 11 insider預覽版(構建26052)中,所有這些都發生了變化,sudo被包含為一個可選的開發者特性。
假設你已經加入了Windows內部測試計劃,你可以從Windows設置中的“設置 > 針對開發者”頁面啟用sudo。或者,你可以啟動一個提權的Windows終端會話,并使用以下命令來啟用它:
`sudo config --enable normal`
“normal”選項賦予你完整的sudo權限,就像在Linux中一樣。另外,你還可以使用更安全的選項disableInput,它不允許提升權限的過程接收任何進一步的用戶輸入,或者forceNewWindow,它會啟動一個新的終端窗口來運行新提升權限的過程。這兩種方法都可以減輕一些潛在的安全風險,但它們改變了sudo的工作方式,使其不完全與Linux實現相同。
順便說一下,微軟已經暗示,他們可能會將sudo移植回Windows 10。所以,這個新功能將成為即使對于使用較舊PC的開發者來說也是標準選項。
我們需要sudo嗎?
沒有sudo,我會使用某種版本的runas來成為管理員——要么通過在命令行中輸入runas,要么通過右擊開始菜單中的Windows終端圖標來獲取“以管理員身份運行”的選項。
因此,從技術上講,sudo并沒有給你帶來你已經做不到的東西。相反,它允許你以傳統的Linux方式工作。如果你是一個真正的Linux用戶,這特別棒,無論是因為你花了很多時間配置服務器或云環境,還是你只是喜歡在那個操作系統中開發。然后,使用sudo就像輸入ls代替dir或cat代替type一樣——一種使用對你來說最熟悉的方法而不需要額外認知轉換的方式。(是的,Windows也允許這些其他替代。)
不那么明顯,但同樣重要的是,像sudo這樣的添加幫助Windows開發者更加舒適地了解Linux的慣例。在過去的幾年中,我已經開始更喜歡Linux選項而不是原生的Windows-only shell命令。那是因為,我對Linux命令越熟悉,就越不可能在下次我在真正的Linux提示符下工作時——例如,在像AWS這樣的云環境的shell中——感到迷失和孤獨。我打算也充分利用sudo。
微軟和Linux,一段不尋常的戀情。如果你對微軟擁抱Linux還不太了解,你絕對應該看看WSL,這是隨Windows一起發貨的Linux內核,允許各種有趣的互操作性場景。例如,你可以直接在VS Code中開發到一個虛擬的Linux文件系統,并在Docker中運行Linux容器。如果你還沒有玩過WSL,看看《每個Windows開發者都需要一點Linux》以獲取一些寶貴的背景信息。
讓我們花一點時間感謝微軟那些有遠見的人,他們迫使公司改變了其早期的路線和妖魔化Linux的方式。雖然只用了二十多年的時間,但似乎很清楚,如果沒有那次轉變,微軟只會成為科技歷史上的又一個沉重的腳注。現在我們處在一個交替的歷史中,微軟做了一些幾年前看起來
瘋狂的事情。比如使用JavaScript構建世界上最受歡迎的代碼編輯器(VS Code),重建他們龐大的.NET項目使其跨平臺和開源,當然還有——將一個完整的Linux內核偷偷搬進Windows的心臟。