LinuxNotes
← Все статьи

Fish Shell: установка, плагины и удобная конфигурация

Подсказки, сокращения и аккуратная конфигурация интерактивной оболочки.

Терминал и автоматизация2 мин чтения

Установка и пробный запуск

Команды установки предназначены для Arch Linux и CachyOS. Fish отличается синтаксисом от Bash: скрипты Bash продолжайте запускать через Bash.

sudo pacman -S fish
fish

Сначала попробуйте оболочку внутри текущего терминала. Команда exit вернёт в предыдущую оболочку. Менять login shell для этого не требуется.

Сокращения вместо длинных команд

Следующие команды выполняются уже в Fish:

abbr -a gs 'git status'
abbr -a ll 'ls -lah'
fish_add_path ~/.local/bin

Сокращение разворачивается при вводе пробела и остаётся видимым перед выполнением. fish_add_path добавляет существующий каталог в PATH, не создавая повторяющиеся записи. Создайте каталог заранее, если собираетесь хранить там свои скрипты.

Файл конфигурации

Создайте ~/.config/fish/config.fish. Интерактивные настройки ограничьте проверкой режима:

if status is-interactive
    set -g fish_greeting
    abbr -a gs 'git status'
    abbr -a ll 'ls -lah'
end

После сохранения откройте новый терминал. Для выбора оформления выполните fish_config: встроенный инструмент позволяет настроить цвета и приглашение.

Плагины без спешки

Для начала достаточно встроенных подсказок и дополнений. Если нужен плагин, сначала изучите его исходники и инструкцию установки. Плагины выполняются с правами вашего пользователя.

Пример ручного подключения локальной функции: сохраните файл ~/.config/fish/functions/mkcd.fish:

function mkcd --description 'Создать каталог и перейти в него'
    if test (count $argv) -ne 1
        echo 'Использование: mkcd каталог'
        return 1
    end
    mkdir -p -- "$argv[1]"; and cd -- "$argv[1]"
end

Это небольшой локальный модуль: Fish автоматически загрузит его при вызове mkcd projects. Он не требует менеджера плагинов. Удаление файла отключит функцию в новых сеансах.

Проверка и откат

Откройте новую вкладку и проверьте gs в Git-репозитории. Если конфигурация мешает запуску, выполните fish --no-config, исправьте файл или временно переименуйте его.

Документация: Fish tutorial.

Читайте дальше