当我bash在 Linux 的 Windows 子系统上启动时,它会将我放到目录中
/mnt/c/Users/<username>
Run Code Online (Sandbox Code Playgroud)
当我ls看到这个目录时,我看到了使用 Windows 文件资源管理器时可以看到的目录Desktop、Documents等C:\Users\<username>。由于这是bash程序开始的地方,我希望这是我的主目录,但是当我输入cd或cd ~我被带到
/home/<username>
Run Code Online (Sandbox Code Playgroud)
其中包含我希望在 Linux 机器的主目录中找到的我的.bashrc, .profileetc. 文件。此外,cd ../..从这里进入我可以看到目录bin,etc等等,这在 Linux 机器上再次如预期。
关于这一切,我有两个问题:
/mnt/c/Users/<username>与什么相比C:\Users\<username>?似乎它们是同一个——那是/mnt/c/什么?/home/<username>使用 Windows 文件资源管理器查看文件?并不是说我真的想要——我只是想了解一下 Windows 如何组织 Linux 子系统。当我使用适用于 Windows 10 的 WSL 时,我无法 ping 通任何网站。我在 WSL 中运行 Ubuntu 18.04。
--- google.com ping statistics ---
14 packets transmitted, 0 received, 100% packet loss, time 38567ms
Run Code Online (Sandbox Code Playgroud)
这是当我尝试 ping google.com 时的结果,我使用的是带 IPv4 的 Windows 10,禁用了 IPv6。我可以在常规命令提示符下正常 ping google.com,无需使用 wsl
我正在运行 Avast internet security,当我从 ubuntu/WSL 实例内部 ping google 时,这就是我所看到的。
1:
我需要做什么才能在 WSL 中启用 ping
我最初在 Stack Overflow 上问过这个问题,但我认为超级用户可能更合适。
我在 WSL(Linux 的 Windows 子系统,Ubuntu 16.04)上使用 Docker 时遇到了最奇怪的情况。我试图将安装/home/username(或只是$HOME为了方便)绑定为容器中的卷,而不是在容器中查找我的主目录的内容,而是完全获得一些其他卷。
奇怪的是,每当我尝试绑定 mount$HOME或/home/username. 如果我触摸一个新文件,它会出现在我安装到的所有其他容器中$HOME。所有其他绑定安装到任何其他目录都可以正常工作。
例如,这些都共享同一个神秘文件夹:
docker run -it --rm -v /home/username:/test alpine sh
docker run -it --rm -v $HOME:/test alpine sh
docker run -it --rm -v $HOME:/test -v $HOME:/test2 alpine sh
Run Code Online (Sandbox Code Playgroud)
当我执行 a 时,docker volume ls没有名为 的卷/home/username,因此排除了意外拥有同名的 docker 托管卷的情况。
我正在安装的这个神秘卷是什么,为什么 docker 没有$HOME正确安装我的目录?