Windows不激活,使用 Linux 15 年后,我重新回到 Windows:感覺非常糟糕

 2023-10-21 阅读 12 评论 0

摘要:整理 | 張仕影 出品 | CSDN(ID:CSDNnews) 我將 Linux 作為唯一使用的操作系統已經大約有 15 年了。最近,我開始了一份非常棒的新工作,但唯一的問題是——它配備了一臺 Windows 10 筆記本電腦。 Windows不激活、這是我時隔 15 年后第一次使

整理 | 張仕影
出品 | CSDN(ID:CSDNnews)

我將 Linux 作為唯一使用的操作系統已經大約有 15 年了。最近,我開始了一份非常棒的新工作,但唯一的問題是——它配備了一臺 Windows 10 筆記本電腦。

Windows不激活、這是我時隔 15 年后第一次使用 Windows。

第一印象

Windows 桌面的混亂程度實在是令人震驚,Linux 常會因為桌面不穩定的問題受到批評,但顯然 Windows 的情況更糟糕。在 Windows 中,一半是“新”的UI(用戶界面),一半是舊的 Win 32(應用程序編程接口)/GDI(圖形設備接口)類型的 UI——這看似和 KDE (K桌面環境)/GTK(通用圖形庫)一樣糟糕,但不同點在于:在 Linux 發行版中可全部配置為 KDE、GTK 或其他方式啟動;但在 Windows 中,你只能一開始就被困于兩者的隨機混合。

值得慶幸的是,Windows 有一個黑暗主題可用,不過只適用于新 UI——也就是說,你可能會發現一些舊的非主題 UI 在黑暗模式下還呈現亮白色!

你不能自己定制任何東西!

現在是windows幾?與完全可定制的 Linux 相比, 你幾乎只能選擇用 Microsoft 為你提供的任何東西;反之,用戶可以從頭開始構建自己的 Linux 版本。不過,我與幾乎所有 Linux 用戶一樣沒有選擇自己構建,而是使用 Linux 發行版。我可以自由選擇最接近自己需求的發行版,并定制任何我想要的內容。多年來,我一直在使用 Xubuntu(基于 Ubuntu 的衍生 Linux 發行版),它很適合我,除此之外還有數百種 Linux 發行版可供我選擇 。

Windows 不是為我設計的

作為一名軟件和 Web 開發人員,我認為 Linux 是一個工具箱,里面裝滿了軟件開發人員歷經數十年為廣大開發者精心打造的高度完善的工具。但 Windows 卻不同,它是一個商業操作系統,主要面向的是 Word、Excel 和 Outlook 用戶。你在使用時可以明顯地感覺到二者的差異。

非組合式軟件

構成標準 Linux/Unix 工具箱的命令行工具(echo、cat、grep、sed、awk、find、cut、sort、curl、ssh 等…)都是可組合且通用的,你可以像拼樂高積木一樣將它們組合在一起,用任何你喜歡的組合方式來制作新工具。你可以在命令行上執行此操作,方法是將文本流從一個工具傳送到另一個工具,并根據需要使它們進行轉換。

如何使用windows10,遺憾的是,沒有人真正想出如何制作這樣通用且可組合的 GUI 軟件。Windows 一直非常關注 GUI,甚至幾乎完全排除命令行——這意味著它沒有這種可組合軟件工具的基礎。Windows 幾乎所有東西都是一個特殊用途的 GUI 軟件,因此你必須親自去尋找,然后下載和安裝。

解決方案:
你可以獲得大多數標準 *nix userland utils(GNU核心實用程序命令列表)的 Windows 版本,它們似乎可以與 PowerShell 一起使用:

$ scoop install coreutils

路徑

如果你只是在 GUI 文件管理器中點擊內容,那么帶有大量空格的冗長路徑并不重要,可如果你試圖使用命令行,那么它們就只是持續的對立。
在這里插入圖片描述
不過老實說,自我上次使用 Windows 以來,他們已經消除了路徑中的很多空格。此外,PowerShell 也確實為主文件夾提供了~ 別名,并且cd ~ 也可以正常工作。

環境變量

ubuntu裝回windows、環境變量看起來像這樣:%PROFILE% ,而不是這樣:$HOME 。雖然有差異,但也都很好,并且 PowerShell 似乎兩種形式都接受。

不太好的是,它們顯然是存儲在 Windows 注冊表中的。如果你使用setx %var% value或 GUI 來更新這些,你就必須重新啟動 shell——即輸入exit ,窗口/選項卡消失,然后再打開另一個窗口。

