Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发的,有了他,就可以方便的使用linux命令和工具了。
在WSL1中,当我们在WSL上调用ls,ls 会调用 linux系统API(这个系统调用接口是 WSL 提供的,Windows 本身并没有这个接口),WSL 收到这个请求,明白了应用程序是想要知道目录的内容,于是把 Linux 的系统调用转换为 NT API 。NT 内核收到 WSL 的请求,将目录的内容返回给 WSL,WSL 再把返回的内容包装好后返回给 ls。WSL1相当于一个翻译者,来实现linux命令 和 windows命令 的相互“翻译”。
而WSL2包含自己的 Linux 内核,它具有完整的系统调用兼容性,这引入了一组可以在 WSL 中运行的全新应用程序,比如 Linux 版本的 Docker。
大多数程序员更习惯linux的命令,windows下的cmd命令和linux有很大区别,比较难记忆,而且很多人也使用不习惯。于是就有了一些在windows系统下使用linux命令行的替代方案,比如用git的bash,或者用powershell。但是 他们都不能使用 linux 下的工具,而且并不是所有的命令和linux一致 比如 powershell rm强制删除所带参数 是force 而不是f。但是有了WSL你几乎就相当于同时拥有了linux系统和windows系统,可以使用linux下的工具和命令,而且这是一种比安装双系统更方便简单的方式。
而且如果要连接你自己的linux服务器,不需要在额外的安装putty或者Cygwin,只需要在wsl中ssh就可以连接到服务器了。
第一步 打开控制面板 控制面板>程序>启用或关闭Windows功能,勾选“适用于 Linux 的 Windows 子系统”,然后点击确认(可能需要重启)
也可以直接在PowerShell中以Administrator权限run:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
第二步 打开windows应用商店 搜索 wsl > 点击按钮get the apps ,然后选择一个linux系统发行版本 下载 。
第三步 等待几分钟 安装成功 后 就可以打开他了
WSL可以很简单的和linux系统进行交互,如果使用wsl访问windows挂载盘 可以 通过路径 /mnt/{你要访问的盘名} 访问
$ ls /mnt
c d e
cd /mnt/c
你也可以在cmd和linux命令行中 来回切换
C:\Users\admin> wsl.exe → 进入 linux命令行
$ exit → 从linxu命令行 切换回cmd
你可以在 WSL 中直接启动 Windows 应用:
$ notepad.exe "C:\temp\foo.txt"
$ code . //在当前目录中打开vscode
$ explorer.exe . //以文件资源器视图打开当前目录
你还可以通过 pipes 与 Windows 程序通信:
复制内容至 Windows 剪贴板
$ cat foo.txt | clip.exe
也可以在直接在cmd下直接输入linux命令:
C:\Users\admin> wsl ls
在setting.json中添加:
“terminal.integrated.shell.windows”:“wsl.exe”
以后每次在vscode中打开终端就默认是linux命令行了
[1]https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/
[2]https://docs.microsoft.com/en-us/windows/wsl/install-win10
[3]https://www.linuxprobe.com/windows-ten-subsystem-linux.html
[4]https://blessing.studio/wsl-guide/