wsl 提供五种互不依赖的 linux 命令运行方式:一、windows 终端启动交互式 shell;二、powershell/cmd 中单次执行命令;三、资源管理器路径中直接启动并映射目录;四、配置默认发行版与启动参数实现一键直达;五、wsl.exe 直接调用 linux 二进制文件。

如果您已在 Windows 11 中成功安装并初始化了 WSL,但尚未掌握如何在不同场景下运行 Linux 命令,则可能是由于未区分交互式会话与单次调用的执行机制。以下是多种可靠、互不依赖的运行方式:
一、通过 Windows 终端启动完整 Linux 交互式 Shell
此方式启动一个持久的、登录态的 Linux 用户环境,可连续执行任意命令、使用历史记录、启动后台进程,并支持 bash/zsh 特性(如管道、重定向、别名等)。
1、点击任务栏搜索框,输入 Windows Terminal 并以普通用户身份打开。
2、点击窗口右上角下拉箭头,从列表中选择已安装的发行版(例如 Ubuntu-22.04)。
3、终端自动加载该发行版默认 shell,此时可直接输入 ls -la /home、grep -r "main" . 等任意 Linux 命令。
二、在 PowerShell 或 CMD 中执行单条 Linux 命令
此方式无需进入交互式 shell,适用于从 Windows 原生命令行快速调用 Linux 工具(如 grep、awk、sed),命令执行完毕后立即返回 Windows 提示符,适合脚本集成与临时调试。
1、在 PowerShell 中运行 wsl --list --verbose,确认目标发行版名称及状态为 Running。
2、执行单条命令,例如列出 Linux 根目录内容:wsl ls /。
3、若需指定非默认发行版,添加 -d 参数:wsl -d Debian cat /proc/version。
4、如需以 root 权限运行,使用 -u root:wsl -u root df -h。
三、在文件资源管理器当前路径中直接启动 WSL 并映射工作目录
此方式将当前 Windows 浏览路径自动转换为对应 Linux 路径(位于 /mnt/盘符/子路径),避免手动 cd 切换,特别适用于对当前项目目录执行 git、chmod、make 等操作。
1、打开文件资源管理器,导航至目标文件夹(例如 D:\Projects\myapp)。
2、点击地址栏,删除原有路径,输入 wsl 后按回车。
3、终端自动启动并切换至映射路径:/mnt/d/Projects/myapp。
4、在此终端中可直接运行 git status、chmod +x deploy.sh 等命令。
四、在 Windows 终端中配置默认发行版与启动参数实现一键直达
此方式通过预设默认用户、工作目录和 shell 类型,消除每次启动时的手动切换开销,提升日常开发连贯性,尤其适合多发行版共存或需固定身份运行的场景。
1、以管理员身份运行 PowerShell,执行:wsl --set-default Ubuntu-22.04。
2、为该发行版设置默认登录用户(假设用户名为 devuser):ubuntu2204 config --default-user devuser。
3、修改 Windows 终端配置文件(settings.json),在对应配置项中添加:\"startingDirectory\": \"/home/devuser/workspace\"。
4、重启 Windows 终端,点击 Ubuntu 标签页即可直接进入指定用户与目录的 shell。
五、通过 wsl.exe 直接调用 Linux 可执行文件并传递参数
此方式绕过 shell 解析层,直接加载 Linux ELF 二进制,适用于需要精确控制环境变量、规避 shell 内建命令干扰或嵌入到批处理中的高阶用例。
1、确认目标程序路径存在于 Linux 文件系统中,例如 /usr/bin/python3。
2、在 PowerShell 中执行:wsl /usr/bin/python3 --version。
3、若需传入含空格的参数,使用引号包裹:wsl /bin/sh -c \"echo 'Hello from WSL' > /tmp/msg.txt\"。
4、结合 Windows 路径传参时,必须转换为 Linux 路径格式:wsl /usr/bin/tail -n 10 /mnt/c/Users/Admin/logs/app.log。











