Content:
windows有个功能叫Subsystem for Linux(简称WSL),可以实现在windows系统中直接安装Linux系统,包括:
- 在Microsoft商店中选择喜欢的系统和版本
- 可以使用像是
grep
,sed
,awk
, or other ELF-64 binaries的命令行工具 - 可以运行Bash shell和Linux命令行程序:
- Tools: vim, emacs, tmux
- Languages: NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, etc.
- Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- 在你的GNU/Linux distribution package manager中可以安装其他软件
- 使用Unix-like command-line shell可以唤醒windows应用
- 在windows中可以唤醒GNU/Linux applications
WSL 1 和 WSL 2 区别
Feature | WSL 1 | WSL 2 |
---|---|---|
Integration between Windows and Linux | ✅ | ✅ |
Fast boot times | ✅ | ✅ |
Small resource foot print | ✅ | ✅ |
Runs with current versions of VMware and VirtualBox | ✅ | ✅ |
Managed VM | ❌ | ✅ |
Full Linux Kernel | ❌ | ✅ |
Full system call compatibility | ❌ | ✅ |
Performance across OS file systems | ✅ | ❌ |
WSL2是windows可运行Linux内核的最新的虚拟化技术,而且兼容了绝大多数的WSL1用户体验。
- 系统均可以运行在WSL1和WSL2的架构。
- 系统均可以随时在WSL1和WSL2中升级或降级
从对比表可见,WSL2支持所有的Linux内核,可以使用最新的系统镜像。建议使用WSL2。
要求
系统要求:
windows 10
安装要求:
分为简单安装和手动安装两种:
简单安装要求:
- 加入了Windows Insiders Program
- Windows 10版本(OS build 20262 or higher).
- 使用管理员权限打开命令行
手动安装要求:
- 无
步骤
1. 简单安装:
只要符合上述要求,在命令行管理员模式下执行wsl.exe --install
即可
默认安装Ubuntu系统。如果要安装其他系统,则执行
wsl --install -d <Distribution Name>
查看可安装的系统
wsl --list --online
2. 手动安装:
2.1 激活Windows Subsystem for Linux功能
在管理员模式的PowerShell
,执行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.2 升级至WSL2(可选)
建议升级
检查运行WSL2的要求
- For x64 systems: Version 1903 or higher, with Build 18362 or higher.
- For ARM64 systems: Version 2004 or higher, with Build 19041 or higher.
激活虚拟机功能
在管理员模式的
PowerShell
,执行:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
完成后重启电脑
下载升级包并运行
WSL2 Linux kernel update package for x64 machines
如果是使用ARM64 machine, please download the ARM64 package instead.
如果不确定系统类型,在PowerShell输入
systeminfo | find "System Type"
获取。设置WSL2为默认版本
在管理员模式的
PowerShell
,执行:wsl --set-default-version 2
- 当安装新Linux系统时,就会使用默认版本
2.3 安装Linux系统
在Microsoft商店中搜索想安装的系统,并获取安装即可。
2.4 安装Windows Terminal终端(可选)
功能:可以打开多个标签,可运行Linux命令行,Windows命令行,PowerShell, Azure CLI等等
同样,也是在Microsoft商店搜索安装。
相关命令
检查WSL版本
wsl --list --verbose
设置系统的WSL版本
wsl --set-version <distribution name> <versionNumber>
是系统名称 是WSL版本,可选1或2
停止所有正在运行的Linux系统
wsl --shutdown
其他
1. 获取Linux系统的IP地址
在Linux系统命令行中输入以下命令,获取该系统运行在WSL上的IP:
$ ip addr | grep eth0
得到的结果可能是:
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 172.18.114.37/28 brd 172.18.114.47 scope global eth0
其中,172.18.114.37
就是该Linux系统的动态IP
- 该Linux系统与所运行的Windows组建了一个子局域网,原本windows所在局域网中的其他机器是无法直接通过该IP访问到Linux(除非在windows中设置规则:监听某个端口且该端口是绑定Linux系统的IP和端口,作为Linux和其他其他的媒介)
- 动态IP,每次重新启动Linux系统都会变。
2. Linux如何访问Windows磁盘中的文件
windows磁盘下的文件都被挂载到/mnt
目录路径下。
如果想跳转至C盘
$ cd /mnt/c
如果想查看F盘下github目录下的test.py脚本
cat /mnt/f/github/test.py
3. Windows如何访问WSL中的文件
启动PowerShell,输入
$ wsl
然后输入以下命令跳至Linux目录中(其他目录都可以,只要在Linux系统中即可)
$ cd ~
最后输入
$ explorer.exe .
此时windows系统会弹出资源文件管理器
4. Windows如何连接WSL的docker容器——MySQL镜像
在WSL中,在docker启动MySQL实例时要映射端口,譬如
$ docker run -p 3307:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
在windows下可以通过localhost:3307
这个就能访问到容器的MySQL
同理,其他容器只要暴露了端口,而该端口没有被其他windows程序占用,理论上就能访问。
- 在宿主机windows访问时,要使用
localhost
的方式,不要直接使用WSL的IP。
There are 0 comments