怎样在 Linux 中更正以前的控制台命令中的错误和拼写错误

您是否曾经在不知不觉中执行了一个带有拼写错误的命令? 好吧,您可以简单地按向上/向下箭头来调出命令历史记录,找到拼写错误的命令,然后编辑错字,最后重新运行它。 这是我们大多数人通常会做的! 但是,还有其他方法可以修复先前输入的命令中的拼写错误。 在本教程中,我们将看到所有可能的方法来纠正 Linux 和 Unix 中先前控制台命令中的错误。

免责声明:

这篇文章包含一个 NSFW (工作不安全),以及 不寻常的词 在某些地方。 即使我稍微掩盖了这个词,我也无法完全避免它。 由于无法排除该词,如果这篇文章让您感到不舒服并且我以任何方式冒犯了您,请提前接受我的道歉。

内容

  1. 1. 使用 ‘thef*ck’ 应用程序更正先前控制台命令中的错误
    1. 1.1。 安装
    2. 1.2. 配置
    3. 1.3. 用法
  2. 2.使用Fix更正命令中的错误
    1. 2.1。 在 Linux 中安装修复程序
    2. 2.2. 用法
  3. 3. 用插入符号纠正拼写错误的 Bash 命令
  4. 4.更正使用cd命令时的拼写错误
  5. 奖励 – 在运行缺少的命令时建议安装包
  6. 结论

1. 使用 ‘thef*ck’ 应用程序更正先前控制台命令中的错误

f*ck 实用程序用于纠正以前在 Linux 中执行的命令中的错误和拼写错误。

您是否匆忙运行了一个拼写错误的命令? 您是否忘记添加 sudo 在命令中? 没问题! 此应用程序将自动显示先前执行的命令的更正命令!

您可以选择正确的命令并按 ENTER 来运行它。 无需浏览命令历史记录来手动更正命令中的错字!

这个应用程序的开发者从一个 鸣叫 并制作了这个很酷的应用程序。 它是用 Python 语言编写的。 它是一个开源应用程序,其代码可在 GitHub 上公开获得。

1.1。 安装

我们可以使用以下任一方式安装它 画中画 包管理器或发行版的默认包管理器。

确保你有 安装画中画.

安装 PiP 后,运行以下命令进行安装,如下所示:

$ pip3 install --user thefuck

这将安装最新的可用版本。

它还为许多 Linux 和 Unix 发行版打包,因此您可以使用发行版的默认包管理器安装它。 请参阅项目的 GitHub 页面(最后给出)以了解怎样使用 OS 包管理器安装它。

1.2. 配置

建议在您的 .bash_profile, .bashrc, .zshrc 或其他启动脚本。

$ nano ~/.bashrc

添加以下行:

eval $(thefuck --alias fixthis)

在这里,我使用了“fixthis”作为别名。 您可以使用任何您想要的别名。

Ctrl+o 和 ENTER 保存文件和 Ctrl+x 到 close 它。

运行以下命令以更新更改:

$ source ~/.bashrc

1.3. 用法

‘fixthis’ 基于一组内置规则工作。 可以找到启用规则的完整列表 这里. 您也可以创建自己的规则。

运行输入错误的命令时,它将尝试将前一个命令与规则匹配。 如果找到匹配项,则使用匹配的规则创建一个新命令并执行。

让我们看几个例子。

我将以普通用户身份使用以下命令更新我的 Manjaro 系统:

$ pacman -Syu

样本输出:

error: you cannot perform this operation unless you are root.

如您所见,上述命令显示权限错误。 因为,我没有添加 sudo 在命令前面。

无需添加 sudo 并重新运行命令。 您所要做的就是运行如下所示的“fixthis”命令:

$ fixthis

现在,它将列出先前执行的命令的有效命令建议。

如果它是您要运行的,只需按 ENTER 即可执行它。 如果不是,请按向上/向下箭头以显示其他建议的命令。

就我而言,我使用第一个,这是正确的命令,如下面的输出所示。

sudo pacman -Syu [enter/↑/↓/ctrl+c]
使用 fixthis app 更正先前控制台命令中的错误

看? 如果上一个命令由于权限错误而失败,“fixthis”应用程序将在命令前添加 sudo 并再次运行它。 很酷,对吧? 要中止运行命令,请按 Ctrl+C.

同样,如果您执行了拼写错误的命令,它将更正拼写错误并再次运行该命令。

$ pithon

样本输出:

bash: pithon: command not found
$ fixthis
python3 [enter/↑/↓/ctrl+c]

如果你想递归地修复命令直到成功,你可以使用 -r 选项:

$ fixthis -r

有关更多示例,请参阅其开发人员制作的以下官方截屏。

使用“fixthis”应用程序更正先前控制台命令中的错误和拼写错误

尽管对于快速修复拼写错误和 Linux 命令中的错误非常有用,但此应用程序具有敏感且不恰当的名称,因此您可能不想在某些情况下使用它。

如果您在这种情况下运行此命令时感到不舒服,您可以简单地创建一个别名(例如,请修复此),如上面的“配置”部分所示。

2.使用Fix更正命令中的错误

