当前位置: 首页 > 工具软件 > WSL-Programs > 使用案例 >

WSL2常用操作

查锦程
2023-12-01

WSL2常用操作

常用操作

在CMD输入 wsl -h可以获取到常用指令信息,如:

  • 列出分发:wsl -l
  • 运行指定分发:wsl -d <分发>
  • 更改新分发的默认安装版本:wsl --set-default-version <Version>
  • 将分发设置为默认值:wsl -s <分发>
  • 更改指定分发的版本:wsl --set-version <分发> <版本>
  • 立即终止所有运行的分发及 WSL2:wsl --shutdown
  • 终止指定的分发(相当于关机):wsl -t <分发>
  • 注销分发并删除根文件系统:wsl --unregister <分发>
  • 将指定的 tar 文件作为新分发导入:wsl --import <Distro> <InstallLocation> <FileName>
  • 将分发导出到 tar 文件:wsl --export <Distro[分发]> <FileName[文件名,包含文件全路径]>
    例如:把分发CentOS7导出命令:wsl --export CentOS7 E:\CentOS7\rootfs.tar

WSL2开机启动

WSL2开机启动服务有两种实现方式(效果和方式不同):

  1. 方式一:

    • 前提条件:需在WSL2的CentOS中启用systemctl命令,具体参考请另一篇文章:Win10 WSL2-CentOS7开启systemctl命令

    • 和正常linux一样,在WSL2的CentOS中使用systemctl enable 服务名命令对服务启用开机启动;当WSL2开机后,已启用开机启动的服务会陆续启动,但是启动速度较慢;实测docker用这种方式开机启动大约需要6分钟左右;

    • 使WSL2随windows开机启动:

      • 新建文件:linux-start.vbs
      • 文件内容为(其中CentOS7为WSL2实例名,根据实际修改):
        Set ws = WScript.CreateObject("WScript.Shell")        
            ws.run "wsl -d CentOS7 -u root",vbHide '静默启动WSL2;此命令为开机运行WSL2分发,并隐藏命令行窗口在后台运行,进程名为wsl.exe;如需前台弹窗运行,去掉vbHide参数即可
        
      • 把linux-start.vbs放到C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录下以实现WSL2随Windows开机启动

      优缺点备注:

      • 优点:开机启动基本和正常linux一样,使用systemctl enable 服务名命令实现;
      • 缺点:启动用时较长。
  2. 方式二:

    • 首先创建后缀为wsl的文件 文件创建到/etc/目录下 命令sudo vim /etc/init.wsl

    • 编辑wsl文件 wsl文件支持shell脚本,这里只演示一个宝塔面板启动
      示例(宝塔开机启动):

      /etc/init.d/bt start #宝塔开机启动;不能使用systemctl命令,会报错
      
    • 授予init.wsl写入权限sudo chmod 777 /etc/init.wsl

    • 到这里liunx里的配置就完事了,但你会发现重启电脑后,liunx docker并没有启动,需要利用window的自启动shell脚本来实现docker启动,步骤如下:

      • 新建文件:linux-start.vbs
      • 文件内容为(其中CentOS7为WSL2实例名,根据实际修改):
        Set ws = WScript.CreateObject("WScript.Shell")        
            ws.run "wsl -d CentOS7 -u root /etc/init.wsl",vbHide '静默执行init.wsl中的命令;并隐藏命令行窗口在后台运行,进程名为wsl.exe;如需前台弹窗运行,去掉vbHide参数即可
        
      • 把linux-start.vbs放到C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup目录下以实现开机启动

      优缺点备注:

      • 优点:直接调用程序启动命令,启动速度快;
      • 缺点:不能使用systemctl start 服务名service 服务名 start命令实现;即使是按照文章Win10 WSL2-CentOS7开启systemctl命令在WSL2中启用systemctl命令也不行;猜测可能是因为刚开机,wsl2没有完成环境初始化的原因;这也从侧面解释了为什么方式一的开机启动需要五六分钟的原因。
 类似资料: