一个好玩的终端命令自动纠错工具

admin 2024年12月23日10:08:14评论16 views字数 1659阅读5分31秒阅读模式
一个好玩的终端命令自动纠错工具

工具简介

作为一名网络安全或者IT从业者,相信大家对Linux命令并不陌生,但是在使用过程中,不排除因为输入字符较快、命令忘记等各种原因导致输入执行了错误的命令,比如把python输入成ptython、把ls 输入成sl等等。错误的命令在执行报错的时候,相信你肯定想大声说一句:“fuck”。
没错!今天介绍的这款好玩的终端命令自动纠错工具名称就叫“thefuck”,当我们输入了错误的命令并报错后,直接输入fuck命令,工具即可自动帮我们纠正为正确的命令。
作为一个开源工具在GitHub上已有87k的star,访问地址如下:
https://github.com/nvbn/thefuck/

工具使用

示例1:把python命令错误的输入成ptyhon,然后使用工具纠正:
一个好玩的终端命令自动纠错工具
示例2:查询本机的网络配置信息,ipconfig和ifconfig两个命令,哪个是Windows命令哪个是Linux命令,经常记混,报错后使用工具纠正:
一个好玩的终端命令自动纠错工具
示例3:原计划输入git branch,结果branch选项字符输入错误,报错后使用工具纠正:
一个好玩的终端命令自动纠错工具

工具安装

  • 安装要求
  • python (3.5+)
  • pip
  • python-dev
  • 安装命令
pip install thefuck
一个好玩的终端命令自动纠错工具
  • 工具配置
bash:
alias fuck='eval $(thefuck $(fc -ln -1)); history -r'

工具原理

thefuck工具是将之前错误的命令与既定规则进行匹配,如果找到匹配项,则使用匹配的规则创建新命令并执行cd_mkdir规则为例,当cd进入不存在的目录是,规则尝试创建目录,代码如下:
import refrom thefuck.utils import for_appfrom thefuck.specific.sudo import sudo_supportfrom thefuck.shells import shell@sudo_support@for_app('cd')defmatch(command):return (        command.script.startswith('cd 'andany(('no such file or directory'in command.output.lower(),'cd: can't cd to'in command.output.lower(),'does not exist'in command.output.lower()        )))@sudo_supportdefget_new_command(command):    repl = shell.and_('mkdir -p \1''cd \1')return re.sub(r'^cd (.*)', repl, command.script)

自定义规则

参考如下示例,可以根据需要自定义规则:
def match(command, settings):return ('permission denied'in command.stderr.lower()or'EACCES'in command.stderr)# 获取 stderr 中的字符串和程序返回值(errno),# 修正规则(命令前添加 sudo)def get_new_command(command, settings):return'sudo {}'.format(command.script)# 以下为可选项# 默认是否开启enabled_by_default =True# 附加命令def side_effect(command, settings):    subprocess.call('chmod 777 .', shell=True)# 优先级,数字越大优先级越低。priority =1000

结合AI更好玩

在生成式大模型面前,基于既定规则的thefuck工具已显得比较僵化和笨拙,如果将原有规则替换成AI,让AI根据错误提示判断用户希望输入的正确命令,效率和体验必然将更上一个台阶。

原文始发于微信公众号(安全有术):一个好玩的终端命令自动纠错工具

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月23日10:08:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一个好玩的终端命令自动纠错工具https://cn-sec.com/archives/3541715.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息