如果我开始输入一个命令,比如apt-g
在 hiting 之后tab,shell 会将命令完成为apt-get
,但是对于命令的第二部分install
,比如,如果我输入一些字符insta
,比如 hiting tab,则不会将其完成为install
。
另一个例子:我输入后sudo
点击tab并没有完成任何事情。例如:sudo apt-ge
[ tab] 什么都没有。
我使用 mini iso(40MB 网络安装程序)安装了 Ubuntu,所以也许我错过了一个配置!
我已将此代码添加到我的代码中.bashrc
但它仍然不起作用:
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
我还检查了的权限.bashrc
以及它的-rw-r--r--
。
.bashrc
我还使用更改后的源代码source .bashrc
将更改应用到新环境,但仍然没有效果。
我使用xfce4-terminal
,所以我认为它可能是终端而不是 bash。
但编辑:
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
并改变:
<property name="<Super>Tab" type="string" value="switch_window_key"/>
到:
<property name="<Super>Tab" type="string" value="empty"/>
也没什么区别。
答案1
bash-completion
是一组 bash 脚本,可以实现特定命令的定制完成。
这不仅适用于文件和目录,还适用于命令。因此,您输入部分命令,然后通过点击,Tab我们会自动完成命令。
安装
步骤1:安装 bash-completion
$ sudo apt-get install bash-completion
有时如果我们通过以下命令重新安装它,它就会起作用:
$ sudo apt-get install --reinstall bash-completion
第2步:.bashrc
在文件中启用 bash-completion
打开你的gedit ~/.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
重要的:更改文件后,您需要使用~/.bashrc
或source ~/.bashrc
重新打开终端。现在应该已经修复了。
答案2
答案3
您可能还处于不支持自动完成的 shell 中(例如:Bourne Shell | SH)。如果您希望 BASH 自动完成,则需要切换 shell,例如使用以下命令切换到 BASH(Bourne Again SHell)
chsh -s /bin/bash
答案4
就我而言,我试图执行一个脚本./myScript.sh
,但输入./my[tab]
无法自动完成。
我必须为该文件添加执行权限并且自动完成功能才能起作用。