Fish — это как Bash, только с мозгами. Вот как его установить в Ubuntu

30.07.2025
Fish — это как Bash, только с мозгами. Вот как его установить в Ubuntu

Bash — это оболочка по умолчанию в Ubuntu, и, честно говоря, в ней нет ничего плохого. Но если вы проводите много времени в терминале, возможно, вам стоит попробовать альтернативные оболочки, поскольку они часто предоставляют дополнительные удобства, и вы удивитесь, как раньше обходились без них.

В конце концов, рак-отшельник регулярно меняет свой панцирь, так почему бы хитрым пользователям Linux не делать то же самое?

Fish (что расшифровывается как Friendly Interactive Shell) — это альтернатива Bash, написанная на Rust (ранее на C++). Создатели позиционируют её как «оболочку командной строки для 90-х». Это бесплатное программное обеспечение с открытым исходным кодом, которое работает во всех системах Unix, а не только в Linux.

Его отличает набор функций, которые могут сделать работу в терминале Ubuntu менее утомительной: он подсвечивает синтаксические ошибки до того, как вы нажмёте Enter, предлагает команды на основе вашей истории и предоставляет действительно полезное автодополнение.

Ни одна из этих функций не является обязательной для всех, но по сравнению с базовым Bash они могут показаться суперспособностями.

 

Что рыба привносит в нашу жизнь

Fish выделяет команды по мере их ввода. Допустимые команды отображаются синим цветом, недопустимые — красным, а разные части команд выделены разными цветами. Это позволяет быстро выявлять опечатки и облегчает чтение длинных или сложных команд.

Лично я считаю, что автодополнение — это самое большое преимущество. По мере ввода текста серым цветом отображаются возможные варианты завершения команды, которые берутся из вашей истории команд:

Автодополнение отображается серым цветом по мере ввода

 

Если вы часто используете длинные команды, но редко помните их целиком, эта функция сэкономит вам время: вам не придётся нажимать клавишу со стрелкой вверх, чтобы найти нужную команду.

У меня есть подробные ffmpeg команды, которые мы часто запускаем, меняя только пути к файлам. С Fish мне нужно всего лишь ввести ffmpeg — и вуаля, мне предлагается список флагов, аргументов, переменных и настроек, который я могу принять, нажав клавишу со стрелкой вправо.

В противном случае я могу продолжать печатать всё, что захочу запустить.

Аналогичным образом вы можете создавать сокращения в Fish. Это пользовательские ярлыки, которые при вводе раскрываются до полной команды (как текстовый экспандер). Эти сокращения позволяют экономить время при частом выполнении длинных команд.

Автодополнение в fish — это совсем не то, что предлагает Bash:

Автодополнение в Fish — это нечто особенное

Автодополнение в Fish — это нечто особенное

 

Когда вы нажмёте tab, Fish перечислит возможные варианты с краткими описаниями того, что они собой представляют или что делают. Так вам будет проще узнать о командах или пакетах (даже без специальных знаний), не прибегая к введению --help или открытию man страниц.

Вы можете перемещаться по списку, чтобы выбрать нужный вариант

Вы можете перемещаться по списку, чтобы выбрать нужный вариант

 

Веб-инструмент для настройки позволяет легко персонализировать и оптимизировать Fish Shell в соответствии с вашими предпочтениями.

Запустите fish_config, и откроется страница в вашем браузере по умолчанию. Там вы можете настроить цвета, просмотреть функции, переменные, просмотреть историю последних команд и настроить другие параметры без необходимости открывать файл конфигурации в текстовом редакторе (но вы можете это сделать).

Вы можете настроить подсказку1 (часть с вашим именем пользователя, именем хоста и текущим каталогом), выбрав предустановленный вариант или создав свой собственный. Для ценителей эстетики Linux индивидуальная подсказка станет отличным завершающим штрихом в персонализации рабочего стола.

Настроить внешний вид рыбы можно с помощью веб-интерфейса

Настроить внешний вид рыбы можно с помощью веб-интерфейса

 

Кроме того, Fish делает несколько вещей, которые Bash делает иначе (в лучшую сторону).

Например, вы вводите подстановки команд в скобках (квадратных скобках), а не в обратных кавычках (`); статус завершения последней команды сохраняется в $status, а не в $?; вы определяете переменные с помощью специальных команд, таких как set, а не с помощью загадочного синтаксиса.

Полный список этих различий можно найти в руководстве на сайте, а также на специальной странице для пользователей Fish for Bash.

Это не все функции Fish, но те, которые, на мой взгляд, делают его настоящим хитом. Если вы хотите попробовать, то у меня для вас хорошие новости: Fish доступен в репозиториях Ubuntu, поэтому его легко установить.

 

Как установить Fish в Ubuntu

Вы можете установить Fish в Ubuntu напрямую из репозиториев. В репозиториях Ubuntu 24.04 LTS представлена версия на C++ (3.x), а в репозиториях Ubuntu 25.04 — новая серия на основе Rust (4.x):

sudo apt install fish

 

Для установки последней версии используйте официальный PPA Fish, который поддерживает Ubuntu 22.04 LTS и более поздние версии:

sudo apt-add-repository ppa:fish-shell/release-4
sudo apt update && sudo apt install fish

 

После установки запустите Fish, введя fish в предпочитаемом вами эмуляторе терминала.

После тестирования, если вы хотите сделать Fish оболочкой по умолчанию в Ubuntu, выполните следующую команду:

chsh -s /usr/bin/fish

 

Однако для того, чтобы это изменение вступило в силу, вам нужно будет выйти из системы и снова войти.

Будьте осторожны при использовании chsh, так как при неправильном указании пути вы можете временно лишиться доступа к оболочке. Если это произойдет, вы сможете восстановить доступ с помощью аварийной оболочки или другого способа входа в систему. Однако осторожность с самого начала избавит вас от лишних хлопот.

 

Соображения о совместимости

Fish хорошо подходит для интерактивного использования терминала, но он не соответствует стандарту POSIX. Это завуалированный способ сказать, что некоторые сценарии Bash, в основном те, которые используют специфический синтаксис Bash, не будут работать напрямую (без изменений).

Насколько сильно это повлияет на повседневную работу с терминалом, зависит от конкретных случаев использования. Но Bash — это команда, которую можно использовать по мере необходимости.

Пользователи, которые экономят ресурсы, могут захотеть узнать, что Fish использует больше памяти, чем Bash, из-за своих дополнительных функций. Это не такой уж большой недостаток, учитывая, что в современных системах увеличение объёма памяти составляет всего 4 МБ или около того.

 

Заглотили наживку?

Если вы пользователь Ubuntu, который редко пользуется терминалом и ограничивается несколькими короткими простыми командами, то вам нет необходимости переходить на Bash. Bash — это базовый инструмент, но большинству людей достаточно и базового.

Но если вы регулярно пользуетесь командной строкой и используете её не только для запуска команд apt, то переход на Fish может ускорить ваш рабочий процесс, снизить трудозатраты и (для тех, кто печатает неаккуратно) помочь избежать досадных ошибок.

Это всё ещё просто оболочка, хотя и более продвинутая: Fish — это как Bash, только с мозгами.

Как сказано в описании на официальном сайте, это современный терминал (насколько это вообще возможно для терминальных оболочек), предлагающий отточенный, продуманный и интегрированный набор функций.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Рейтинг: 5 (1 голос)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала