前面我们提到过如何用linux运用windows程序,那么windows下运行linux程序是否可行呢?答案时肯定的,不但可行而且方法多样,比如说:cywin、docker、虚拟机(VM,V-box等),另外也可以用编译器编译适配的windows程序。这些方法要么是借助容器技术或者虚拟机技术实现,要么是修改版的程序,可能会有些许的bug。从windows 10开始(Windows 10 版本 2004 及更高版本),微软添加了Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层,可以让你按原样运行 GNU/Linux 环境 – 包括大多数命令行工具、实用工具和应用程序 – 且不会产生传统虚拟机或双启动设置开销。
我们可以:
- 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
- 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
- 工具:vim、emacs、tmux
- 语言:NodeJS、Javascript、Python、Ruby、C/C++、C# 与 F#、Rust、Go 等
- 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
- 使用自己的 GNU/Linux 分发包管理器安装其他软件。
- 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
- 在 Windows 上调用 GNU/Linux 应用程序。
1)安装
可以在管理员 PowerShell 或 Windows 命令提示符中输入此命令,然后重启计算机来安装运行适用于 Linux 的 Windows 子系统 (WSL) 所需的全部内容
# 此命令将启用所需的可选组件,下载最新的 Linux 内核,将 WSL 2 设置为默认值,并安装 Linux 发行版(默认安装 Ubuntu)
wsl --install
如果你需要安装其他版本的linux,可以使用
# 或者wsl -l -o
wsl --list --online
然后用过如下命令安装你所需的linux
wsl --install -d <DistroName>
然后我们直接输入wsl即可进入子系统,后续的所有操作和linux下操作一样。更多可以参考:https://docs.microsoft.com/zh-cn/windows/wsl/
2)挂载磁盘
目前支持只能将整个磁盘附加到 WSL 2,wsl --mount
只能装载内核中原生支持的文件系统。
# 挂载
mount -f drvfs F: /mnt/f
# 卸载
umount /mnt/f
如此我们也可以调用各种linux下的小工具了。
参考资料:
1.https://docs.microsoft.com/zh-cn/windows/wsl/setup/environment
2.https://www.linux.com/training-tutorials/how-use-wsl-linux-pro/