Добавить в корзинуПозвонить
Найти в Дзене

Два способа добавить алиасы в Fish-шелл

Продолжается период моего знакомства и использования оболочки Fish в качестве основной. Напомню, что в одной из предыдущих статей я рассказывал про три вещи, которые мне понравились в этой оболочке сразу. Если не читали эту статью, то оставлю ссылку ниже. При использовании терминала использую алиасы, про которые уже неоднократно упоминалось во множестве заметок на канале. В конфигурационом файле ZSH, которая использовалась до моего перехода на Fish, имелся заранее подготовленный набор алиасов, который нужно было перенести в новую оболочку. Сделать это можно двумя способами, про которые расскажу дальше. Если вы не в курсе за то, что такое алиасы и зачем они нужны, то вначале можете прочитать статью про это, которую прикрепил под этим текстом. Способ №1. Создание отдельного файлов для алиасов Данный способ, как мне кажется, могут использовать пользователи, у которых очень много алиасов, причем все они разносторонние и связаны как с управлением самим дистрибутивом, так и конкретным ПО. Сп
Оглавление

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

При использовании терминала использую алиасы, про которые уже неоднократно упоминалось во множестве заметок на канале. В конфигурационом файле ZSH, которая использовалась до моего перехода на Fish, имелся заранее подготовленный набор алиасов, который нужно было перенести в новую оболочку. Сделать это можно двумя способами, про которые расскажу дальше.

Если вы не в курсе за то, что такое алиасы и зачем они нужны, то вначале можете прочитать статью про это, которую прикрепил под этим текстом.

Способ №1. Создание отдельного файлов для алиасов

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

Чтобы воспользоваться им, перейдите в директорию, где хранятся все конфиги Fish:

cd $HOME/.config/fish

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

nano system.fish

В созданном файле описываем необходимые алиасы, используя уже привычный формат:

alias <имя_алиаса>=<команда>

Файл system.fish, содержащий основные алиасы для взаимодействия с дистрибутивом
Файл system.fish, содержащий основные алиасы для взаимодействия с дистрибутивом

После создания нужного файла, открываем файл config.fish, который находится в этой же директории и вставляем туда следующий фрагмент:

# Aliases
if [ -f $HOME/.config/fish/system.fish ]
       source $HOME/.config/fish/system.fish
end

Под знаком решетки указано название раздела, который настраиваем, чтобы когда файл разрастется, знать за настройку чего отвечает определенный кусок кода, далее идет проверка того, что файл system.fish существует и если да, то происходит его исполнение и подключение к основному конфигу.

Подключаем файл с алиасами в основной конфиг Fish
Подключаем файл с алиасами в основной конфиг Fish

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

После сохранения и выхода из консольного текстового редактора нужно перезапустить оболочку. В Fish это можно сделать также, как и в ZSH:

exec fish

После созданные алиасы подхватятся оболочкой и будут работать, а также появятся в автодополнении.

Способ №2. Перечисление алиасов напрямую в конфигурационном файле

Этот вариант выбрал я, так как количество необходимых алиасов в моем случае, не сильно большое. Поэтому их я разместил сразу в файле config.fish.

Размещение алиасов сразу в основном конфиге
Размещение алиасов сразу в основном конфиге

Далее выполняем также сохранение внесенных изменений, закрытие файла конфига и последующий рестарт оболочки все той же командой:

exec fish

Результат будет точно таким же, как и при использовании первого способа.

Подведем итоги

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

В моей ситуации число алиасов невелико, поэтому создавать отдельные файлы под некие их группы, как в первом способе, ни к чему. Алиасы, которые приведены на скриншоте выше, я просто скопировал из конфига ZSH и вставил в конфиг Fish. Прямая и обратная совместимость, что называется.

Поэтому, если вы ранее использовали ZSH или BASH, то не нужно долго ломать голову над тем, как настроить алиасы в случае перехода на Fish: выбрали подходящий для себя вариант и просто воспользовались функциями копирования/вставки.