Что такое fish?
fish — это умная и дружелюбная командная оболочка. Она подсказывает продолжение команды прямо во время набора, опираясь на историю и автодополнения, подсвечивает синтаксис на лету, формирует дополнения по Tab из установленных man-страниц и обходится без замысловатых правил кавычек, унаследованных другими оболочками. Всё работает сразу: чтобы пользоваться fish с удовольствием, ничего настраивать не нужно.
⚡ Ключевые возможности fish
💡 Автоподсказки
Во время набора fish предлагает продолжение команды из истории и дополнений. Нажмите →, чтобы принять подсказку.
🎨 Подсветка синтаксиса
Команды подсвечиваются по мере ввода, поэтому опечатка или незакрытая кавычка заметны ещё до нажатия Enter.
⌨️ Дополнения из man-страниц
fish разбирает установленные man-страницы и строит по ним дополнения — даже редкие утилиты дополняют свои опции.
🧠 Разумные скрипты
Никаких сюрпризов с разбиением на слова, никакого [[ ]] против [ ], и настоящие списки. Скрипты читаются так же, как работают.
🔍 Поиск по истории
Наберите начало команды и нажмите ↑, чтобы перебирать только подходящие варианты; есть и поиск по подстроке.
🛠️ Настройка в браузере
fish_config открывает интерфейс для приглашения, цветов, функций и привязок клавиш — без раскопок в dotfiles.
apt upgrade держит вас на последней версии.
📦 Установка из deb.griffo.io
Шаг 1: Добавить репозиторий
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updateШаг 2: Установить fish
# Установить последнюю версию fish
sudo apt install fish
# Проверить установку
fish --version# Установить последнюю версию fish
apt install fish
# Проверить установку
fish --versionШаг 3: Сделать fish своей оболочкой
# Сделать fish оболочкой входа — пакет уже добавил её в /etc/shells
chsh -s /usr/bin/fish
# Или просто запустить для текущего сеанса
exec fish
# Настроить приглашение, цвета и привязки клавиш
fish_config🎯 Примеры базового использования
Повседневная интерактивная работа:
# Принять серую автоподсказку
→ # или Ctrl-F
# Найти в истории все команды, начинающиеся с git
git↑
# Перейти в каталог, не набирая cd
/etc/apt
# Открыть настройку в браузере
fish_configСкрипты без подвохов:
# Списки — настоящие списки, без разбиения на слова
set files *.txt; echo (count $files) файлов
# Подстановка команд обходится без обратных кавычек
echo "сегодня "(date +%A)
# Условия читаются естественно
if test -f /etc/os-release; echo найдено; end
# Перебор списка
for f in *.md; echo обрабатываю $f; endНастройка под себя:
# Определить функцию и сохранить её на будущее
function ll; ls -lh $argv; end; funcsave ll
# Аббревиатуры разворачиваются при вводе, в отличие от алиасов
abbr -a gco git checkout
# Добавить в PATH навсегда, не редактируя dotfile
fish_add_path ~/.local/bin
# Задать универсальную переменную для всех сеансов
set -U EDITOR nvim🔧 Хорошо сочетается с
fish полноценно поддержан в современном наборе терминальных инструментов:
- starship: приглашение для любых оболочек с родной поддержкой fish
- zoxide:
zoxide init fish— переходы по каталогам по частоте использования - fzf: поставляется с привязками клавиш fish для истории и поиска файлов
- atuin: заменяет историю fish на синхронизируемую базу с поиском
- Oh My Posh: ещё один движок приглашения с инициализацией для fish
🚀 Почему стоит выбрать deb.griffo.io?
- Официальный Debian: доступен, но заморожен на версии, вышедшей вместе с релизом
- Ручная установка: требует набора инструментов Rust и CMake либо ручного управления бинарником
- deb.griffo.io: последняя версия с автоматическими обновлениями
- ✅ Свежие возможности: новейшие улучшения интерфейса и производительности
- ✅ Без ручной настройки: готовые бинарники, сборка через cargo не нужна
- ✅ Автоматические обновления: пакеты обновляются через несколько часов после релизов upstream
- ✅ Полный пакет:
fish,fish_indent,fish_key_readerи man-страницы - ✅ Без зависимостей: статически слинкованная сборка musl; функции и дополнения встроены, отдельный fish-common не нужен
- ✅ Много дистрибутивов: работает на Bookworm, Trixie, Forky и Sid
- ✅ Простое обслуживание: стандартные команды apt для обновления
📦 Репозиторий сборки пакета
Пакеты для Debian собираются и поддерживаются автоматически в этом репозитории GitHub:
- 🐟 fish-shell-debian - Сборки последних релизов
🔗 Связанные пакеты
Также доступны в deb.griffo.io:
- Starship - Приглашение для любых оболочек с родной поддержкой fish
- zoxide - Умная замена cd с инициализацией для fish
- fzf - Нечёткий поиск с привязками клавиш для fish
- Atuin - История оболочки, по которой действительно можно искать