使固定 是另一个很酷的实用程序,可以帮助我们快速纠正命令中的错误或拼写错误。 尽管 Fix 的作用与 thef*ck 相同,但它略有不同。

Thef*ck 在语法方面很强大,而当语义方面很重要时,Fix 更好。 Thef*ck 无法告诉您在执行脚本不起作用时要安装什么包。

当您不知道怎样自己修复它时,可以使用 Fix 实用程序。 它为输入错误或拼写错误的命令提供了一些解决方案。

它用 OpenAI 的 Codex AI 建议所有可能的解决方案来纠正命令中的错误。 您需要做的只是在命令前加上“修复”,AI 会建议最佳解决方案。

2.1。 在 Linux 中安装修复程序

安装 Fix 很简单!

1. 首先,您需要访问 OpenAI 的 食典API.

2. 并 git clone 存储库:

$ git clone https://github.com/tom-doerr/fix.git

它会将项目的 github 存储库的内容克隆到名为 ‘ 的本地文件夹中fix‘。

3. cd 进入“修复”目录:

$ cd fix

4.添加 main.py 到你的 $PATH:

$ cp $PWD/main.py ~/.local/bin/fix

2.2. 用法

要修复输入错误的命令,只需在命令前面添加“修复”,如下所示:

$ fix mkdir abc/def

要修复最后一个命令,只需执行以下操作:

$ fix !!

AI 生成的解决方案大多是错误的,但足够多的生成解决方案实际上正在发挥作用,使其变得有用。

这是 Fix 应用程序的可视化演示。

在 Linux 中使用 Fix 更正命令中的错误在 Linux 中使用 Fix 更正命令中的错误

建议阅读:

  • 在 Linux 中重复上一个命令的不同方法

3. 用插入符号纠正拼写错误的 Bash 命令

这个技巧只适用于 BASH。

这个技巧非常简单。 我们简单地替换 打错字正确的词 使用 插入符号 (^) 象征。

假设您要使用 ‘ 创建一个目录mkdir‘ 命令。 但是,你错过了’i‘在命令中输入’mkdr‘ 而不是像下面这样。

$ mkdr ostechnix
bash: mkdr: command not found

要修复上述命令中的拼写错误,我们可以简单地替换 ‘dr‘ 和 ‘dir‘ 带有插入符号,如下所示:

$ ^dr^dir^

现在 Bash 会将其解释为 ‘mkdir‘ 并运行它并显示如下所示的输出。

mkdir ostechnix
使用插入符号更正拼写错误的 Bash 命令使用插入符号更正拼写错误的 Bash 命令

4.更正使用cd命令时的拼写错误

我经常尝试在控制台中快速输入,结果出现拼写错误 cd 到一个目录。

$ cd Pctures
bash: cd: Pctures: No such file or directory

输入目录名称时,我会漏掉一两个词。 如果你和我一样,这里是怎样在使用时自动更正拼写错误 cd 命令。

要解决此麻烦,请编辑 ~/.bashrc 文件:

$ nano ~/.bashrc

在末尾添加以下行:

shopt -s cdspell

Ctrl+o 和 ENTER 保存文件和 Ctrl+x 到 close 它。

运行以下命令以更新更改:

$ source ~/.bashrc

从现在开始,即使输入错误,您的 shell 也会自动识别正确的目录路径。

使用 cd 命令时更正拼写错误使用 cd 命令时更正拼写错误

这个技巧有一些缺点。 案例和顺序很重要。

为了 example如果你使用 ‘图片’ 代替 ‘图片’,它不会识别路径。 在这里,我使用了小写 ‘p’ 对于目录 ‘图片’.

$ cd pctures
bash: cd: pctures: No such file or directory

另外,如果您使用 ‘Ptrues’ 代替 ‘图片’,即使您使用正确的大小写并抱怨没有这样的文件或目录,它仍然无法识别目录路径。

$ cd Pctrues
bash: cd: Pctrues: No such file or directory

在这里,我改变了“图片”目录的字母顺序。

此外,如果目录路径中缺少一个以上的字母,它也不会起作用。

请注意,此提示仅适用于 ‘cd‘ 命令。 此外,此提示仅适用于 Bash。 在 Fish 和 Zsh 中,此功能是内置的。

奖励 – 在运行缺少的命令时建议安装包

您应该已经注意到,当您运行一个不可用的命令时,您会收到如下错误消息:

bash: ....: command not found

如果您知道哪个软件包提供了缺少的命令,您可以简单地安装该软件包并再次重新运行该命令。 但是,如果您不知道,您可能需要一点帮助。

为了缓解这个问题,有一个名为 ‘找不到命令‘。 这将建议要安装的软件包列表以使用不可用的命令。

当输入无法识别或不可用的命令时,它将自动搜索官方存储库。 有关详细信息,请参阅以下链接。

  • 运行不可用命令时建议安装软件包

结论

给你! 这些是处理 Linux 和 Unix 系统中的命令行拼写错误和错误的几种方法。 您可以选择适合您的一种或使用两种或多种的组合。 为了 example,我不时使用’Fix’和’thef*ck’来修复控制台命令中的错误和拼写错误。

资源:

  • 怎样在 Vim 文本编辑器中使用拼写检查功能
  • GNU Aspell – 免费、开源和独立的拼写检查器