WSL的一些使用

WSL常用操作

Posted by Momoka7 on July 31, 2024

基础概念和操作

WSL(Windows Subsystem for Linux)允许你在 Windows 10 或 Windows 11 上运行 Linux 环境。下面是从安装到使用 WSL 的详细步骤:

1. 检查系统要求

确保你的 Windows 版本支持 WSL。你需要 Windows 10 版本 1903 或更高,构建版本 18362 或更高。Windows 11 则默认支持 WSL。

2. 启用 WSL

  • 打开“控制面板”。
  • 选择“程序”。
  • 点击“启用或关闭 Windows 功能”。
  • 在列表中找到“适用于 Linux 的 Windows 子系统”、“虚拟机平台”,勾选并点击“确定”。
  • 重新启动计算机。

3. 安装 WSL 2

  1. 打开 PowerShell(以管理员身份运行)并运行以下命令来安装 WSL 2:
    1
    
    wsl --install
    
  2. 设置 WSL 2 作为默认版本:
    1
    
    wsl --set-default-version 2
    

4. 安装 Linux 发行版

  1. 查看可安装的 linux 发行版:wsl -l --online
  2. 下载并安装指定的 linux 发行版:wsl --install <linux_name> --web-download

5. 使用 WSL

  1. 打开已安装的 Linux 发行版应用。你现在在 Linux shell 中,可以像在传统 Linux 环境中一样使用命令行工具。
  2. 你可以通过wsl命令从 Windows 命令行或 PowerShell 启动 Linux 发行版。例如,运行以下命令可以启动默认的 WSL 发行版:
    1
    
    wsl
    
  3. 如果你有多个 WSL 发行版,可以指定要启动的发行版。例如,启动 Ubuntu:

    1
    
    wsl -d Ubuntu
    

    也可以直接在 PowerShell 上选择 wsl 打开。

6. WSL 的常用命令

  • 查看已安装的发行版及其运行状态·
    1
    
    wsl -l -v
    
  • 设置默认发行版
    1
    
    wsl --set-default <发行版名称>
    
  • 更改 WSL 版本
    1
    
    wsl --set-version <发行版名称> 2
    
  • 卸载发行版
    1
    
    wsl --unregister <发行版名称>
    

7. 整合 Windows 和 WSL

你可以在 Windows 和 WSL 之间无缝地共享文件和工具:

  • 在 WSL 中访问 Windows 文件系统:路径在/mnt/c下。例如,访问 C 盘的文件:
    1
    
    cd /mnt/c/Users/你的用户名/文件夹
    
  • 在 Windows 中访问 WSL 文件系统:路径在\\wsl$\<发行版名称>\下。例如,在文件资源管理器中访问 Ubuntu 的文件系统:
    1
    
    \\wsl$\Ubuntu\home\你的用户名
    

通过这些步骤,你应该能够成功安装并使用 WSL 在 Windows 上运行 Linux 环境。如果有更多特定问题,随时问我。

其他特性和操作

1. 卸载、备份和导入 wsl

在使用 WSL 时,你可能需要卸载、备份或导入 WSL 发行版。以下是详细的操作步骤:

卸载 WSL 发行版

  1. 通过“应用和功能”卸载
    • 打开“设置”应用。
    • 选择“应用”。
    • 在“应用和功能”中,找到你要卸载的 Linux 发行版(例如,Ubuntu)。
    • 点击该发行版,然后选择“卸载”。
  2. 通过 PowerShell 卸载
    • 打开 PowerShell(以管理员身份运行)。
    • 运行以下命令查看已安装的发行版:
      1
      
      wsl -l -v
      
    • 运行以下命令来卸载特定的发行版:
      1
      
      wsl --unregister <发行版名称>
      
    • 例如,卸载 Ubuntu:
      1
      
      wsl --unregister Ubuntu
      

备份 WSL 发行版

