终端会学习常见的拼写错误吗?

终端会学习常见的拼写错误吗?

这看上去是一个愚蠢的问题。

我使用的是 Ubuntu 15.10 和 GNOME Terminal 3.16.2。刚开始使用这个系统时,我经常输入“l”或“la”而不是“ls”来列出文件,然后会被告知这些不是有效命令。显然,我输入的“ls”是正确的。现在我注意到输入“l”和“la”与输入“ls”的效果相同。

这是怎么回事?终端是否已经学会了我常犯的错误,并创建了别名来解释这些错误,或者这是我在不知不觉中安装的新功能?

答案1

当您调用l或 时la,您基本上调用别名:

l='ls -lah'
la='ls -lAh'

您可以通过运行来检查系统中当前配置的所有别名alias。 拥有一些自我学习机制来记住您的拼写错误并进行修复可能会很好,但目前它只是预先配置的别名。

相关问题:Unix和Linux

答案2

Shell 本身没有为用户进行拼写检查的能力。您拥有的lal别名。在.bashrc文件中,您可以为任何命令设置别名。例如,如果我经常输入错误pwd命令来打印工作目录,我会在我的文件中使用这个.bashrc

alias pdw='pwd'

别名lla应该默认存在于 bash shell 中,我不明白为什么它们以前对您不起作用。如果您是具有不同管理员的计算机上的用户,那么他或她很可能禁用或启用了这些。

sl一个命令 ,它不是 Ubuntu 默认包含的,但当你输入错误时会显示蒸汽机车的动画(因此sl得名)ls。然而,这需要手动安装。

如果一个命令是其他命令的复杂组合,那么你可以使用函数,如下所示

sl()
{
  echo "You've mistyped ls again"
  echo "Don't rush" 
}

如果你正在编写脚本,你可以使用以下方法进行拼写检查(以及更多)外壳检查

相关内容