解決方案:
我還沒有嘗試過這種方法,但是我認為如果你想要在當前運行的 shell 中添加持久的環境變量,應該在$profile 文件中放置一個 setx 命令,然后重新加載 . $profile,或者可以運行myvar=“value” && setx %myvar% “value” 等類似的命令。

安裝軟件

window怎么使用。在 Windows 中,大多數情況下安裝軟件仍然是去網站,下載一個.exe或是.msi,然后運行。然而當你試圖去運行它們時,你可能會收到一些警告,但這仍然是安裝很多軟件的唯一方法! 2022 年了,這種安裝方式還是令人不放心。

雖然現在有了 Microsoft Store(微軟商店),但情況依舊很糟糕。它比多數 Linux 發行版中“應用商店”所擁有的軟件還少,甚至與 Debian 軟件庫(有大約 6 萬個軟件包)和 Arch 的AUR(7.3 萬個軟件包)相比,簡直是微不足道(不過這些計數包括整個 Linux 操作系統,它們是用同一個軟件包管理器安裝的)。

像 Netflix(流媒體播放平臺)一樣,Microsoft Store 故意讓人看不出他們到底有多少東西,但在大多數有用的類別中,它都空蕩蕩的。起碼到目前為止,它沒有我需要的東西。

廣泛使用的windows?例如,嘗試安裝一個字體。如果你已經下載了某個字體,那么你就可以右鍵單擊它,或者是設置新字體安裝內容以安裝本地字體文件;但它同時也會建議你訪問只有
19 種字體可用的 Microsoft Store 商店。

粗略地看了一下apt list | rg 'ttf|otf' | wc-l,我發現我的谷歌字體/Ubuntu(以桌面應用為主的Linux操作系統)盒子中有 101 個字體,目前有 1364 個字體系列。這些都是開源且免費許可的,并且這些字體能夠在 Windows 上運行良好,因此如果微軟想要的話,他們同樣也能安裝。

如果有一個合適的包管理器,Microsoft Store 本可以通過他們的商店來解決這個問題,但他們似乎沒有這樣做:Microsoft Store 的一些團隊抄襲 AppGet 來創建 WinGet,最后又選擇棄之不用;另外一些團隊創建了MSIX(一種全新的安裝包格式),也有其他一些團隊創建了商店……?
在這里插入圖片描述

(Microsoft 組織結構圖)

最近出現了一些適用于 Windows 的“包管理器”——nuget、choclaty、scoop、winget 等……可惜,這些只是在彌補漏洞。因為 Windows 中很多東西都不是開源的,所以他們仍然沒有自己的包存儲庫、可復制的構建、包簽名等,只能自動化進入網站、下載安裝程序以及運行的過程。

Windows 的這些“包管理器”只是在單純的自動下載和安裝,還稱不上是真正的包管理器。而 Linux 的包管理器并不像 Windows 的一樣,它們通常會執行以下操作:

1.擁有某種形式的包存儲庫,主要存儲包列表、元數據和二進制安裝包,有時也會存儲源代碼
2.包簽名、可復制的構建、安全下載等
3.瀏覽和搜索這些包
4.在本地安裝存儲庫中的包,這意味著:
(1)如果是源碼包系統,需要編譯源碼并進行測試
(2)將文件復制到系統中,將它們放在正確的位置,然后運行可選的安裝腳本和鉤子
(3)記錄所有安裝的文件,了解哪個文件屬于哪個包
5.卸載時:
(1)自動刪除所有的包文件
(2)運行可選的卸載腳本和鉤子
(3)確保軟件被安全徹底地卸載
6.能夠更新軟件包,這意味著:
(1)知道安裝了哪些包,以及什么版本
(2)能夠下載和更新任何過時的包

重要的是,整個操作系統以及所有應用程序都是通過這個系統安裝的,一切都以相同的方式安裝和更新。

更不用說 Nix 包管理器和 NixOS 一起進行的完全下層的東西了。

客觀來說,Microsoft Store 的 MSI(管理信息系統)確實做了一些還不錯的事,只是 MSI 軟件包從剛開始到現在都很難創建,所以很多軟件仍然沒有使用 MSI 文件,因此 20 年后它們還帶有 Nullsoft/InstallShield/Inno/homegrown setup.exe。不過,有一個新的 MSIX 系統還不錯,它更容易創建,并且增加了應用的集裝箱化/沙盒化(如 flatpak/snap)及更新,但由于是新的,所以幾乎沒有人使用它。