备份 WSL 发行版的主要方式是导出其文件系统到一个 tar 文件:

  1. 导出发行版
    • 打开 PowerShell(以管理员身份运行)。
    • 运行以下命令将发行版导出到 tar 文件:
      1
      
      wsl --export <发行版名称> <路径>\备份文件.tar
      
    • 例如,备份 Ubuntu:
      1
      
      wsl --export Ubuntu C:\Backup\ubuntu_backup.tar
      
  2. 检查备份
    • 确保 tar 文件已正确生成并存在指定位置。

导入 WSL 发行版

如果你想恢复或迁移 WSL 发行版,可以通过导入 tar 文件来完成:

  1. 导入发行版
    • 打开 PowerShell(以管理员身份运行)。
    • 运行以下命令将 tar 文件导入到新的发行版中:
      1
      
      wsl --import <新发行版名称> <安装路径> <路径>\备份文件.tar
      
    • 例如,将备份的 Ubuntu 恢复到C:\WSL\Ubuntu路径下:
      1
      
      wsl --import Ubuntu C:\WSL\Ubuntu C:\Backup\ubuntu_backup.tar
      
  2. 启动导入的发行版
    • 打开你的 Linux 发行版应用,检查数据是否恢复正常。
    • 你也可以使用命令行启动新的发行版:
      1
      
      wsl -d <新发行版名称>
      

相较于普通 linux 的特性

WSL(Windows Subsystem for Linux)与普通的 Linux 系统有一些显著的不同之处。下面是一些 WSL 的特性和特殊操作:

特性

  1. 与 Windows 紧密集成
    • WSL 允许你在 Windows 环境中运行 Linux,而不需要虚拟机或双启动。你可以直接从 Windows 访问 WSL 中的文件和工具。
    • 你可以在 Windows 和 WSL 之间轻松共享文件。Windows 文件系统在 WSL 中可用,而 WSL 文件系统也可以通过\\wsl$路径在 Windows 中访问。
  2. 图形界面支持(WSL 2)
    • 从 WSL 2 开始,支持 Linux GUI 应用程序。你可以在 WSL 2 中运行图形化 Linux 应用程序,这些应用程序会在 Windows 桌面上显示。
  3. 文件系统差异
    • WSL 的文件系统使用不同的路径结构,例如/mnt/c用于访问 Windows 的 C 盘。WSL 中的文件系统与原生 Linux 系统的文件系统有所不同。
  4. 网络集成
    • WSL 与 Windows 共享网络接口。WSL 中的网络行为与 Windows 相同,并且可以访问 Windows 网络服务。WSL 2 使用虚拟机和虚拟网络,可能需要在特定情况下配置网络端口转发。
  5. 性能
    • WSL 2 使用轻量级虚拟机技术,通常比 WSL 1 提供更好的性能,特别是在文件操作和 Docker 容器方面。

特殊操作

  1. 启动和管理 WSL
    • 你可以使用 PowerShell 或命令提示符启动和管理 WSL 发行版。例如,wsl命令可以启动默认发行版,wsl -l -v可以列出所有已安装的发行版及其状态。
  2. 访问 Windows 文件
    • 在 WSL 中,你可以通过/mnt/c路径访问 Windows 的 C 盘。例如:
      1
      
      cd /mnt/c/Users/你的用户名/Documents
      
  3. 运行 Windows 应用程序
    • 你可以从 WSL 中直接调用 Windows 应用程序。只需在 WSL 终端中输入 Windows 应用程序的路径。例如:
      1
      
      notepad.exe
      
  4. 配置文件系统和网络
    • WSL 2 使用虚拟机和虚拟网络,你可能需要配置端口转发来访问 WSL 中的服务。你可以使用netsh命令进行配置。例如,将 WSL 中运行的 Web 服务端口转发到 Windows:
      1
      
      netsh interface portproxy add v4tov4 listenport=8080 connectaddress=127.0.0.1 connectport=80
      
  5. 备份和恢复
    • 使用wsl --exportwsl --import命令可以备份和恢复 WSL 发行版,这对于迁移或备份非常有用。
  6. 使用 WSL 终端
    • 在 Windows 中,你可以使用 Windows Terminal 来管理多个 WSL 实例,提供更好的终端体验。
  7. 处理兼容性问题
    • 某些 Linux 特性可能在 WSL 中不完全支持或表现不同。例如,WSL 1 不支持原生的 Linux 内核功能,而 WSL 2 则使用真正的 Linux 内核,但仍有一些与硬件和系统调用的兼容性问题。

