在Windows 10中,我使用的是Linux子系统。我首先以管理员身份打开一个cmd终端,然后bash
在cmd终端中启动,然后使用bash shell。
有时我的 bash 在终端运行时会挂起。
例如,在 Windows 中用某个软件打开一个文件时,我尝试在mv fileParentDir fileParentDirnew
bash 中重命名该文件的父目录,然后 bash 就会挂起。如果我强制关闭 bash 终端,然后重新打开一个新的 cmd 终端重新启动bash
,命令bash
也会挂起。可以通过重新启动 Windows 来解决此问题。
有没有解决挂起问题的方法,而不是重新启动 Windows?
我谷歌了一下,有人说多个分区文件可能是原因。但我只使用一个分区和分区文件。
谢谢。
答案1
注意: 此错误的修复程序现已公开发布。如果您仍遇到此问题,请确保 Windows 10 是最新版本。
这是一个已知问题,显然,您必须重新启动计算机才能恢复:
问题 671 - mv 空子文件夹导致死锁 - BashOnWindows GitHub。
该问题已于 8 月份在 Windows Insider Preview Build 14901 中修复。
Windows 上的 Ubuntu 上的 Bash - 发行说明(内部版本 14901)
Windows 10 周年更新发布后的第一个 Insider 版本。
有关版本 14901 的一般 Windows 信息,请访问 Windows 博客。要跟踪或报告问题,请访问我们的 Github 页面。
$ mv a/c/ a/b/
修复了尾部斜杠问题,现在可以执行以下等命令
解决方案:
- 安装任何 Windows Insider Preview Build 14901 或更高版本
- 等待周年更新发布
- 避免使用以斜杠结尾的命令行参数。
答案2
我也遇到了这个问题。我的 PC 已加入域,我认为这是问题的一部分。
运行命令时,按下“Enter”后,shell 会挂起,它会告诉我(有时)找不到我的“主机名”。我注意到每次使用 sudo 或我期望 DNS 发挥作用时都会发生这种情况。
我运行了以下命令:
# hostname --short
host
hostname --domain
[error message]
因此我决定检查主机名文件并确保我的 FQDN 已设置(但实际上并未设置)
/etc/hostname
一旦我将其设置为 host.domain.com,我就会运行以下命令:
sudo hostname -F /etc/hostname
运行命令后我不再遇到任何挂起的情况,也不再抱怨找不到主机名。我不确定您是否在域中,但如果在,可能值得检查一下。
注意:出于某种原因,每次打开 bash 时我都必须这样做。这真的很令人沮丧...
另一点说明:我发现最好以管理员身份运行 bash。如果不这样做,你甚至无法使用 ping。