zl程序教程

您现在的位置是:首页 >  其他

当前栏目

帅哥,从不用Fuck命令

2023-04-18 14:40:20 时间

本文转载自微信公众号「小姐姐味道」,作者小姐姐养的狗。转载本文请联系小姐姐味道公众号。

 Linux上有一个命令,带着动物最原始的冲动,从一开始在github露面,就获得了无数粉丝的关注,如今已经有60k+的star数。

这个带着光环的命令,就是fuck,捷克斯洛伐克的伐克。这个词,主要用于形容你在把一件事情办砸的时候、或者犯了一些低级的错误,心中那种愤懑的情绪,无处发泄的感觉。

百闻不如一见,我们看一下它到底是啥。

很好很好,图片表达的,就是我们这种情绪。它能让我们偏离正轨的命令,重新回到赛道上来,非常有的有魔力。

比如,你忘记了git分支切换的命令,输入出了下面的东东。这对一些英文盲来说,是常见的事。

  1. git brnch 

brnch是个什么鬼?我的双手怎么不听大脑指挥了?fuck!当你这么想的时候,你也会这么做,fuck命令就会给你修正。

  1. fuck 
  2. git branch [enter/↑/↓/ctrl+c] 
  3. * master 

它证明了,在Linux上,没有什么不是来一炮不能解决的了。

1. 如何安装它?

fuck命令是个python程序,所以我们可以使用pip来安装。

  1. pip3 install thefuck 

然后,在.bashrc或者.zshrc下(你的$SHELL)里添加一行。

  1. eval $(thefuck --alias) 

我们来测试一下。输入ystemct

  1. >> ystemct 
  2. zsh: command not found: ystemct 

我们输入fuck,就可以修正成systemctl。

除了能够修正错误的拼写,fuck无所不能。

  • 忘记了加sudo执行一些超级权限命令,可以fuck解决
  • 当一些明显的参数输入出现了错误,也可以fuck它

很好用是不是?但是,猛男并不需要fuck命令。

why?我们需要看下它的实现原理。

2. 它的原理

fuck命令,是不是洞悉了我的脑电波,在不知不觉之间窃听了我的想法?才能准确的识别我想要真正看的事?

这太魔幻了,应该是深度学习,把常见的输入错误和解决方式给强行学习了一遍。

但也不是。

在thefuck/rules目录下,静悄悄的躺着上百个规则。所谓的规则,就是白名单。

仅仅是git命令,就给出了几十项的匹配,可以说fuck命令对常见的指令是下足了功夫。

所以,你可以创建自己的规则。实现两个方法,然后把它们放在~/.config/thefuck/rules下即可。

  1. match(command: Command) -> bool 
  2. get_new_command(command: Command) -> str | list[str] 

还是很方便的。

3. 不要形成依赖

但是猛男,从来不用fuck命令。

规则和修正,都在猛男的脑子里。

fuck命令的智能,并不是真正的智能,它是经验教条主义的集合,是规则的穷举,是有限的集合。

每一次命令输入,都是一种考验。当这种考验形成了精神反射,fuck命令就变的可有可无,最后变成了一个笑话。fuck命令,是一种精神的腐朽,是妄图使用工具实现智能化的妄想。不需要这些遮遮掩掩,扭扭捏捏,单刀直入直奔主题是猛男的真实表现。

所以,从安装到卸载fuck命令,猛男只花费了不到2分钟。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。