当前位置: 首页 > news >正文

可以不使用备案的网站名吗网页制作网站知识

可以不使用备案的网站名吗,网页制作网站知识,wordpress 下载页面模板,滕州建网站文章目录 the fuck是什么如何安装原理模块划分模块介绍处理流程get_corrected_commands是如何工作的 99% 的人都不知道的: 命令行竟然存在 fuck 命令!功能强大 the fuck是什么 thefuck是开源的命令行纠错工具,可以用于纠正执上一条执行错误的…

文章目录

    • the fuck是什么
    • 如何安装
    • 原理
      • 模块划分
      • 模块介绍
      • 处理流程
      • get_corrected_commands是如何工作的

99% 的人都不知道的: 命令行竟然存在 fuck 命令!功能强大

the fuck是什么

thefuck是开源的命令行纠错工具,可以用于纠正执上一条执行错误的指令

在这里插入图片描述

常用Linux的小伙伴可能会遇到这样的问题,在输入指令时总是因为忘了添加sudo

导致权限不足无法执行

在这里插入图片描述

如果指令很长,又忘了Linux光标跳转快捷键,就不得不猛敲键盘手动添加sudo

如果安装thefuck,只需对着键盘一顿fuck

正确的指令就会显示在终端

在这里插入图片描述

此外,thefuck还可以自动帮你输出安装工具

如果shell在执行时发现指令不存在

此时只需输入fuck

终端就会显示相应的纠正指令

在这里插入图片描述

如何安装

既然fuck这么好用,那我该怎么安装呢?

thefuck支持多个操作系统

但不管是你使用的Mac,Linux,还是Windows

他们仨使安装过程都大同小异

下载python环境(大于3.5.0),安装thefuck,配置别名

首先是Windows

打开powershell

输入pip install thefuck

安装thefuck

在这里插入图片描述

随后在powershell的配置文件中写入如下两条指令

$env:PYTHONIOENCODING="utf-8"
iex "$(thefuck --alias)"

重启powershell,即可完成配置

此时你可能会感到疑惑,powershell的配置,这是啥?我没有啊

没关系,只需短短三行指令,1秒解决你的疑惑

打开powershell,输入如下三条指令

echo $profileTest-Path $profileNew-Item -Path $profile -Type File –Force

在这里插入图片描述

在资源管理器中进入目录:C:\Users\<用户名>\Documents\WindowsPowerShell

会发现目录下多出了Microsoft.PowerShell_profile.ps1文件

这就是powershell的配置信息

在这里插入图片描述

每次powershell打开前都会加载该文件

在这里插入图片描述

其次是Linux

依然是先安装thefuck

在终端输入如下指令

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

随后输入vim ~/.bashrc

打开shell的配置文件

并在末尾写入eval $(thefuck --alias)

将fuck作为thefuck的别名

在这里插入图片描述

退出.bashrc,并执行配置文件

此时可以正常使用fuck

看到这里,你可能会觉得,这有啥大不了的,不就是多打了几个字嘛,至于这么折腾?

欸嘿,您可别小看了程序员为了"偷懒"能搞出来的那些事儿。这群家伙为了少敲几下键盘,能想出各种奇葩的破事儿

Guido van Rossum在CWI研究所工作时,受够C那繁琐的语法,为了偷懒,徒手搓了个python。python因其简洁的语法被众多开发者喜爱,开发者们甚至打出了这样的口号,life is short, you need python

Max Howell在Mac上安装软件时受够手动编译依赖的痛苦,为了"偷懒",愣是用Ruby撸了一套管理器,通过brew install一键解决依赖

这里说个小插曲,Google曾因Max Howell不会手写二叉树反转而拒绝其面试。因此只要答对这道题,您就可以超越世界级大牛,问鼎码林之巅

这里,需要额外提一嘴,一个比较操蛋的bug

fuck写错了

如果fuck写错没看出来,傻乎乎的以为下载出错,于是重新装了一遍

找问题配环境一小时,最后发现fuck打成funk,这回可真fuck了

原理

不多BB,先放简化流程图

在这里插入图片描述

模块划分

抛开和不同操作系统交互的模块,聚焦于更核心的逻辑

从宏观上,thefuck可以分为三大模块

解析器,流程控制模块,不同分支处理模块

在这里插入图片描述

分支处理继续细分,可得到help打印,版本打印,指令纠正等等
在这里插入图片描述

模块介绍

解析器Parser,负责读取上一条用户输入的指令

并通过调用parse()方法将指令处理为系统可识别的对象

know_args

在这里插入图片描述

