我不太喜欢 Linux,我有以下疑问:一个客户端为我提供了一个 Ubuntu 18.04.3 LTS 虚拟机,我通过 SSH 访问它。(我使用 MobaxTerm 作为 SSH 客户端,但这应该不是问题。)使用的 shell 是sh
.
问题是在 shell 中,自动完成功能没有像我预期的那样使用Tab密钥。
它只是简单地放置了经典的制表符空白。
为什么?如何更改此配置?
我不太喜欢 Linux,我有以下疑问:一个客户端为我提供了一个 Ubuntu 18.04.3 LTS 虚拟机,我通过 SSH 访问它。(我使用 MobaxTerm 作为 SSH 客户端,但这应该不是问题。)使用的 shell 是sh
.
问题是在 shell 中,自动完成功能没有像我预期的那样使用Tab密钥。
它只是简单地放置了经典的制表符空白。
为什么?如何更改此配置?
sh
由dash
Ubuntu 提供。许多 shell,包括bash
和zsh
,都具有易于交互使用的复杂功能。dash
故意非常小,并且不提供此类功能。特别是,它不提供选项卡完成。即使是精简的 Ubuntu 系统通常也已
bash
安装,因为它被认为是必不可少的包——我们应该能够假设它即使在另一个包依赖它的情况之外也存在。通常bash
是 Ubuntu 上的默认用户 shell——即新用户默认获得的登录 shell——尽管可以重新配置。我建议您使用
bash
或其他易于交互使用的 shell。您可以bash
通过运行以下命令查看该 VM 中是否可用:假设您
$PATH
的设置合理,bash
如果可用,它将运行。您可以确保选项卡补全在bash
-- 它应该工作,但没有理由不检查 -- 然后通过以下两种方法之一在未来获得标签补全:bash
在需要制表符完成和其他bash
功能时运行。bash
您可以使用该chsh
命令将用户帐户的登录 shell 更改为。bash-completion
请注意,通常还会安装一个名为的单独软件包。这提供了可编程的制表符补全——即根据上下文变化的制表符补全,例如,知道命令的标志和其他语法。有可能已经bash
安装但没有bash-completion
。(要了解是否安装了任何特定的包 -
bash
、bash-completion
或其他任何东西 - 您可以使用。有关您可以使用的包的更多信息和。)apt list package-name
apt show package-name
apt policy package-name