win10 win7 (win10 wifi)

WSL挂载Windows磁盘

在Linux系统中我们可以使用fdisk -l来查看磁盘,使用mount /dev/sdxxxx等命令来挂载磁盘,但是这些命令在WSL系统下是有些变化的,我们需要使用指定的命令进行挂载/卸载磁盘

sudo mount -t drvfs G: /mnt/e
# 此处的-t作用为指定挂载类型,使用G:形式的windows盘符而不使用/dev/sdxxx因为WSL系统为模拟层,而非真实系统,所以WSL下是没有/dev/sdxxx形式的磁盘的
# 同样,卸载的命令使用的是umount,基本和Linux相同

WSL程序重启

若想要重启WSL程序,则需要使用管理员权限运行cmd/powshell程序,再执行以下命令进行重启

# WSL-Ubuntu18.04 LTS 重启方法
# 以管理员权限运行cmd
$ net stop LxssManager  //停止
$ net start LxssManager //启动

开机自启服务

使用VBS编写脚本 使WSL 开机自启动一些服务

wls_rclocal.vbs

Set ws = WScript.CreateObject("WScript.Shell")
cmd = "C:\Windows\System32\bash*ex.e** -c ""bash /home/init.sh"""
' 运行命令不显示cmd窗口
ws.Run cmd, 0, false
Set ws = Nothing
WScript.quit

将这个VBS脚本放入到启动文件夹中 开机自启 自动执行 /home/init.sh shell 脚本

然后去编写你自己的shell 脚本, 如下:

#! /bin/bash

# 启动ssh服务(主要为第一个sudo执行的脚本需要输入密码,所以第一个为特殊服务)
sudo -S service ssh start <<EOF
 这里是你的密码
EOF

# 下面是你需要启动的服务
sudo service nginx start
sudo service php7.1-fpm start
sudo service php7.2-fpm start
sudo service redis-server start
sudo service mysql start

# 运行bash*ex.e**不退出
while true
do
    sleep 600
done

wsl2 改变系统文件存放位置

# 查看WSL分发版本
wsl -l --all -v
# 导出分发版为tar文件到d盘【假设上一步获取到的wsl为Ubuntu】
wsl --export Ubuntu d:\wsl-ubuntu.tar
# 注销当前分发版
wsl --unregister Ubuntu
# 重新导入并安装WSL在d:\wsl-ubuntu
wsl --import Ubuntu d:\wsl-ubuntu d:\wsl-ubuntu.tar --version 2
# 设置默认登陆用户为安装时用户名
ubuntu2004 config --default-user <用户名>
# 如果此命令报错了,不要慌,先去 C:\Users\<用户名>\AppData\Local\Microsoft\WindowsApps 目录看下是不是有个ubuntu2004*ex.e**文件,如果是叫其他名字的话直接更换为其他名字即可
# 若还是报错,则说明此目录没有在PATH变量中,直接进入到此目录进行执行即可
# 删除tar文件(可选)
del d:\wsl-ubuntu20.04.tar
# 停止Linux子系统
wsl -t Ubuntu
# 切换WSL为新的Linux子系统【假设切换的系统为UbuntuE】
wslconfig /setdefault UbuntuE

wsl2 配置错误导致无法提权时

有时我们需要使用 sudo / su 等进行提权,以便我们能使用普通用户身份,但有时我们修改了配置时,导致执行 sudo 出错,或者 su 出错,甚至没有配置 root 密码时,我们可以在 Windows PowerShell 中执行以下命令用以切换用户进行恢复配置文件

echo "修改默认用户为root,此处的debian*ex.e**修改成响应的wsl子系统名称即可"
debian*ex.e** config --default-user root
echo "修改完以后再将用户切换回来"
debian*ex.e** config --default-user xxxx
echo "其他错误可以使用run方法进行快速编辑修复"
debian*ex.e** run df -h

wsl2 IP地址查看

# 查看Windows系统的IP
$ nameserver 172.22.176.1
# 查看WSL2系统的IP
# 如果有其他网卡请自行切换,一般都是用的eth0网卡
$ ip addr | grep inet | grep eth0 | cut -d " " -f 6 | cut -d "/" -f 1

debian 系统TAB补全

  1. 安装补全插件
$ sudo apt-get install bash-completion
  1. 编辑配置文件 ~/.bashrc
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi