WSL:Windows Subsystem for Linux
学习文档(待更新)
WSL1
的支持
-
开启
WSL
支持按 Win+X,找到 Windows PowerShell (管理员),并复制执行命令。
# 该命令会激活WSL服务,然后需要重启系统 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
-
安装
WSL
发行版在 Windows 应用商店搜索
ubuntu
,选择自己喜欢的版本,安装即可。下载,安装之后,第一次打开会初始化一会;
然后设置个用户名,密码。
-
apt
换源sudo apt 是 Linux 操作系统中一个用于管理软件包的高级命令。
换源地址: ubuntu | 清华大学开源软件镜像站
# 执行下面命令,备份 apt 安装源 $ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # vim 编辑 sources.list $ sudo vim /etc/apt/sources.list
sources.list
中的替换内容由换源地址提供。 -
更新软件
# 更新软件源中的所有软件列表 $ sudo apt-get update # 更新软件 $ sudo apt-get upgrade
-
配置
SSH
服务器# 停止ssh服务 $ sudo service ssh stop # 移除 openssh-server $ sudo apt purge openssh-server # 下载 openssh-server $ sudo apt install openssh-server
然后需要配置 /etc/ssh/sshd_config,用 sudo 权限运行 vim 修改如下三个关键字
Port 22 # 这两行允许了 root 账户和密码登录 PermitRootLogin yes PasswordAuthentication yes
# 重启 ssh 服务 $ sudo service ssh restart # 查看 ssh 服务状态 $ sudo service ssh status # 设置密码 $ sudo passwd root
WSL2
的支持
-
启用 “虚拟机平台” 可选组件
# 以管理员身份运行 PowerShell dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启计算机,以更新配置
-
将
WSL 2
设置为默认版本# WSL 提供了版本转换工具,将 wsl1 转为 wsl2 wsl --set-version Ubuntu-22.04 2 # 将 WSL2 设置为默认版本 wsl --set-default-version 2 # 查看结果 wsl -l -v
常用指令
-
软件包管理
# 下载软件包 $ sudo apt-get install <package> # 卸载软件包 $ sudo apt purge <package>
常用服务
-
ssh
# 停止ssh服务 $ sudo service ssh stop # 移除 openssh-server $ sudo apt purge openssh-server # 下载 openssh-server $ sudo apt install openssh-server
然后需要配置 /etc/ssh/sshd_config,用 sudo 权限运行 vim 修改如下三个关键字
$ sudo vim /etc/ssh/sshd_config
Port 22 # 这两行允许了 root 账户和密码登录 PermitRootLogin yes PasswordAuthentication yes
# 重启 ssh 服务 $ sudo service ssh restart # 查看 ssh 服务状态 $ sudo service ssh status # 设置密码 $ sudo passwd root
-
docker
# 安装docker $ curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud # 启动Docker $ sudo service docker start # 产看Docker版本 $ sudo docker version
sudo usermod -aG docker shaw
是一个 Linux 命令,用于修改用户权限。这个命令的作用是将用户 Shaw 添加到名为 “docker” 的用户组中。
命令的各个参数解释如下:
sudo
:表示以超级用户权限运行此命令。在使用此命令时,需要输入当前用户的密码。
usermod
:用于修改用户信息的命令。
-a
:表示添加用户到指定组,这里是添加用户 Shaw 到 docker 组。
-G
:表示更改组,将用户 Shaw 的所属组更改为 docker。
总之,这个命令将把用户 Shaw 添加到 docker 组,使得 Shaw 可以使用 docker 相关的功能和命令。在执行此命令后, Shaw 无需使用 sudo 即可执行 docker 命令。
Windows和Linux之间的文件操作
-
Windows访问Linux文件
通过
\\wsl$
访问 Linux 文件时将使用 WSL 分发版的默认用户。因此,任何访问 Linux 文件的 Windows 应用都具有与默认用户相同的权限。 -
Linux访问Windows文件
在从 WSL 访问 Windows 文件时,可以直接使用
/mnt/{Windows盘符}
进入对应的盘中。$ cd /mnt/c
FAQ
1. WSL登录失败:未授权用户再次计算机上的请求登录类型
解决方法:
# 重启虚拟机 Get-Service vmcompute | Restart-Service
2. 让外界访问wsl中运行的docker镜像服务
以管理员权限运行:
netsh interface portproxy add v4tov4 listenaddress=<host_ip> listenport=8081 connectaddress=<ubuntu_ip> connectport=8081
3. WSL
设置默认用户
# /etc/wsl.conf
##############################################
[boot]
# 启用systemctl命令
systemd=true
[network]
# 设置虚拟主机的名称,可不设
hostname = ubuntu
[user]
# 启动的默认用户,设为root吧,不然以后命令都要加sudo有点麻烦
default = root