Windows 中的 WSL:開啟你的 Linux 之旅


? ? ? ?今天在安裝windows上安裝Docker Desktop的時候,遇到了WSL。下面咱們就學習下。

歡迎來到濤濤聊AI


一、什么是 WSL?


????????WSL,全稱為 Windows Subsystem for Linux,是微軟為 Windows 系統開發的一個兼容層,它允許用戶在 Windows 環境中直接運行 Linux 二進制可執行文件(ELF 格式)。簡單來說,WSL 讓你可以在 Windows 系統中無縫使用 Linux 系統,而無需安裝完整的 Linux 發行版。


(一)WSL 的歷史背景
????????WSL 最初于 2016 年在 Windows 10 的周年更新中首次亮相。微軟推出 WSL 的初衷是為了滿足開發者的需求,尤其是那些需要在 Windows 環境中使用 Linux 工具和環境的開發者。然而,隨著時間的推移,WSL 的功能不斷增強,它已經不僅僅是一個開發工具,更是一個強大的生產力工具,適用于各種計算機用戶。


(二)WSL 的核心優勢

? 無需虛擬機:傳統的 Linux 使用方式通常是通過虛擬機軟件(如 VMware 或 VirtualBox)來運行 Linux 系統。但虛擬機需要占用大量系統資源,啟動和運行速度較慢。而 WSL 則直接在 Windows 內核上運行,無需額外的虛擬機軟件,啟動速度快,資源占用低。

? 無縫集成:WSL 與 Windows 系統深度集成,你可以直接在 Windows 資源管理器中訪問 Linux 文件系統,也可以在 Linux 終端中訪問 Windows 文件系統。這種無縫集成讓你可以在兩個系統之間輕松切換和操作。

? 多種 Linux 發行版支持:WSL 支持多種流行的 Linux 發行版,如 Ubuntu、Debian、Fedora 等。你可以根據自己的需求選擇適合的發行版。


二、WSL 的版本介紹


????????WSL 有兩個主要版本:WSL 1 和 WSL 2。它們在性能、功能和兼容性上有所不同,下面我們來詳細了解一下。


(一)WSL 1
????????WSL 1 是 WSL 的第一個版本,它通過將 Linux 系統調用轉換為 Windows 系統調用來實現 Linux 環境的運行。這種轉換方式使得 WSL 1 在文件 I/O 操作上表現良好,但在某些復雜操作(如磁盤 I/O)上可能會出現性能瓶頸。


? 優點:

? 文件訪問速度快,適合處理大量文件操作的任務。

? 兼容性較好,大多數 Linux 應用程序都能在 WSL 1 上正常運行。

? 缺點:

? 對于需要高性能計算和復雜磁盤操作的應用,性能表現可能不如 WSL 2。

? 不支持某些 Linux 內核特性,如 Docker。


(二)WSL 2
????????WSL 2 是 WSL 的升級版本,它引入了虛擬化的 Linux 內核,使得 Linux 系統在 WSL 2 上的運行更加接近原生 Linux 環境。WSL 2 的核心優勢在于性能和兼容性。


? 優點:

? 性能大幅提升,尤其是在磁盤 I/O 和 CPU 密集型任務上。

? 支持完整的 Linux 內核特性,包括 Docker 等容器化工具。

? 更好的文件系統兼容性,支持 ext4 等 Linux 文件系統。

? 缺點:

? 啟動速度略慢于 WSL 1,因為需要啟動虛擬化的 Linux 內核。

? 需要更多的系統資源,尤其是內存。


三、如何安裝和使用 WSL


安裝和使用 WSL 非常簡單,即使是非程序員用戶也能輕松上手。下面我們將詳細介紹安裝步驟和基本使用方法。


(一)安裝 WSL

? 啟用 WSL 功能:

? 打開 Windows 設置,搜索“Windows 功能”,然后點擊“打開”。

? 在“Windows 功能”窗口中,找到“適用于 Linux 的 Windows 子系統”和“虛擬機平臺”(如果需要安裝 WSL 2),勾選它們,然后點擊“確定”。

? 系統會提示你重啟計算機,重啟后 WSL 功能將被啟用。


? 安裝 Linux 發行版:

? 打開 Microsoft Store,搜索你想要安裝的 Linux 發行版(如 Ubuntu、Debian 等)。

? 選擇一個發行版,點擊“獲取”進行安裝。

? 安裝完成后,打開該發行版,系統會提示你設置用戶名和密碼,完成初始化設置。


(二)使用 WSL

? 啟動 WSL:

? 安裝完成后,你可以在開始菜單中找到你安裝的 Linux 發行版,點擊它即可啟動。

? 你也可以通過 Windows 終端(Windows Terminal)啟動 WSL。打開 Windows 終端,選擇你安裝的 Linux 發行版,即可進入 Linux 環境。


