Fish (Friendly Interactive Shell) — это современная командная оболочка, созданная для удобства и продуктивности. Выпущенная в 2005 году, она завоевала популярность благодаря интуитивному интерфейсу и мощным функциям. В отличие от Bash и Zsh, Fish не следует стандартам POSIX, что позволяет ей предлагать уникальные возможности без сложной настройки. Последний релиз, Fish 3.7.1 (январь 2025), делает её идеальным выбором для разработчиков и системных администраторов.
Эта статья расскажет, почему Fish — отличный выбор для работы в терминале, как её установить и настроить, а также как использовать. Читайте, чтобы узнать, подходит ли Fish вам!
Почему Fish Shell так популярен?
Fish выделяется простотой и готовностью к работе сразу после установки. В отличие от Bash (POSIX-совместимого) или Zsh (частично совместимого с POSIX), Fish предлагает современный подход, минимизируя необходимость в плагинах. Это делает её идеальной для тех, кто хочет удобную и визуально приятную командную строку.

Ключевые особенности Fish
Fish предлагает функции, которые упрощают работу в терминале. Вот что делает её уникальной:
- Подсветка синтаксиса в реальном времени: Команды, аргументы и переменные выделяются цветом при вводе, помогая избежать ошибок. В Fish улучшена производительность для сложных команд.
- Автодополнение: Fish предлагает команды на основе истории и контекста. Нажмите стрелку вправо, чтобы принять предложение. Новые алгоритмы в 3.7.1 делают подсказки точнее.
- Веб-интерфейс настройки: Команда fish_config открывает браузер для настройки приглашения и цветов без редактирования файлов.
- Мощное автодополнение по Tab: Поддерживает команды, пути и опции для инструментов, таких как git, docker и kubectl.
- Простой синтаксис скриптов: Fish использует понятные команды, такие как set или if, упрощая написание скриптов.
- Универсальные переменные: Сохраняют настройки между сессиями и устройствами.

Преимущества Fish Shell
Fish идеально подходит для современных пользователей. Вот её ключевые плюсы:
- Готовность к работе: Подсветка синтаксиса и автодополнение доступны сразу, без плагинов, в отличие от Bash или Zsh.
- Современные функции: Fish включает возможности, для которых в других оболочках нужны плагины, такие как Oh My Zsh.
- Простота скриптов: Синтаксис Fish интуитивен. Например, set MY_VAR value проще, чем export MY_VAR=value в Bash.
- Активная разработка: Fish 3.7.1 поддерживает Rust-утилиты (ripgrep, fd) и DevOps-инструменты.
Недостатки Fish Shell
Несмотря на преимущества, у Fish есть и недостатки:
- Несоответствие POSIX: Скрипты для Bash или Zsh могут потребовать доработки, что усложняет работу с устаревшими системами.
- Меньшее сообщество: У Fish меньше ресурсов и плагинов, чем у Bash или Zsh, хотя сообщество растет.
- Производительность: Подсветка и автодополнение могут замедлить работу на слабых системах.
- Ограниченное использование в корпорациях: Bash доминирует в корпоративных средах из-за стандартизации.
Установка Fish
Установить Fish легко на Linux, macOS или Windows (через WSL2/MSYS2). Следуйте этим шагам:
- Установка Fish
Используйте менеджер пакетов:- Linux: sudo apt install fish, sudo dnf install fish или аналог.
- macOS: brew install fish (через Homebrew).
- Windows: Установите через WSL2 или MSYS2.
Загрузите Fish с fishshell.com.
- Назначение Fish оболочкой по умолчанию
Добавьте Fish в /etc/shells (если нужно) и выполните:
chsh -s /usr/bin/fish
Проверьте путь: which fish.
- Настройка
Запустите fish_config для настройки через браузер или отредактируйте ~/.config/fish/config.fish. - Плагины с Fisher
Установите Fisher для управления плагинами:
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
Попробуйте плагины fzf (поиск файлов) или z (навигация по директориям).
Продвинутые возможности Fish.
Fish идеально подходит для современных рабочих процессов, особенно для DevOps и разработчиков. Вот как использовать её эффективно:
- Starship для приглашений: Настройте стильное приглашение с информацией о Git, Kubernetes или Node.js:
starship init fish | source
- Автоматизация: Пишите читаемые скрипты. Пример резервного копирования:
function backup_files
set source_dir $argv[1]
set backup_dir $argv[2]
if test -d $source_dir
cp -r $source_dir $backup_dir
echo "Резервное копирование завершено"
else
echo "Ошибка: директория не существует"
end
end
- Интеграция с инструментами: Fish поддерживает автодополнение для helm, kubectl, terraform. Обновите автодополнения: fish_update_completions.
- Синхронизация: Используйте chezmoi для синхронизации настроек Fish между устройствами.

Подходит ли Fish вам?
Fish — это мощная и удобная оболочка для тех, кто ценит простоту и современные функции. Она идеальна для разработчиков, работающих с Docker, Kubernetes или Rust-утилитами. Однако её несовместимость с POSIX может быть проблемой для устаревших систем.
Попробуйте Fish, чтобы упростить работу в терминале! Загрузите с fishshell.com или обсудите с сообществом на GitHub.
Дополнительный материал:
Was this helpful?
0 / 0