Tab completion在几乎任何命令行环境中都是非常有用的特性,无论您是在Linux上使用bashshell,在Windows上使用命令提示符或PowerShell,还是在macosx上使用终端窗口。
此功能可以极大地帮助您加快键入命令的速度。只需在键入命令、选项或文件名时单击Tab,shell环境就会自动完成您键入的内容或向您建议选项。
相关:使用以下8个技巧成为Linux终端超级用户
大多数Linux发行版默认使用的bashshell对tabe完成有很好的支持。
例如,假设您想运行firefox命令。您只需在终端中键入fir或fire,然后按Tab键—如果您的系统没有任何其他以这些字母开头的命令,Bash将自动填充firefox,您可以按Enter键运行该命令。
作为另一个示例,假设您希望运行Apt包管理器的命令之一。您可以键入apt-并按Tab键两次,以查看以apt-开头的命令列表。要运行其中一个命令,请继续键入该命令,然后再次按Tab键—例如,我们可以键入一个g,然后按Tab键,此时将显示apt get。
在键入文件名、目录和路径时,制表符完成尤其有用。您可以只键入文件名的开头,然后按Tab键,而不必键入可能包含空格和特殊字符的长文件名。
例如,如果有一个以字母L开头的长而复杂的文件名,则只需键入L并按Tab键即可自动完成。如果有多个以L开头的文件名,只需在再次按Tab键之前再键入一点文件名即可。
制表符完成甚至可以用于自动完成某些命令的选项。例如,使用apt get install命令安装包时,可以使用tab completion自动完成包的名称。这也可以帮助您搜索相关的包,并且在您不确定包的确切名称时非常有用。
尝试将tab completion与其他命令一起使用,以查看可以自动完成和不能自动完成的内容。
Bash还支持其他类型的完成。例如,可以键入~并按Tab键自动完成用户名,键入@并按Tab键自动完成主机名,或键入$并按Tab键自动完成变量。
Windows命令提示符不允许您对命令及其选项使用制表符完成。但是,它确实支持文件夹和文件名的制表符完成。
例如,我们可以打开命令提示符,键入cd D,然后按Tab键。由于默认情况下我们在用户文件夹中,选项卡完成将自动在cd桌面中归档,因此我们可以按Enter键将目录更改为桌面目录。这也有助于在特定文件名上运行命令。
相关:极客学校:学习在PowerShell中使用cmdlet
选项卡完成也适用于PowerShell。它可用于自动填充cmdlet、参数或文件路径的名称。
与bashshell不同的是,Windows要求您多次按Tab键来循环浏览可用的选项—它不会将所有选项都显示在一个列表中。这适用于命令提示符和PowerShell的选项卡完成功能。
macosx还包括bashshell,因此tab补全的工作方式与Linux上的工作方式一样。在键入命令、文件路径或选项时,轻触tab键-shell将自动填充其余部分或显示可键入的可用选项。
任何其他使用bashshell的操作系统都可以工作。制表符完成特性也应该在类似Unix的系统上的许多其他shell上工作。
如果您使用的是终端或命令行环境,那么应该使用tab completion。这很简单——基本上,就是在命令行中键入一些东西的同时点击Tab,让shell猜出你接下来要键入什么。这对于长而复杂的文件名特别有用,但它有助于处理许多不同的事情。
制表符补全几乎适用于任何有命令行环境的地方,所以下次需要键入命令时请尝试一下。
图片来源:Flickr上的斯文
...到“更新与安全”,然后在“Windows更新”下检查是否有任何挂起的更新。如果有更新,请保存所有重要文件,然后立即按重新启动。在此过程中,系统将重新启动。 ...
...用了“保持iTunes媒体文件夹井然有序”选项,则可以使用制表符完成来导航到艺术家、相册,然后导航到歌曲。启用此选项时,歌曲以曲目编号开头。 ...
...,echo命令将遵循转义字符,例如\n表示新行,\t表示水平制表符。 首先,键入以下内容以确保已设置该选项: shopt -s xpg_echo 然后在要传递给echo的字符串中包含\n: echo "This is line one\nThis is line two" 转义的新行字符强制在输出中换...
...何使用Bash和其他shell附带的cd命令。也许您以前有在其他操作系统上使用它的经验,不需要解释。它会改变当前的工作目录,对吗?还有什么要知道的? 好吧,比你想象的要多。这里有一些提示和技巧,可能会提高你的工作效率...
...过于简单化)Linux中的所有东西都是一个文件。实际上,操作系统中几乎所有的东西,从进程、文件、目录、套接字和管道,都通过文件描述符与内核进行通信。因此,尽管不是所有的东西都是一个文件,但大多数操作系统对象...
...拆分为一个新行,在其中使用了\n字符,并在其中**一个制表符。 echo -e "Here\vare\vvertical\vtabs" 与新行字符一样,垂直制表符将文本移动到下面的行。但是,与新行字符不同,垂直制表符不会从第0列开始新行。它使用当前列。 \b...
...入的内容,尝试解释和执行指令本身,将它们传递给构成操作系统的其他一些实用程序,或者查找与您键入的内容匹配的脚本或程序。 相关:Bash、Zsh和其他Linux shell之间有什么区别? 命令行是您键入的位置。它是shell在等待您...
...换“eml”)并节省一些时间。如果您键入缩写,然后点击制表符或空格,它将扩展到完整的替换文本。 一个简单的窍门是用一个词来代替自己。如果你的Mac或iPhone不允许你输入一个特定的单词(比如说脏话),你可以添加完整...
...能的键。默认为“回车”,但“结束”、“右箭头”、“制表符”和空格键也是选项。 最小字长:调整将单词添加到自动完成列表所需的字母长度。八个字母是个不错的数字,但你可以根据自己的喜好增减。 最大词条数:任何...