命令行命令纠错神器 The Fuck

打印 上一主题 下一主题

主题 983|帖子 983|积分 2949

理论


  • 源码与官方文档GitHub地址:https://github.com/nvbn/thefuck
  • 极简概括:使用Python编写的、可扩展规则的、支持在Linux、MacOS上运行的命令行命令纠错工具,当前88.4K star。
  • 应用场景:命令行输错并按了回车,移动光标矫正嫌麻烦,生气了,于是输入f**k指令,智能帮你纠错。
  • 缺点:指令浩繁并且格式不一,可能会改正错误。
实操(CentOS、Ubuntu)


  • CentOS安装(踩过坑不报错的安装方式)
  1. 新版CentOS可用dnf替代yum
  2. yum -y install python3 python3-devel
  3. yum -y install python3-pip python3-setuptools
  4. 操作会在~/.local/bin下产生fuck和thefuck的指令
  5. pip3 install thefuck --user
  6. 按照官网安装步骤,添加指定配置
  7. vim ~/.bashrc
  8. eval "$(thefuck --alias)"
  9. 加载配置文件中的变动
  10. source ~/.bashrc
  11. 根据喜好,创建全局可用的软链接
  12. ln -s ~/.local/bin/fuck /bin/fuck
  13. ln -s ~/.local/bin/thefuck /bin/thefuck
复制代码

  • Ubuntu安装(官方阐明的安装方式,可能会安装失败)
  1. apt update
  2. apt install python3-dev python3-pip python3-setuptools
  3. pip3 install thefuck --user
  4. vim ~/.bashrc 最后一行添加
  5. eval $(thefuck --alias)
  6. source ~/.bashrc
复制代码

  • Ubuntu安装(另一种安装方式)
  1. apt update
  2. apt install python3-dev python3-pip python3-setuptools
  3. mdkir /test
  4. cd /test
  5. wget https://github.com/nvbn/thefuck/archive/refs/heads/master.zip
  6. pip3 install master.zip
  7. vim ~/.bashrc 最后一行添加
  8. eval $(thefuck --alias)
  9. source ~/.bashrc
复制代码

  • 使用(改正命令参数顺序)
  1. systemctl firewalld status
  2. Unknown operation 'firewalld'.
  3. fuck
  4. systemctl status firewalld [enter/↑/↓/ctrl+c]
  5. ● firewalld.service - firewalld - dynamic firewall daemon
  6.    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
  7.    Active: active (running) since Wed 2025-01-01 21:07:47 CST; 11s ago
  8.      Docs: man:firewalld(1)
  9. Main PID: 21555 (firewalld)
  10.    CGroup: /system.slice/firewalld.service
  11.            └─21555 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
复制代码

  • 使用(改正错误指令)
  1. gitt status
  2. -bash: gitt: command not found
  3. fuck
  4. git status [enter/↑/↓/ctrl+c]
  5. fatal: Not a git repository (or any of the parent directories): .git
复制代码

  • 使用(改正自定义指令)
  1. 这里添加一个输出Hello World!的指令
  2. echo 'echo Hello World!' > /usr/local/bin/hw
  3. chmod +x /usr/local/bin/hw
  4. 输错
  5. hww
  6. -bash: hww: command not found
  7. 纠正
  8. fuck
  9. hw [enter/↑/↓/ctrl+c]
  10. Hello World!
复制代码

  • 定名多样化
    F**k是国外的,也可以扩展为wokao、wocao、wodiu、wori、kao、cao、diu、wow等的词汇(素质不重要,过瘾就行)
  1. 向全局添加加fuck别名。
  2. vim /etc/profile
  3. alias wokao='fuck'
  4. ...
  5. 刷新环境变量配置使其生效
  6. source /etc/profile
复制代码
命令行 or 终端,对文章标题的定义值得深究


  • 终端:

    • 维基百科:https://zh.wikipedia.org/wiki/%E7%B5%82%E7%AB%AF
    • 提炼总结:终端(Terminal)是一种不提供运算处置惩罚功能的输入输出设备,是人类用户与计算机交互的设备,终端有些是全电子的,也有些是机电的。所以终端并不单指黑乎乎的命令行窗口,也指毗连到主机的外设应用,比方键盘与显示器。

  • 命令行:

Shell 、Bash、Sh


  • Shell:

    • 维基百科:https://zh.wikipedia.org/wiki/%E6%AE%BC%E5%B1%A4
    • 提炼总结:由于内核为了包管安全、稳定和抽象复杂化、通常不直接与用户交互,所以才有了Shell。操作系统中提供访问内核所提供之服务的程序。Shell也用于泛指所有为用户提供操作界面的程序,也就是程序和用户交互的层面。因此与之相对的是内核(英语:Kernel),内核不提供和用户的交互功能。可以理解为Shell面向用户与Kernel(类比前端),Kernel面向计算机与Shell(类比后端)。
    • 补充:Shell是命令行解释器的统称,有多种实现方式,比方Bourne Shell 、Bourne Again Shell、C Shell、Z Shell等。

  • Bash(Bourne-Again Shell,保举使用):

    • 维基百科:https://zh.wikipedia.org/wiki/Bash
    • 提炼总结:是目前主流的命令处置惩罚器,Sh的超集。由1987年由布莱恩·福克斯为了GNU计划而编写,它的二进制程序文件在Linux系统上位于/bin/bash,Linux与Mac OS X v10.4起至macOS Mojave都将它作为默认shell,自macOS Catalina,默认Shell以zsh取代。

  • Sh(Bourne shell):

    • 维基百科:https://zh.wikipedia.org/wiki/Bourne_shell
    • 提炼总结:Unix默认的shell,由AT&T贝尔实行室的史蒂夫·伯恩在1977年在Version 7 Unix中针对大学与学院发布的。它的二进制程序文件在大多数Unix系统上位于/bin/sh,Unix版本中,它仍然是root的默认shell。

  • 总结:Shell是为用户提供与操作系统内核通信的服务程序。Bash、Sh是Shell的具体实现。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表