Bash

使 bash 自動完成工作

  • January 18, 2017

我有一個新重新映像的 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

關於如何解決這個問題的任何想法?謝謝!

根據您的描述,bash 的命令行版本功能都不起作用。我支持 muru:最可能的解釋是,實際上您不是在執行 bash,而是在執行一些不同的 shell,例如 dash。請記住,這/bin/sh不是 bash — 一些發行版將 bash 安裝為/bin/sh,但 Ubuntu 沒有。

檢查您的登錄外殼是什麼:

getent passwd $USER

如果該行以 結尾:/bin/bash,則您的登錄 shell 是 bash。如果它以 結尾:/bin/sh,則您的登錄 shell 是破折號,這是一個用於編寫腳本的 shell,而不是用於互動使用的 shell。

執行chsh -s /bin/bash以將您的登錄 shell 更改為 bash。在註銷之前,請確保驗證您仍然可以在另一個終端上登錄。

引用自:https://unix.stackexchange.com/questions/338025