优秀的编程知识分享平台

网站首页 > 技术文章 正文

这款命令行神器,你用过吗?(命令行是啥)

nanyue 2024-10-15 11:39:27 技术文章 3 ℃

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

其他用处畅想

  • 命令错误后自动复制错误日志到粘贴板,便捷粘贴到浏览器等,用于检索
  • 可执行文件没有执行权限,自动设置权限再执行
  • 其他观众老爷可以发挥想象

Tags:

最近发表
标签列表