.bashrc 在 WSL 上的位置是什么?

What is the location of .bashrc on WSL?

我正在为 Linux 使用 Windows 子系统,并试图找到我的终端的 .bashrc 文件。

其他线程通常表示两个位置之一:

C:\Users\USERNAME\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\{LINUXUSER}\

C:\Users\USERNAME\AppData\Local\Lxss\home\USERNAME

在我的机器上,Local 文件夹不包含 Lxss 子目录,因此排除了第二个选项,并且 home 文件夹不包含任何内容,因此排除了第一个选项。我在哪里可以找到 .bashrc?

显然 WSL 默认不创建用户。

一个可以设置如下

$ sudo adduser newuser # new user to play with, creates in /home/newuser like your default
$ sudo cp -aR /home/newuser /mnt/c/Users/<you>
$ sudo echo "echo 'running bashrc'" >> /mnt/c/Users/<you>/newuser/.bashrc
$ sudo usermod -d /mnt/c/Users/<you>/newuser newuser

完成后,您可以在该用户的主目录中编辑 .bashrc 配置文件

ubuntu 看到的 /mnt/c/Users/<you>/newuser/.bashrc 或 Windows

看到的 C:\Users\<you>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\newuser\.bashrc

或者,您可以在 C:\Users\<you>

中放置 .bash_profile,而不是创建 ubuntu 用户

查看此线程了解更多信息:https://github.com/Microsoft/WSL/issues/2612

@quantumbutterfly 的回答不正确。 github 上的链接线程与人们发现他们的 .bashrc 在移动他们的主目录后不是 运行 有关。

WSL 确实创建了一个默认用户。您将其作为设置的最后一部分。

您应该能够启动 WSL 会话并在主目录 (~) 中创建 .bashrc

如果您想知道该文件在 Windows 中的位置,只需键入以下内容: wslpath -aw ~.

如果您在移动您的主目录后无法获取您的 .bashrc 来源,您可能只需要 quantum 的 post 中引用的 usermod

其他解决方法包括:

  • 在您的主目录中创建一个 .bash_profile 并在其末尾包含 source ~/.bashrc
  • 编辑bash on Ubuntu on Windows 快捷方式并在命令末尾添加--rcfile ~/.bashrc。例如:C:\Windows\System32\bash.exe ~ --rcfile ~/.bashrc