答案1
这是Microsoft Terminal 的 GitHub 页面在 Windows 终端中wsl 配置文件的 StartingDirectory 设置问题 #592。 和不尊重事物是对某些事物的爱好。
实际上,Windows Terminal 在 WSL fs 路径下似乎startingDirectory
无法正常工作,因为该问题并不特定于$HOME
,它存在于所有文件夹中/
。
虽然user3140225 的方法是一个好的开始,但是DHowett-MSFT 的评论:
这也是在您的机器上使用 bash 的所有其他事物中产生奇怪和意外行为的好方法。
答案2
您可以执行以下操作:
打开 WSL 并
~/.bashrc
使用以下命令编辑文件nano
:nano ~/.bashrc
在文件底部添加以下行:
cd ~
Ctrl按+O再按Ctrl+保存并关闭文件X。
最后,重新启动 WSL。
答案3
看到这里的一些答案,并且知道这是一个老话题,我仍然想回应那些声称放入cd ~
文件的人.bashrc
。虽然这有效,但这意味着每个交互式非登录 shell 都会.bashrc
先读取。这意味着无论是第一个打开的终端,还是每个后续终端/bash 进程都是从初始“登录”终端生成的,您最终都会进入主目录。
您可以通过编辑命令来测试这一点.bashrc
。cd ~
退出 Windows 终端。然后再次启动 Ubuntu。您将进入主目录。现在,导航到该终端会话内的其他目录,然后执行“bash”。您最终将进入主目录,这可能不是您想要的。
如果您使用 Visual Studio 代码,也会发生同样的问题。在 VSC 中,您可以创建终端会话。许多人希望该会话在他们启动 VSC 的任何目录中打开(主要是他们正在处理的项目)。但是,这将执行命令,这.bashrc
意味着您最终将进入主目录。
.bashrc
适用于特定于 Bash shell 的命令。因此,将别名和其他与 Bash 相关的函数放入其中.bashrc
是很好的。
放置 的更好位置cd ~
是文件中.profile
。这样,在初始终端 bash 启动时,它将执行cd ~
中的命令.profile
。如果您随后从其他目录启动 VSC,则当您在 VSC 中创建终端会话时,它将保留在您启动 VSC 的目录中,这是大多数程序员所期望的。
完成此操作并cd ~
从 中删除后.bashrc
,启动一个新的终端会话。您将进入主目录。然后,导航到另一个目录并输入“bash”。您将启动一个新的 bash 会话,但仍停留在您上次所在的目录中。
如果您在 Windows 终端内启动新的 Ubuntu 终端,您将回到主目录,因为这是一个全新的终端登录会话。
希望有帮助!