即使考慮到這一點,似乎也沒有一種觀念認為:系統作為一個整體可以提供某種內聚力的應用程序安裝和更新體驗。據我所知,Windows Update 為操作系統提供了這個功能,不過即使它們使用了新的 MSIX 安裝程序系統,應用程序也還是單獨更新的。我認為 Microsoft Store 應該這樣做,因為這樣我們就可以從中安裝少量的應用了。

除此之外,這些不同的“包管理器”并不都有相同的包/應用程序可用,所以你最終可能會安裝好幾個“包管理器”。此外,由于“包管理器”并不支持所有更新,所以當你想更新時,必須記住你安裝的是哪個東西。

我完全理解它的歷史和商業原因,但與 Linux 相比,它對終端用戶來說仍然是一個非常糟糕的體驗。

解決方案:
到目前為止,Scoop(Windows 下的安裝源搜索工具)似乎是最好的。

$ scoop search wget
$ scoop info postgres
$ scoop install coreutils wget xh bat ripgrep

一個不是特別糟糕的終端

安裝在 Windows 上的 shell 和終端應用非常糟糕,就像 20 世紀 80 年代的 DOS(磁盤操作系統)在一個窗口中壞了——自從我 15 年前最后一次使用它們以來就再也沒有改變過。現在有一個名為 PowerShell 的新 shell 可以在你那可怕的 80 年代的終端窗口中運行,但在其中運行的終端仍然很糟糕。

我有時候在想,VS Code(跨平臺編輯器)團隊在編輯器的內置終端上投入了這么多精力的原因究竟是什么。我曾經在 Linux 上嘗試過一次,然后再也沒有碰過它,因為我的編輯器旁邊的終端窗口在各方面都要好得多。在我使用 Windows 終端一段時間后,終于理解它存在的理由了。

解決方案:
事實證明,這個問題的答案是安裝 Windows 終端。

在這個終端內運行的 shell 是可配置的,不過我目前正在使用的是 PowerShell。我認為,如果你愿意學習它,將會發現它的功能相當強大。比起 cmd.exe + 舊 shell,這無疑是巨大改進。

只能重啟并失去我所有的終端嗎?

一天早上,當我登錄上 Windows 時,我驚訝的發現:一夜之間我丟失了所有打開的終端、SSH(安全外殼協議)會話以及所有的 VSCode 窗口。由于我的 Outlook、Teams 和 Edge 窗口都還在,所以我最初以為是它們崩潰了,但在瀏覽了事件查看器之后,我發現實際是 Windows Update 在沒有詢問我的情況下重新啟動了機器!

事實證明,有些 Windows 應用程序是“可重新啟動的”,而有些則不是——這意味著當你重新啟動時,它們會重新加載所有窗口。

我后來發現 Windows Terminal Preview Edition(Windows 終端預覽版)現在也是“可重新啟動的”。但這并不奇怪,它僅意味著你的終端窗口和選項卡會返回,而不是它們的內容或 SSH 會話等。

而我們在 Linux 領域做事的方式是:

$ uptime
09:33:15 up 56 days, 16:33,  1 user,  load average: 1.36, 1.29, 0.91

解決方案:
你可以關閉這個功能——除非你的 IT 部門已通過政策設置了此功能,比如我就是這種情況。

虛擬桌面/工作區

Linux 一直以來(30 年)都擁有堅如磐石的多個虛擬桌面/工作區的支持,而 Windows 10 卻才實現這一點。以前虛擬桌面/工作區可通過第三方軟件實現,但根據我的經驗,它非常的“黑客”,而且效果不好。

使用多個工作區/虛擬桌面是我在 Linux 上工作流程的核心部分——我目前有 20 個工作區,所以這對我來說相當重要。

Windows 10 中的這個功能似乎比以前的第三方軟件更好用,但我對它仍有一些不滿:

  • 除非回到切換器中,否則沒有辦法看到你在哪個桌面上。
  • 據我所知,win+tab 桌面切換器屏幕可以做很多事情——包括在桌面之間移動窗口的唯一方法,但它可能有點慢且不穩定。
  • 當應用程序重新啟動時,它們最終都會出現在第一個桌面上,但因為很明顯,所以 Microsoft Store 的人不會使用多個桌面。
    解決方案:
  • 安裝虛擬桌面指示器以在任務欄中獲取桌面編號指示器,在切換和鼠標滾輪切換時彈出桌面名稱。
  • 安裝 PersistentWindows(多屏調整工具),它能夠實時
  • 跟蹤窗口位置,并自動將窗口布局恢復到上次匹配的監視器設置。

