IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 用Python写个实用工具 - TheFuck(命令纠正工具) -> 正文阅读

[开发工具]用Python写个实用工具 - TheFuck(命令纠正工具)

前言

哈喽啊,我亲爱的铁铁们,I am back !

别管,我也是阳过的人了,这么久都没有更新,今天就带来个小玩意吧

我们在学习python的时候,有个小工具,是可以纠正我们写错的命令

The Fuck 是一款功能强大的、Python编写的应用程序,可用于纠正控制台命令中的错误,非常强大。此外,用户还可通过写Python代码的方式自定义修复规则。

修复效果如下动图所示:

请添加图片描述

更多示例如:

自动识别没有权限,在命令前面添加 sudo

? apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
 
? fuck
sudo apt-get install vim [enter///ctrl+c]
[sudo] password for nvbn:
Reading package lists... Done

识别到没有推送到远程分支,自动追加:

? git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
 
    git push --set-upstream origin master
 
? fuck
git push --set-upstream origin master [enter///ctrl+c]
Counting objects: 9, done.

识别到拼写错误

? puthon
No command 'puthon' found, did you mean:
 Command 'python' from package 'python-minimal' (main)
 Command 'python' from package 'python3' (main)
zsh: command not found: puthon
 
? fuck
python [enter///ctrl+c]
Python 3.4.2 (default, Oct 8 2014, 13:08:17)

如果你不担心fuck修正的结果是错误的,你可以禁用require_confirmation 选项,让fuck自动运行更正的命令:

? apt-get install vim
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
 
? fuck
sudo apt-get install vim
[sudo] password for nvbn:
Reading package lists... Done

在开发机上可以这么做,在生产机器上最好是谨慎一点,不推荐这么做。

安装

在OS X上,可以通过Homebrew(或在Linux上通过Linuxbrew)安装The Fuck:

对此还有疑问的【点击这里】或者文章末尾名片

brew install thefuck

在Ubuntu / Mint上,使用以下命令安装The Fuck:

sudo apt update
sudo apt install python3-dev python3-pip python3-setuptools
sudo pip3 install thefuck

List item

在FreeBSD上,使用以下命令安装The Fuck:

pkg install thefuck

在其他系统上, 使用pip安装The Fuck:

pip install thefuck

配置

接下来需要把这个命令写入到启动脚本中,根据你的终端类型,运行相应的命令即可:

  • Bash
chcp.com 65001 
eval "$(thefuck --alias)"

其中 http://chcp.com 65001 只有在windows环境下才需要运行。

  • Zsh
eval "$(thefuck --alias)"

原理

其实TheFuck的原理就是规则匹配(正则表达式),如果找到匹配规则的命令,则创建一个命令给用户选择或直接运行。

默认情况下的规则有:

  • cat_dir - 当你尝试cat目录的时候,用ls替换cat;
  • cd_correction – 拼写检查和纠正失败的cd命令;
  • cd_mkdir – 在进入目录之前创建目录;
  • cd_parent – 更改 cd… 为cd …;
  • dry – 修复类似的重复问题:git git push;
  • fix_alt_space – 用空格字符代替Alt + Space;

等等,具体可以在官方文档中找到:
https://github.com/nvbn/thefuck

创建自己的修复规则

要添加自己的规则,在 ~/.config/thefuck/rules 文件夹中,

创建一个文件名为 your-rule-name.py 的规则文件,其中必须包含两个函数:

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

如果命令运行结果出现 permission denied 或者 EACCES,则执行 sudo xxx.

此外,还可以配置side_effect,如果你配置了enabled_by_default = True,side_effect函数内的操作将会被执行,本例中是对当前目录下的文件夹执行赋权操作: chmod 777 .

最后

大家可以动手试试自己配一个修复命令,还是相当有意思的。

今天的分享到这里就结束啦

顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:29:11  更:2022-12-25 11:32:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:37:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码