网站首页 > 技术文章 正文
Magnificent app which corrects your previous console command.
如果你每天需要和终端命令行打交道,希望你能看到这个小工具 thefuck,它是一款使用 Python 写的开源命令行工具 app,旨在纠正你输入的前一个命令行。
如果用一个词来形容 thefuck,那 Magnificent 再合适不过。Github 链接是 https://github.com/nvbn/thefuck。
安装 thefuck
支持 macOS、Linux、Ubuntu / Mint、FreeBSD、ChromeOS、或者可以使用 pip 的其他系统,GitHub 的 readme 有详细说明。
个人在 macOS 上使用 homebrew 安装时遇到两个错误
1.无法安装gbdm的问题
访问 https://mirrors.ustc.edu.cn/gnu/gdbm/ 手动下载指定版本,移动到 ~/Library/Caches/Homebrew 目录下,然后执行 brew install gdbm
2.无法安装Python的问题
执行 brew install Python,然后 brew update 更新软件资源库的列表,brew upgrade 升级软件
列举几个规则
- adb_unknown_command – fixes misspelled commands like adb logcta;
- cat_dir – replaces cat with ls when you try to cat a directory;
- cd_correction – spellchecks and correct failed cd commands;
- cd_cs – changes cs to cd;
- cd_mkdir – creates directories before cd'ing into them;
- cd_parent – changes cd.. to cd ..;
- gem_unknown_command – fixes wrong gem commands;
- some of git
- rm_dir – adds -rf when you try to remove a directory;
- sl_ls – changes sl to ls;
- yarn_alias – fixes aliased yarn commands like yarn ls;
- yarn_command_not_found – fixes misspelled yarn commands;
- yarn_command_replaced – fixes replaced yarn commands;
- yarn_help – makes it easier to open yarn documentation;
自定义规则
添加你自己的规则,命名为 your-rule-name.py,放置 ~/.config/thefuck/rules 目录下,实现必选方法
match(command: Command) -> bool
get_new_command(command: Command) -> str | list[str]
示例自定义 sudo 规则
def match(command):
return ('permission denied' in command.output.lower()
or 'EACCES' in command.output)
def get_new_command(command):
return 'sudo {}'.format(command.script)
# Optional:
enabled_by_default = True
def side_effect(command, fixed_command):
subprocess.call('chmod 777 .', shell=True)
priority = 1000 # Lower first, default is 1000
requires_output = True
详见 GitHub 的 readme
其他用处畅想
- 命令错误后自动复制错误日志到粘贴板,便捷粘贴到浏览器等,用于检索
- 可执行文件没有执行权限,自动设置权限再执行
- 其他观众老爷可以发挥想象
猜你喜欢
- 2024-10-15 微软推广XB1新招:拉朋友入伙奖一年EA Access会籍!
- 2024-10-15 EA Access很可能在年内登陆PS4(ea access hub)
- 2024-10-15 雅虎日本欲32亿美元收购eAccess(雅虎 收购)
- 2024-10-15 EA统一旗下订阅服务名称 "EA Play"更加专注玩家体验
- 2024-10-15 Windows 10 Microsfot Store新增订阅和Timeline功能
- 2024-10-15 EA Access登陆PS4平台 每月5美元 大作无限畅玩
- 2024-10-15 《FIFA15》正式登陆EA Access服务免费游戏库
- 2024-10-15 EA Access会员已可提前游玩《极品飞车 热度》
- 2024-10-15 手摸手带你 Docker 从入门到实践(dockerl)
- 2024-10-15 嵌入式学习总结5(嵌入式课程总结与体会)
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)