? 基本命令操作:

? WSL 的操作界面是一個終端窗口,你可以通過命令行來操作 Linux 系統。以下是一些常用的命令:

? `ls`:列出當前目錄下的文件和文件夾。

? `cd`:切換目錄,例如`cd /home`切換到 home 目錄。

? `mkdir`:創建目錄,例如`mkdir test`創建一個名為 test 的目錄。

? `touch`:創建文件,例如`touch test.txt`創建一個名為 test.txt 的文件。

? `nano`或`vi`:文本編輯器,用于編輯文件。

? `sudo`:以管理員權限執行命令,例如`sudo apt update`更新軟件包列表。


? 訪問文件系統:

? 在 WSL 中,你可以訪問 Windows 文件系統。WSL 會將 Windows 文件系統掛載在`/mnt/c`(對于 C 盤)。例如,如果你想要訪問 Windows 的桌面文件夾,可以在 WSL 中輸入`cd /mnt/c/Users/你的用戶名/Desktop`。


? 安裝軟件:

? WSL 支持通過包管理器安裝軟件。以 Ubuntu 為例,你可以使用`apt`包管理器。例如,安裝`curl`工具的命令是`sudo apt install curl`。


? 運行圖形界面程序(可選):

? 雖然 WSL 主要是一個命令行環境,但你也可以通過安裝 X 服務器來運行圖形界面程序。例如,你可以安裝 VcXsrv 或 Xming 等 X 服務器軟件,并在 WSL 中設置環境變量`export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0`,然后就可以運行圖形界面程序了。


四、WSL 的應用場景


WSL 的應用場景非常廣泛,即使你不是程序員,也能從中受益。以下是一些常見的應用場景:


(一)數據科學
如果你對數據分析或機器學習感興趣,WSL 提供了一個強大的環境來運行 Python、R 等數據科學工具。你可以輕松安裝和使用 Jupyter Notebook、TensorFlow 等工具,而無需擔心 Windows 環境的兼容性問題。


(二)Web 開發
對于 Web 開發者來說,WSL 是一個理想的開發環境。你可以使用 Node.js、Ruby on Rails 等工具來開發 Web 應用,并通過 WSL 的網絡功能直接在本地測試和部署。


(三)系統管理
WSL 也可以用于系統管理任務。你可以使用 Linux 的命令行工具來管理 Windows 系統的文件和網絡,甚至可以通過 WSL 來管理遠程 Linux 服務器。


(四)學習 Linux
如果你對 Linux 感興趣,但又不想安裝完整的 Linux 系統,WSL 是一個完美的學習平臺。你可以通過 WSL 學習 Linux 命令行操作、文件系統管理、腳本編寫等知識。


五、常見問題及解決方法


在使用 WSL 的過程中,你可能會遇到一些問題。以下是一些常見問題及解決方法:


(一)WSL 無法啟動

? 原因:可能是 WSL 功能未正確啟用,或者 Linux 發行版安裝失敗。

? 解決方法:重新檢查 WSL 功能是否啟用(通過 Windows 功能窗口),并重新安裝 Linux 發行版。


(二)文件權限問題

? 原因:在 WSL 中訪問 Windows 文件系統時,可能會遇到權限問題。

? 解決方法:確保你以正確的用戶權限操作文件。你可以使用`sudo`命令來提升權限,或者通過 Windows 設置修改文件夾的權限。

?

(三)網絡連接問題?

? 原因:某些網絡設置可能會導致 WSL 無法正常連接到外部網絡。

? 解決方法:檢查你的網絡設置,確保 WSL 的網絡模式為“橋接”或“NAT”。你可以在 Windows 的網絡設置中調整虛擬網絡適配器的配置。此外,確保防火墻沒有阻止 WSL 的網絡訪問。如果問題仍然存在,可以嘗試重啟 WSL 或更新 Windows 系統。


(四)性能問題

? 原因:WSL 2 使用虛擬化技術,可能會占用較多的系統資源,尤其是在運行大型應用程序時。

? 解決方法:確保你的計算機有足夠的內存和 CPU 資源。如果資源緊張,可以嘗試關閉其他不必要的應用程序,或者調整 WSL 2 的內存分配。你可以在 WSL 2 的配置文件中設置內存限制,例如:

[wsl2]
memory=4GB  # 設置 WSL 2 的內存限制


(五)圖形界面程序無法啟動

? 原因:如果你嘗試在 WSL 中運行圖形界面程序,但沒有正確配置 X 服務器,可能會導致程序無法啟動。

? 解決方法:安裝一個 X 服務器(如 VcXsrv 或 Xming),并確保在 WSL 中正確設置了`DISPLAY`環境變量。例如:

然后再次嘗試運行圖形界面程序。

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0