睡眠/關機后,Windows 全部移至主顯示器

似乎當 Windows 將 DisplayPort 顯示器發送到睡眠狀態時,它每一次都會馬上忘記自己執行了此操作,并表現得像你斷開了它們的連接一樣,然后將這些顯示器上的所有窗口移動到主顯示器上。因此,當你喚醒它時,你必須再次將所有的窗戶放回原來的位置。

這種情況似乎自 Windows 7 發布以來就一直在發生,對此好多人都在抱怨但卻無濟于事。

解決方案:

  • 將屏幕睡眠超時設置得很長,或者在接通電源時關閉
  • 安裝 PersistentWindows——實時跟蹤窗口位置,并自動將窗口布局恢復到上次匹配的顯示器設置

沒有中鍵粘貼

Linux 有多個剪切板,默認有主選區和次選區。要注意,主選區和次選區并不是主要和次要的關系,只是功能不同,如主選區始終有你從任何地方選擇的最后一個文本的副本,你可以通過點擊鼠標中鍵粘貼到任何地方。你只需選擇一些文本即可——你不需要再執行任何其他操作,然后你可以在任意位置單擊鼠標中鍵粘貼。另外,“輔助”剪貼板可以進行“正常”的剪切、復制、粘貼、Ctrl+c 與 Ctrl+v 中的一項。

主剪貼板非常有用,但 Windows 完全沒有任何等同的東西。

Windows 終端可以在右鍵單擊時粘貼剪貼板的內容,并將最后一個選擇復制到剪貼板上,但這只在 Windows 終端中起作用。另外,因為 Windows 只有一個剪貼板,所以每次你在 Windows 終端中選擇任何內容時,它都會覆蓋剪貼板,而 Linux 有另一個剪貼板的原因就是防止這種情況的出現。
解決方案:
什么都沒有?

SSH

我聽說 PuTTY(一個Telnet、SSH、rlogin、純TCP以及串行接口連接軟件)是?? Windows 上很好的 SSH,所以我嘗試使用過,但最終發現它……一點也不好。不過 PowerShell 的確帶有一個 SSH 客戶端,所以一旦你有了一個合理的終端,你就可以正常地使用 SSH。
解決方案:
使用 Windows/PowerShell 自帶的 SSH。

鍵盤快捷鍵

我已經開始使用一些有用的鍵盤快捷鍵了:
在這里插入圖片描述
同樣,這些都不是完全可定制的——你可以通過使用 PowerToys 鍵盤管理器獲得更多的全局熱鍵定制,但是由于某種原因,有很多組合都是不可能的。比如我想用 Win+Enter 來啟動一個新的終端窗口,以匹配我的 Linux 工作流程,但這種組合就是不被允許的。

網友:“使用 Windows 的唯一原因是有些軟件無法在 Linux 上運行”

不少網友在閱讀完 Duncan Lock 作者的這篇文章后,都發表了自己的一些看法。一部分網友對 Duncan Lock 的觀點表示贊同:

網友@cmehdy:“在切換到 Windows 之前,我也曾使用了 Mac 10 年以上,而我的感受和文章講的基本相同。”

網友@brokenmachine:“我在家里同時使用 Linux 和 Windows,雖然每當我在 Linux PC上進行更新時,它總是會破壞很多東西,但通常我可以修復所有內容,并且在修復后它仍然可以保持原來的狀態并可靠地工作,直到我選擇進行另一次更新為止,所以我仍然喜歡
Linux。而我使用 Windows 的唯一原因是有些軟件無法在 Linux 上運行。”

也有一部分網友并不贊同 Duncan Lock 的觀點,認為他的評價有失公正:

網友@jmmv:“切換平臺、重新適應是需要很長時間的,如果沒有經過長時間的調整,那么很容易產生抱怨的,而且很難提供公平的評價…”

網友@libraryatnight:“作為一個整天使用 AD、Azure 和 Windows 服務器的人,我認 認為 Windows Powershell 是非常棒的。”

那么,你是否滿意目前的 Windows 系統,對它又有何看法?

原文地址:https://news.ycombinator.com/item?id=30944438

https://duncanlock.net/blog/2022/04/06/using-windows-after-15-years-on-linux/
聲明:本文由 CSDN 翻譯,轉載請注明來源

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/158938.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息