之后,流程控制模块将根据know_args中

不同的数据信息进行不同的分支处理

譬如打印帮助文档

打印版本

打印别名

还有最重要的指令纠正,fix_command

在这里插入图片描述

处理流程

这里我们直接放上完整的流程图

在这里插入图片描述

其他模块无足轻重,让我们进入fix_command一探究竟

首先,thefuck会加载配置信息

在这里插入图片描述

配置信息中包含诸多重要的内容

比如与规则相关的

需要排除的规则内容exclude_rules

用户编写的匹配规则存储路径user_dir

随后thefuck将处理know_args,进一步细化数据

得到系统上一次执行的脚本内容command

在这里插入图片描述

并将command传入get_corrected_commands方法

得到纠正的指令

最后将匹配得到的可能的纠正指令通过UI的方式输出

如此就是fuck纠正指令的完整流程

get_corrected_commands是如何工作的

在这里插入图片描述

get_corrected_commands内部处理逻辑比较简单

  1. 调用get_rules()方法,获取全部的规则
  2. 传入command(thefuck封装的系统上次执行的命令+命令输出结果等信息),调用rule.is_match方法,判断当前rule是否匹配command
  3. 返回所有可能的rule

说白了,get_corrected_commands就是拿着command匹配所有规则,符合留下,不符合滚犊子

那么匹配规则如何确定呢?

我们看一个demo

def match(command):if 'not found' in command.output or 'not installed' in command.output:executable = _get_executable(command)return not which(executable) and get_package(executable)else:return Falsedef get_new_command(command):executable = _get_executable(command)name = get_package(executable)formatme = shell.and_('sudo apt-get install {}', '{}')return formatme.format(name, command.script)

这是一个叫做apt_get.py的规则文件

他存在两个和新方法,分别是matchget_new_command

在thefuck运行过程中,apt_get.py会被加载到内存,封装为rule对象

在thefuck处理得到command后,会调用match方法,判断command是否匹配apt_get.py规则

如果要匹配,那么command在终端输出的报错信息必须是not found或者not install,这样就说明用户输入指令出现的问题是找不到

如果找不到,就需要给出安装指令

那么新指令如何给出呢?——get_new_command

当thefuck成功匹配apt_get.py规则后,在后续显示fix 指令时,会调用get_new_command方法,给出新的指令

apt_get.py而言,他就负责从command中提取指令信息,最终返回sudo apt get install xxx指令

至此,完成所有的指令纠正功能

http://www.dtcms.com/a/403839.html

相关文章:

  • 怎么在百度搜索自己的网站做网站 分工
  • 符合系统国产化从mysql数据库迁移到达梦数据库需要注意的点有哪些?
  • 个人网站代码模板帝国cms网站建设
  • QML学习笔记(十二)QML的自定义组件
  • 做品牌网站找谁php网站开发视频网站
  • TESLAGLOVE为虚拟现实训练提供真实触觉反馈
  • 无锡微网站制作注册网站多久
  • HarmonyOS 5 高级动效实战:粒子系统、路径动画与物理动效开发
  • HarmonyOS 6 值得关注的核心新特性
  • FPGA实现双目摄像头红蓝3D融合,提供6套工程源码和技术支持
  • 仙游网站建设有没有好网站推荐
  • 网站如何备案 流程wordpress对接微信
  • Linux中修改主机名并立即生效的完整指南
  • Python常见的排序算法及其特点和实现代码
  • 网站备案号官网深圳全胜专业网站建设
  • ospf 区域内的防环/特殊区域/静默接口/ 认证/前缀列表/ 多进程
  • 鸿蒙NEXT UI Design Kit:打造高端精致界面的新利器
  • 手机网站被自动跳转网易企业邮箱收费版
  • 幽冥大陆(七)安诺克酒店智能门锁SDKV3 VBDemo—东方仙盟
  • 一个主机一个域名做网站商城网站建设运营方案
  • 鸿蒙NEXT应用权限申请全攻略:从配置到授权实战
  • wordpress 文章的形式简述搜索引擎优化的方法
  • 有哪些网站可以做ps挣钱网做网站
  • 个人信息网站建设的心得体会长椿街网站建设
  • MacOS报错“zsh: command not found: brew”【已解决】
  • 网站设计策划书模板wordpress程序上传
  • flash attention利用GPU众核加速注意力计算
  • 晶泰科技与百诚医药签订合作意向书,共同推进AI新药研发合作
  • 漫谈《数字图像处理》之特征提取技术通用分类
  • 如何用php做电商网站wordpress优惠劵