The Fuck: когда консоль понимает тебя с полу... опечатки! 🤬🐍
Печатаешь команду, жмешь Enter, и... ошибка. Обидная опечатка, забытый sudo, неправильный флаг. Рука сама тянется к лицу, а в голове крутится то самое слово. Что ж, теперь это слово может стать вашим лучшим другом в терминале! Знакомьтесь – The Fuck, утилита на Python, которая исправляет ваши предыдущие консольные промахи.
Как это работает?
Все до безобразия просто. Вы вводите команду, она фейлится. Вместо того чтобы перепечатывать все заново или копаться в history, вы просто пишете: fuck
И The 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 [enter/↑/↓/ctrl+c]
➜ 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]
Или просто puthon вместо python?
➜ 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]
Под капотом у The Fuck – целая система правил, покрывающая множество распространенных ошибок: от опечаток в именах команд (git brnch
-> git branch
) и неправильного использования аргументов до проблем с правами доступа и специфичных ошибок для разных утилит (docker, aws, npm, pip и многих других).
Главная фишка The Fuck – это не просто автозамена. Утилита анализирует контекст ошибки и предлагает наиболее вероятное логическое исправление.
Ключевые фичи и почему это стоит попробовать
- Экономия времени и нервов: Самое очевидное. Меньше перепечатываний, меньше фрустрации.
- Огромное количество правил "из коробки": Покрывает большинство ежедневных сценариев для git, apt, pip, docker и десятков других инструментов.
- Простота установки и настройки: Пара команд – и готово.
- Кастомизация:
- Можно настроить алиас (например,
eval $(thefuck --alias FUCK)
, чтобы ругаться ГРОМКО. - Отключить подтверждение изменений (
fuck --yeah
илиfuck -y
). - Рекурсивное исправление (
fuck -r
) до победного. - Расширяемость: Можно создавать свои собственные правила под специфичные задачи.
- Python под капотом: Приятно для Python-разработчиков, и потенциально проще для контрибьюта.
Установка и первый "фак"
Требования минимальны: python (3.5+) и pip.
Основной способ установки (кроссплатформенный): pip3 install thefuck --user
.
- macOS (Homebrew):
brew install thefuck
- Ubuntu/Mint:
sudo apt update sudo apt install python3-dev python3-pip python3-setuptools pip3 install thefuck --user
- Arch Linux:
sudo pacman -S thefuck
- Другие варианты установки можно найти в официальном README.
Самое важное после установки – добавить алиас в конфигурацию вашей оболочки (например, .bashrc, .zshrc, .config/fish/config.fish и т.д.): eval $(thefuck --alias)
После этого перезапустите сессию терминала или выполните source ~/.bashrc
(или ваш соответствующий файл конфигурации).
Немного о продвинутых настройках
Для тех, кто хочет тонко настроить поведение утилиты, есть файл ~/.config/thefuck/settings.py
или переменные окружения (THEFUCK_RULES
, THEFUCK_REQUIRE_CONFIRMATION
, THEFUCK_PRIORITY
и т.д.). Можно управлять списком активных правил, временем ожидания команды, отключать цвета и многое другое. Подробнее – в секции Settings в README.
Конечно, слепо доверять исправлениям не стоит (особенно с отключенным подтверждением), но в большинстве случаев The Fuck действительно угадывает, что вы имели в виду.