WSL的全称是Windows Subsystem for Linux
Windows 10在开发者模式下可以使用linux子系统,这个子系统需要在Microsoft Store中下载安装
如果你已经在 Windows 10 中使用多个 Linux环境,则可以在不同版本之间进行切换使用,还可以为 WSL 设置一个默认的 Linux 发行版以方便日常使用。
我目前装了两个子系统,Ubuntu18.04和Kali,启动起来很方便,在命令行下输入bash
或wsl
就进到了默认子系统ubuntu,但我想要进入Kali系统,去点击Kali的快捷方式是可以进入的,这不是我想要的,我想应该是可以通过命令的方式启动任何子系统,就像Mac系统一样。
1. 启动多个子系统
- 查找子系统的启动命令,通过命令来启动多个子系统
通过Microsoft Store安装的应用的安装位置是
C:\Program Files\WindowsApps
在这个目录下找到我的两个linux系统的启动exe文件
ubuntu1804.exe
kali.exe
在命令行下启动Ubuntu 18.04 TLS的命令是ubuntu1804
,启动Kali-linux的命令是kali
- 通过点击菜单的快捷方式来启动多个子系统
采用这种方式的比较少,因为默认启动的shell工具并不好用
2. 设置默认启动的linux子系统
win10 提供了wslconfig.exe来管理WSL默认运行的 Linux 发行版。
- 使用
wslconfig /list
来显示安装的全部子系统,在列表中会标注哪个系统是默认的
> wslconfig /list
适用于 Linux 的 Windows 子系统:
Ubuntu-18.04 (默认)
kali-linux
对 Windows 上的 Linux 子系统进行操作管理
用途:
/l, /list [/all]
列出已注册的分发版。
/all - 有选择地列出所有分发版,包括
当前正在安装或卸载的分发版。
/s, /setdefault <DistributionName>
将该分发版设为默认。
/t, /terminate <DistributionName>
终止分发。
/u, /unregister <DistributionName>
取消分发版注册。
/upgrade <DistributionName>
将分发版升级至 WslFs 文件系统格式。
- 设置默认子系统
要更改默认的 Linux 发行版,请运行以下命令,其中 Name 是 Linux 发行版的名称:
wslconfig /setdefault Name
如:wslconfig /setdefault kali-linux
在命令行下执行wsl
或bash
就会进入默认的子系统
3. 开始使用
- xshell连接ubuntu
Win10中安装Ubuntu子系统后默认是没有开启SSH服务的,需要手动配置开启
vi /etc/ssh/sshd_config
# 如果文件不存在说明尚未安装,则执行安装
apt-get install openssh-server
Port = 22 # 默认是22端口,如果和windows端口冲突或你想换成其他的否则不用动
#ListenAddress 0.0.0.0 # 如果需要指定监听的IP则去除最左侧的井号,并配置对应IP,默认即监听PC所有IP
PermitRootLogin no # 如果你需要用 root 直接登录系统则此处改为 yes
PasswordAuthentication no # 将 no 改为 yes 表示使用帐号密码方式登录
主要配置以上几项即可
然后启动 ssh 服务
service ssh start
如果提示 sshd error: could not load host key 则需要重新生成 key
dpkg-reconfigure openssh-server
查看服务状态
service ssh status
# * sshd is running 显示此内容则表示启动正常
设置root密码
passwd root # 设置下密码
不要忘了,还要配置防火墙开启端口才能被其他PC访问
ssh地址使用 localhost,127.0.0.1,192.168.x.x 等服务器的IP都可以连接
这样 SSH 服务就配置好了,不过注意WIN10重启后,需要重新bash进入子系统手动启动 ssh 服务才可以使用,以后再试试下配置自动启动吧
- 共享win10系统文件-开始开发
进入系统查看 /mnt 目录 ,该目录为win10系统下的共享文件目录,例如开发:
ln -s /mnt/c/dev/ubuntu ~/ubuntu