总结

WSL 在集成和性能上提供了相对于传统虚拟机或双启动环境的优势,特别适合开发和测试工作。然而,它与原生 Linux 系统在文件系统、网络和一些系统调用上仍有差异。在使用 WSL 时了解这些特性和特殊操作可以帮助你更高效地利用它。

配置

wsl.conf.wslconfig 是用于配置 WSL(Windows Subsystem for Linux)行为的重要文件。它们分别用于配置单个 WSL 发行版和全局 WSL 设置。以下是详细的配置方法和示例:

配置 wsl.conf

wsl.conf 是位于 WSL 发行版中的配置文件,主要用于调整特定发行版的设置。它通常位于 /etc/wsl.conf

1. 编辑 wsl.conf 文件

  1. 打开 WSL 终端(例如,Ubuntu)。
  2. 使用文本编辑器编辑 /etc/wsl.conf 文件

    1
    
    sudo nano /etc/wsl.conf
    

    或者:

    1
    
    sudo vim /etc/wsl.conf
    

2. 配置选项

以下是一些常见的配置选项及其说明:

  • 自动挂载配置
    1
    2
    3
    4
    
    [automount]
    enabled = true
    mountPoint = /mnt
    options = "metadata"
    
    • enabled: 是否启用自动挂载 Windows 文件系统。
    • mountPoint: 挂载点的路径(默认为 /mnt)。
    • options: 挂载选项,如 metadata 用于支持 Windows 文件系统的 POSIX 兼容元数据。
  • 设置启动命令
    1
    2
    
    [boot]
    command = /usr/bin/your-startup-script.sh
    
    • command: 设置 WSL 启动时执行的命令或脚本。
  • 关闭自动挂载
    1
    2
    
    [automount]
    enabled = false
    

3. 保存并重启

  1. 保存更改并退出编辑器。
  2. 重启 WSL 以应用更改
    1
    
    wsl --shutdown
    

配置 .wslconfig

.wslconfig 是位于 Windows 文件系统中的配置文件,用于设置 WSL 的全局行为,适用于所有 WSL 发行版。它通常位于用户的主目录下,例如 C:\Users\<YourUsername>\.wslconfig

1. 创建或编辑 .wslconfig 文件

  1. 打开文本编辑器(如记事本或其他代码编辑器)。
  2. 创建或编辑 .wslconfig 文件
    • 文件路径:C:\Users\<YourUsername>\.wslconfig

2. 配置选项

以下是一些常见的 .wslconfig 配置选项:

  • 设置 WSL 2 的内存和处理器限制
    1
    2
    3
    
    [wsl2]
    memory=4GB
    processors=2
    
    • memory: 限制 WSL 2 使用的最大内存量。
    • processors: 设置 WSL 2 可以使用的处理器核心数。
  • 配置 WSL 2 的默认发行版
    1
    2
    
    [wsl2]
    defaultDistribution=Ubuntu
    
    • defaultDistribution: 设置默认的 WSL 发行版。
  • 设置 WSL 2 的虚拟机磁盘大小
    1
    2
    
    [wsl2]
    diskSize=50GB
    
    • diskSize: 设置 WSL 2 虚拟机的磁盘大小。

3. 保存更改并重启

  1. 保存更改并关闭编辑器。
  2. 重启 WSL 以应用更改
    1
    
    wsl --shutdown
    

示例配置

示例 wsl.conf 文件

1
2
3
4
5
6
7
[automount]
enabled = true
mountPoint = /mnt
options = "metadata,umask=22,fmask=11"

[boot]
command = /usr/bin/your-startup-script.sh

示例 .wslconfig 文件

1
2
3
4
5
[wsl2]
memory=4GB
processors=2
defaultDistribution=Ubuntu
diskSize=50GB

通过这些配置文件,你可以灵活地调整 WSL 的行为和性能,以满足你的需求。如果有任何其他问题或需要进一步的帮助,请随时告诉我!