Установка и настройка fish shell

fish - относительно новая командная оболочка для Unix-подобных операционных систем. К её отличительным качествам можно отнести подсветку синтаксиса и продвинутое автодополнение.

Также в fish изменён в сторону упрощения синтаксиса командного языка оболочки, в частности все управляющие конструкции единообразно завершаются ключевым словом end.

Ещё одним нововведением fish являются так называемые универсальные переменные, вводимые с помощью конструкции вида set -U переменная значение. Такие переменные разделяются между всеми экземплярами fish на данном компьютере и позволяют производить обмен информацией между ними.

Установка fish shell

Добавляем репозиторий, обновляемся, и устанавливаем fish. Более подробную информацию можно прочитать тут.

sudo apt-add-repository ppa:fish-shell/release-3
sudo apt-get update
sudo apt-get install fish

Для запуска выполняем команду:

fish

Смена оболочки терминала по умолчанию:

chsh -s $(which fish)

Чтобы вернуть bash по умолчанию, запускаем в fish оболочке chsh -s (which bash)

Редактирование алиасов и конфигураций fish

nano ~/.config/fish/config.fish

Здесь прописываем алиасы в формате:

alias gs="git status"

Настройка темы в fish. Установка Oh My Fish!

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

curl -L https://get.oh-my.fish | fish

После установки изменится вид приглашения командной строки.

Показать список установленных пакетов

omf list

Выбрать тему

omf theme _НАЗВАНИЕ_

Установка тем

Чтобы установить тему в fish, выбираем понравившуюся тему из списка доступных тем, и устанавливаем с помощью команды:

omf install agnoster

Тема сразу же применится.

Установка модулей

Например, установим плагин для более удобного ввода команд git.

omf install https://github.com/jhillyerd/plugin-git

Пример команд:

КомандаРезультат
gssgit status -s
gcomgit checkout master
glgit pull
gaagit add --all
gcgit commit -v
gagit add
gcmgit commit -m
gcogit checkout

Поддержка команд bash

Для запуска команд bash через fish может возникнуть ошибка, для её решения есть модуль bass

Установка:

omf install bass

Пример использования:

$ bass export X=3
$ echo $X
3

Удаления целых слов через сочетание клавиш

Добавляем в ~/.config/fish/functions/fish_user_key_bindings.fish

function fish_user_key_bindings
  # ctrl-del
  bind \e\[3\;5~ kill-word

  # ctrl-]
  bind \c] backward-kill-word
end

Теперь удаляются слова через ctrl+del и ctrl+]

Удалить Oh My Fish

Вводим команду:

omf destroy