六、進階技巧
除了基本的使用方法,WSL 還支持一些高級功能,可以幫助你更高效地使用它。


(一)自定義 WSL 配置
WSL 允許你通過配置文件來自定義其行為。你可以在`%UserProfile%\.wslconfig`文件中設置全局配置,例如內存和處理器限制。例如:

你還可以為每個 Linux 發行版單獨配置,通過在發行版的根目錄下創建`.wslconfig`文件來實現。

[wsl2]
memory=4GB
processors=2


(二)使用 WSL 2 的虛擬機功能
WSL 2 實際上是一個輕量級的虛擬機,你可以通過 Hyper-V 管理器來管理它。這讓你可以更靈活地控制 WSL 2 的資源分配和網絡設置。


(三)與 Docker 集成
如果你對容器化開發感興趣,WSL 2 是一個理想的環境。WSL 2 支持完整的 Linux 內核特性,因此可以無縫運行 Docker。你只需要在 WSL 2 中安裝 Docker,并確保它以管理員權限運行即可。


七、WSL 的未來展望
微軟對 WSL 的支持一直在不斷加強,未來可能會有更多的功能和改進。例如,微軟可能會進一步優化 WSL 的性能,或者增加對更多 Linux 發行版的支持。此外,隨著 Windows 和 Linux 的融合越來越緊密,WSL 也可能會成為更多非程序員用戶的首選工具。


八、總結
通過本文的介紹,你應該對 WSL 有了一個全面的了解。無論你是想學習 Linux,還是需要一個強大的開發環境,WSL 都是一個非常實用的工具。它的安裝和使用都非常簡單,即使是非程序員用戶也能輕松上手。

希望本文能幫助你更好地利用 WSL,提升你的工作效率和學習體驗。如果你在使用過程中遇到任何問題,或者有其他疑問,歡迎在評論區留言,我會盡力為你解答。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894523.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

編程題-電話號碼的字母組合(中等)

題目: 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。答案可以按 任意順序 返回。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。 解法一(哈希表動態添加)&#x…

python:如何播放 .spx 聲音文件

.spx 是 Speex音頻編解碼器的文件擴展名,它是一種開源的、免費的音頻編解碼器,主要用于語音壓縮和語音通信領域。spx 文件通常用于語音記錄、VoIP應用、語音信箱等場景。 .mp3 是一種廣泛使用的音頻格式,它采用了有損壓縮算法,可…

數據結構課程設計(三)構建決策樹

3 決策樹 3.1 需求規格說明 【問題描述】 ID3算法是一種貪心算法,用來構造決策樹。ID3算法起源于概念學習系統(CLS),以信息熵的下降速度為選取測試屬性的標準,即在每個節點選取還尚未被用來劃分的具有最高信息增益的…

Vue3學習筆記-事件-4

一、事件處理 使用v-on或者后面加事件&#xff1a; <template><button v-on:click"addCount()">{{count}}</button> </template> 二、事件傳參 傳event&#xff1a; 不傳參時&#xff0c;默認自動接收 event 傳自定義參數時&#xff0c…

Node.js下載安裝及環境配置

目錄 一、下載 1. 查看電腦版本&#xff0c;下載對應的安裝包 2. 下載路徑下載 | Node.js 中文網 二、安裝步驟 1. 雙擊安裝包 2. 點擊Next下一步 3. 選擇安裝路徑 4. 這里我選擇默認配置&#xff0c;繼續Next下一步&#xff08;大家按需選擇&#xff09; 5. 最后inst…

k8s二進制集群之ETCD集群證書生成

安裝cfssl工具配置CA證書請求文件創建CA證書創建CA證書策略配置etcd證書請求文件生成etcd證書 繼續上一篇文章《負載均衡器高可用部署》下面介紹一下etcd證書生成配置。其中涉及到的ip地址和證書基本信息請替換成你自己的信息。 安裝cfssl工具 下載cfssl安裝包 https://github…

使用python實現與本地ollama部署的deepseek對話

專欄總目錄 按照ollama官方doc的example操作&#xff0c;沒有成功與本地ollama上的deepseek-r1:1.5b通訊后&#xff0c;發現vscode可以調用本地ollama上的deepseek模型。 為了實現與ollama上的deepseek模型通訊&#xff0c;我使用wireshark對本地回環地址進行偵聽后&#xff0c…

【大模型理論篇】最近大火的DeepSeek-R1初探系列1

1. 背景介紹 這一整個春節&#xff0c;被DeepSeek-R1刷屏。各種鋪天蓋地的新聞以及老板發的相關信息&#xff0c;著實感受到DeepSeek-R1在國外出圈的震撼。 DeepSeek推出了新的推理模型&#xff1a;DeepSeek-R1-Zero 和 DeepSeek-R1。DeepSeek-R1-Zero 是一個在沒有經過監督微調…

