Friendly interactive shell или сокращено — fish, новая дружелюбная командная оболочка для Windows, Linux и MacOS, которая обладает встроенным автодополнением и подсветкой синтаксиса с поддержкой автоматического выявления ошибок ввода.
Первая версия датируется 2005 годом, казалось бы, прошло 15 лет, почему я назвал ее новой?
А все просто, основные популярные командные оболочки были выпущены еще в прошлом веке и на их фоне fish — свежий огурчик.
Название командой оболочки | Первый релиз |
---|---|
Bourne shell (sh) | 1977 |
C shell (csh) | 1978 |
Bourne again shell (bash) | 1989 |
Z shell (zsh) | 1990 |
Особенности
- История. Подсказывает команды из вашей истории выполнения так, как делает это веб-браузер.
- Подсветка. Поддерживает подсветку синтаксиса, а так же автоматическое выявление ошибок ввода.
- Автодополнение. Для автоматизации ввода опций и команд используют справочные man-руководства.
- Скриптовый язык. Присутствует свой упрощённый язык написания сценариев.
- Легко найти. Есть удобные средства поиска в истории выполненных команд.
- Все активировано по умолчанию. После установки вам ничего не придется настраивать, все особенности оболочки работают из коробки.
Установка
В большинстве случаев установка fish отнимает минимум времени. Открываем официальный сайт fishshell.com и переходим в раздел Go Fish
Windows
Для MS Windows существует 3 варианта установки
Windows Subsystem for Linux
В подсистеме Linux для Windows мы делаем установку с помощью пакетного менеджера выбранного дистрибутива.
Cygwin
Во время установки необходимо поставить галочку в категории приложений Shell
MSYS2
Один из многих форков Cygwin, его основной плюс в интеграции пакетного менеджера ArchLinux. Для установки fish достаточно ввести команду pacman -S fish
Linux
Процесс установки в Linux практически идентичен, есть лишь два маленьких нюанса. Во-первых у большинства дистрибутивов свой пакетный менеджер, а во-вторых не во всех базовых репозиториях есть fish.
Fedora
dnf install fish
ArchLinux
pacman -S fish
Gentoo
emerge fish
NixOS
nix-env -i fish
Ubuntu, Debian, CentOS и openSUSE
Для данных дистрибутивов вам необходимо скачать пакет и установить его вручную или подключить внешний репозиторий, более свежая и актуальная информация находится по этой ссылке fishshell.com/#get_fish_linux
MacOS
Отсутствием разнообразия установки для MacOS обвинить fish не получится, 4 разных способа на любой цвет и вкус 🙂
HomeBrew
brew install fish
MacPorts
sudo port install fish
Установочный пакет
Необходимо перейти на сайт fishshell.com/#get_fish_mac и скачать установочный файл. Обязательно следуйте всем инструкциям во время установки.
Отдельное приложение
Необходимо перейти на сайт fishshell.com/#get_fish_mac и скачать отдельное приложение. Не забываем, что для его установки необходимо скопировать файл в папку «Приложения».
Запуск
Чтобы запустить оболочку введите команду fish в вашей консоли.
krnlnx:~/ $ fish krnlnx@macbook /Users/krnlnx >
Настройки
В первую очередь, давайте добавим fish в список системных оболочек.
which fish | sudo tee -a /etc/shells
Сделаем fish оболочкой по умолчанию для текущего пользователя.
chsh -s /usr/local/bin/fish
Запуск веб-конфигуратора
Воспользуемся веб приложением для настройки fish
fish_config
Перед нами откроется веб браузер с 7 вкладками, расскажу о каждой из них.
- colors — эта вкладка позволит выбрать вам цветовую схему fish
- prompt — кастомизация строки приветствия
- functions — раздел с функциями
- variables — переменные окружения
- history — история ввода команд
- bindings — горячие клавиши
- abbreviations — сокращения для команд
Как мы заметили оболочка быстро и легко настраивается под ваши предпочтения.
Дополнения
Одно из больших преимуществ перед другими оболочками заключается в поддержке большого количества расширений функционала за счет дополнений.
Менеджеры дополнений
Для установки, удаления и обновления дополнений в Fish существуют так называемые фреймворки. Рассмотрим самые популярные.
Fisher
Позволяет управлять функциями, дополнениями, биндингами и сниппетами из командной строки. Расширьте возможности своей оболочки изменив строчку приглашения
Установка Fisher
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
Управление плагинами
В фреймворке реализованна поддержка управления дополнениями с помощью команд
Установить
fisher add jethrokuan/z rafaelrinaldi/pure
Удалить
fisher rm rafaelrinaldi/pure
Обновить
fisher self-update
Отобразить список установленных плагинов
fisher self-update
Более подробную информацию о работе фреймворка смотрите на странице разработчика.
Официальный сайт: https://github.com/jorgebucaran/fisher
Fundle
Минималистичный пакетный менеджер для Fish
Установка и обновление пакетов происходит и использованием git. Пакетный менеджер имеет полную совместимость с oh-my-fish плагинами.
Установка Fundle
curl -sfL https://git.io/fundle-install | fish
Установка плагинов
Принцип установки немного отличается от предыдущего фреймворка. В первую очередь вам необходимо добавить список необходимых плагинов в файл с настройками и в конце инициализировать их установку
fundle plugin 'edc/bass' fundle plugin 'oh-my-fish/plugin-php' fundle plugin 'danhper/fish-fastdir' fundle plugin 'danhper/fish-theme-afowler' fundle init
Функции управления дополнениями легко запомнить
Полный список доступных команд
fundle init
: Инициализация пакетного менеджера и загрузка всех доступных плагиновfundle install
: Установка всех плагиновfundle update
: Обновление всех плагиновfundle plugin PLUGIN [--url PLUGIN_URL] [--path PATH]
: Добавить плагин.--url
Указать URL для клонирования плагина.--path
Указать директорию установка
fundle list [-s]
: Отобразить список всех установленных плагинов.fundle clean
: Удалить неиспользуемые плагины.fundle self-update
: Обновить пакетный менеджер.fundle version
: Отобразить текущую версию пакетного менеджера.fundle help
: Показать все доступные команды
Более подробную информацию о работе фреймворка смотрите на странице разработчика.
Официальный сайт: https://github.com/danhper/fundle
Фреймворк для Fish. Создан для легкой организации и публикации коллекций из функций, утилит и тем.
Tacklebox
Установка Tacklebox
curl -O https://raw.githubusercontent.com/justinmayer/tacklebox/master/tools/install.fish cat install.fish | fish; rm install.fish
Обновление
Фреймворк создает в домашнем каталоге клон своего github репозитория
cd ~/.tacklebox; git pull cd ~/.tackle; git pull
Более подробную информацию о работе с фреймворком смотрите на странице разработчика.
Официальный сайт: https://github.com/justinmayer/tacklebox
Oh My Fish
Oh My Fish предоставляет базовую инфраструктуру, позволяющую устанавливать пакеты, расширяющие или изменяющие внешний вид вашей оболочки. Он быстрый, расширяемый и простой в использовании.
Установка Oh My Fish
Для установки достаточно запустить команду в терминале
curl -L https://get.oh-my.fish | fish
Доступные команды
Oh My Fish включает в себя небольшую программу omf
- omf update — Полное обновление Oh My Fish, всех данных с репозиториев и всех установленных пакетов.
- omf install — Установка одного или нескольких пакетов
- omf repositories [list|add|remove] — Управление установленными репозиториями.
- omf list — Список установленных пакетов.
- omf theme — Применить тему.
- omf remove — Удалить пакет.
- omf reload — Перезагрузить Oh My Fish.
- omf search -t|—theme / -p|—package — Поиск плагина или темы.
- omf channel — Получить изменения из канала обновлений.
- omf doctor — Исправление ошибок в работе Oh My Fish.
- omf destroy — Удаление Oh My Fish
Более подробную информацию о работе с фреймворком смотрите на странице разработчика.
Официальный сайт: https://github.com/oh-my-fish/oh-my-fish
Темы
Fish имеет огромное количество разнообразных тем, с которыми можно ознакомится по ссылке github.com/oh-my-fish/oh-my-fish/blob/master/docs/Themes.md