终端自动完成“tab”没有按预期工作?

终端自动完成“tab”没有按预期工作?

我知道其他帖子已经讨论过这个问题,但我的问题似乎尚未完全解决,而且我还没有权限在这些帖子中添加评论 :(

列于 help.ubuntu.com > 使用终端 > 保存输入:

标签:“它自动完成任何命令或文​​件名”。

听取了以下建议后apt-get 自动完成我按两次 Tab 键后得到了结果,但没有命令或文件的自动完成。运行 Xubuntu 13.04。

答案1

启用智能完成

使用 sudo 和您最喜欢的编辑器编辑您的/etc/bash.bashrc文件。

通过删除行开头的 # 来取消注释以下行:

#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi

现在,您可以使用制表符补全功能来帮助您完成命令。

答案2

这肯定会让人沮丧!一种快速简便的解决方法是使用bash而不是sh

您可能默认使用/bin/sh而不是 作为 shell /bin/bash。我个人bash更喜欢它,因为它开箱即用地启用了 Tab 自动完成功能。

检查以确定你的 shell:

$ echo $SHELL
/bin/sh               <-- this may be your issue

启动bash以确保此问题已得到修复:

bash

现在尝试 Tab 自动完成。如果有效,则将默认 shell 从 更改为/bin/sh使用/bin/bashchsh用户的 (change shell) 命令:

chsh -s /bin/bash USERNAME

注销并重新登录。现在所有新 shell 都将具有 Tab 自动完成功能。

答案3

仅当您提供的首字母是唯一的并且没有任何其他可能的文件名时,它才会完成文件名:

假设你有两个文件file1expofile2expo在工作目录中-

那么使用gedit file<<tab>>将不起作用,因为它有两种可能的结果,而使用gedit file1<<tab>>将起作用。

如果你想列出所有以首字母开头的文件,xaa那么只需使用

ls "xaa" 

它将显示所有以 开头字符 的文件名 xaa

相关内容