C++哈希表深度解析:從原理到實現,全面掌握高效鍵值對存儲

目錄 一、核心組件與原理 1. 哈希函數&#xff08;Hash Function&#xff09; 2. 沖突解決&#xff08;Collision Resolution&#xff09; 3. 負載因子&#xff08;Load Factor&#xff09;與擴容 二、C實現&#xff1a;std::unordered_map 1. 模板參數 2. 關鍵操作與復…

Pandoc, Zotero, JabRef 管理論文引用,生成參考文獻 | 撰寫論文 paper

書接上回&#xff0c;使用 Obsidian, Zotero, JabRef, Pandoc, Markup-Markdown | 撰寫論文 paper 管理論文引用&#xff0c;生成參考文獻 TL; DR導出 bibliography 文件JabRefZotero 參考文獻引用語法reference-docLinks TL; DR 安裝 pandoc v3.6.2. 使用一下命令&#xff0c…

為AI聊天工具添加一個知識系統 之85 詳細設計之26 批流一體式 與數據提取器

Q843、批流一體式 統一數據處理框架 "批流一體式統一數據處理框架" 這一概念通常指的是一種將批處理&#xff08;Batch Processing&#xff09;和流處理&#xff08;Stream Processing&#xff09;結合在一起的數據處理架構。它的目標是提供一個統一的框架&#xff…

深入理解 `box-sizing: border-box;`:CSS 布局的利器

深入理解 box-sizing: border-box;&#xff1a;CSS 布局的利器 默認行為示例代碼 使用 box-sizing: border-box;示例代碼 全局應用 box-sizing: border-box;示例代碼 實際應用場景1. 表單布局2. 網格布局 總結 在 CSS 中&#xff0c;box-sizing 屬性決定了元素的總寬度和高度是…

CSDN原力值提升秘籍:解鎖社區活躍新姿勢

在 CSDN 這個技術交流的大舞臺上&#xff0c;原力值不僅是個人活躍度的象征&#xff0c;更是開啟更多權益與福利的鑰匙。最近&#xff0c;我出于自身需求&#xff0c;一頭扎進了提升原力值的研究中&#xff0c;經過多方探索與資料整理&#xff0c;現在就迫不及待地把這些干貨分…

計算機網絡——流量控制

流量控制的基本方法是確保發送方不會以超過接收方處理能力的速度發送數據包。 通常的做法是接收方會向發送方提供某種反饋&#xff0c;如&#xff1a; &#xff08;1&#xff09;停止&等待 在任何時候只有一個數據包在傳輸&#xff0c;發送方發送一個數據包&#xff0c;…

2024美團春招硬件開發筆試真題及答案解析

目錄 一、選擇題 1、在 Linux,有一個名為 file 的文件,內容如下所示: 2、在 Linux 中,關于虛擬內存相關的說法正確的是() 3、AT89S52單片機中,在外部中斷響應的期間,中斷請求標志位查詢占用了()。 4、下列關于8051單片機的結構與功能,說法不正確的是()? 5、…

【C語言入門】解鎖核心關鍵字的終極奧秘與實戰應用(三)

目錄 一、auto 1.1. 作用 1.2. 特性 1.3. 代碼示例 二、register 2.1. 作用 2.2. 特性 2.3. 代碼示例 三、static 3.1. 修飾局部變量 3.2. 修飾全局變量 3.3. 修飾函數 四、extern 4.1. 作用 4.2. 特性 4.3. 代碼示例 五、volatile 5.1. 作用 5.2. 代碼示例…

Kafka分區策略實現

引言 Kafka 的分區策略決定了生產者發送的消息會被分配到哪個分區中&#xff0c;合理的分區策略有助于實現負載均衡、提高消息處理效率以及滿足特定的業務需求。 輪詢策略&#xff08;默認&#xff09; 輪詢策略是 Kafka 默認的分區策略&#xff08;當消息沒有指定鍵時&…

c++ stl 遍歷算法和查找算法

概述&#xff1a; 算法主要由頭文件<algorithm> <functional> <numeric> 提供 <algorithm> 是所有 STL 頭文件中最大的一個&#xff0c;提供了超過 90 個支持各種各樣算法的函數&#xff0c;包括排序、合并、搜索、去重、分解、遍歷、數值交換、拷貝和…

2.2 實現雙向鏈表的快速排序

實現一個雙向鏈表的快速排序。 1>程序代碼 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h>…

力扣動態規劃-19【算法學習day.113】

前言 ###我做這類文章一個重要的目的還是記錄自己的學習過程&#xff0c;我的解析也不會做的非常詳細&#xff0c;只會提供思路和一些關鍵點&#xff0c;力扣上的大佬們的題解質量是非常非常高滴&#xff01;&#xff01;&#xff01; 習題 1.矩形中移動的最大次數 題目鏈接…