Thefuck¶
简介¶
thefuck 是一个开源的命令行工具,用于自动纠正终端中的错误命令。它通过分析最近执行的命令和错误信息,提供一个或多个可能的正确命令,用户可以选择自动执行或手动确认。
安装与配置方法¶
#创建conda虚拟环境
conda create -n env_name
#激活创建的环境
source activate env_name
激活进入到虚拟环境里执行安装命令
#使用pip命令执行安装
pip install thefuck
#在shell配置文件中添加初始化代码
echo 'eval $(thefuck --alias)' >> ~/.bashrc
source ~/.bashrc
#也可修改别名,避免敏感词汇
eval $(thefuck --alias fix)
#配置之后执行修复命令无需确认,可以选择性配置
export THEFUCK_REQUIRE_CONFIRMATION=false
基础使用示例¶
输入一条错误的命令,示例cat查看文本文档再输入fuck修复命令
$ caa /etc/passwd 返回结果:bash: caa: command not found...
#输入修复命令
$ fuck
#返回如下参数 $ cat /etc/passwd [enter/↑/↓/ctrl+c] 此时,正确的命令是cat,按回车确认
#输入错误的yum命令
$ yun install net-tools 返回结果:bash: yun: command not found...
#输入修复命令后
$ yum install net-tools [enter/↑/↓/ctrl+c] #此时显示正确的参数

补充¶
历史修正
#thefuck 可以使用历史记录来更正以前的命令。例如,如果你想修正三条命令前的错误
$ fuck 3
自定义部分配置示例
#thefuck的配置文件位于 ~/.config/thefuck/settings.py。你可以在这里修改一些默认设置,例如:
#这个参数指定了 thefuck 应用的规则列表。thefuck 会根据这些规则来修正命令错误。如果没有特别指定,thefuck 会使用所有默认的规则
rules = [<list_of_rules>]
require_confirmation = True
wait_command = 3
#例如:
rules = ['sudo', 'no_command', 'missing_argument'] 表示只启用 'sudo'、'no_command' 和 'missing_argument' 这三个规则
#下列参数指定在修正命令之前是否需要用户确认。如果设置为 True,thefuck 会在执行修正命令之前提示用户确认。如果设置为 False,thefuck 会自动修正并执行命令而不需要用户确认
require_confirmation = True
#wait_command = 3:这个参数指定 thefuck 在执行修正命令之前等待的时间(单位:秒)。这是为了给用户提供一个时间窗口来取消修正操作。如果你不需要这个延迟,可以设置为 0
wait_command = 0
综上示例所述,这些设置帮助你更灵活地控制 thefuck 的行为
rules = ['sudo', 'no_command', 'missing_argument']
require_confirmation = True
wait_command = 3
编写自定义规则
可以编写自己的规则来处理特定的命令错误。在 ~/.config/thefuck/rules/ 目录中创建一个新的 Python 文件。 示例,创建一个 git_no_branch.py 文件:
from thefuck.utils import replace_argument, for_app
from thefuck.specific.git import git_support
@git_support
def match(command):
return ('error: src refspec master does not match any' in command.output)
@git_support
def get_new_command(command):
return replace_argument(command.script, 'master', 'main')
参考资料¶
Contributor:A君
最后更新:
2025 年 06 月 30 日