让 bash 自动补全工作

让 bash 自动补全工作

我有一个新镜像的 VPS 服务器。 Bash 选项卡完成和历史记录(通过箭头键)在 root 帐户上按预期工作,但在我的低权限帐户上完全不存在。我也无法在输入的命令中导航以使用箭头键修复拼写错误 - 我只是^[[D在终端上得到类似的信息。我.bashrc的是

# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

关于如何解决这个问题有什么想法吗?谢谢你!

答案1

根据您的描述,bash 的命令行版本功能都不起作用。我和muru在一起:最可能的解释是,实际上您运行的不是 bash,而是一些不同的 shell,例如 dash。请记住,这/bin/sh不是 bash — 某些发行版将 bash 安装为 bash /bin/sh,但 Ubuntu 没有。

检查您的登录 shell 是什么:

getent passwd $USER

如果该行以 结尾:/bin/bash,则您的登录 shell 是 bash。如果它以 结尾:/bin/sh,则您的登录 shell 是 dash,这是一个用于脚本编写的 shell,而不是用于交互使用。

运行chsh -s /bin/bash以将登录 shell 更改为 bash。注销之前,请确保验证您仍然可以在另一个终端上登录。

相关内容