Jak*_*xon 14 command-line windows directory windows-subsystem-for-linux json
我从 Windows 10 内的 Microsoft Store 安装了 Windows Terminal 和 Ubuntu(我不知道这是 WSL 版本 1 还是版本 2。wsl -l -v
命令失败。)。
我的默认目录设置为正确的目录,但它始终以 root 身份打开。我该如何修复此配置?
Kul*_*lfy 15
这是Windows 终端中Microsoft 终端的 GitHub 页面上作为wsl 配置文件 #592 的开始目录设置问题提出的问题。和不尊重的事情是有些东西的爱好。
实际上,startingDirectory
Windows 终端似乎在 WSL fs 路径下不能很好地工作,因为该问题并非特定于$HOME
,它存在于/
.
虽然user3140225 的方法是一个好的开始,但根据DHowett-MSFT 的评论:
这也是在您的机器上使用 bash 的所有其他内容中获得奇怪和意外行为的好方法。
由于在 Ubuntu 的配置文件中您提供了命令行wsl.exe -d Ubuntu
. 此命令行调用 WSL 并要求它启动在当前目录中完成的“Ubuntu”,即如果您wsl.exe -d Ubuntu
在 Windows 桌面中运行,Ubuntu 将在 Windows 桌面上启动。
作为解决方法,您可以修改命令行并使用以下方法之一。
由于 WSL 专门用于 Linux,因此可以预期Tilde Expansion。因此,您可以在命令行中指定“起始目录”,并将以下内容用作命令行的值。
wsl.exe ~ -d ubuntu
Run Code Online (Sandbox Code Playgroud)安装 Ubuntu 应用程序后,它会自动注册ubuntu
命令。因此,ubuntu
命令将调用 Ubuntu 应用程序。这样做的好处是它总是从$HOME
. 因此,您可以将命令行的值更改为
ubuntu
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用的是 Ubuntu 18.04 或 16.04 应用程序,命令会相应地有所不同。以上仅适用于 Ubuntu 应用程序。
如果您对更改命令行感到不舒服,您仍然可以通过修改startDirectory
为
"startingDirectory":"//wsl$/Ubuntu/home/jake/"
Run Code Online (Sandbox Code Playgroud)
致谢: caksoylar 的评论
打开 WSL 并cd
转到您的主目录:
cd ~
Run Code Online (Sandbox Code Playgroud)
然后使用nano
编辑您的.bashrc
文件:
nano .bashrc
Run Code Online (Sandbox Code Playgroud)
在文件底部添加以下行:
cd ~
Run Code Online (Sandbox Code Playgroud)
最后,重启 WSL。