Ушли те времена, когда приходилось долго разбираться с криптическими командами и жестким синтаксисом. Зачем тратить больше времени на расшифровку страниц справки, чем на написание скриптов или навигацию по системе? Обратитесь к мощи и простоте оболочки fish, вашему билету к более плавному и интуитивному опыту использования Linux.
Научитесь преобразовывать свой путь в мир Linux с помощью оболочки fish, от ее удобного интерфейса до обширных возможностей настройки.
Попрощайтесь с запутанными рабочими процессами и обретите новую уверенность в своих навыках работы в Linux!
Необходимые условия
Прежде чем начать, удостоверьтесь, что у вас есть следующие основные компоненты, чтобы следовать этому руководству:
- Оболочка Fish установлена на вашем компьютере – В этом учебнике используется fish-3.7.0, последняя версия на момент написания.
- A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.
Исследование проверок команд, автозаполнения и предложений
После установки оболочки fish приступайте к ее использованию для безупречного выполнения команд. Оболочка fish предлагает обратную связь в реальном времени и контекстно-осведомленные предложения для команд, имен файлов и аргументов.
Но прежде всего вам потребуется получить доступ к оболочке fish, прежде чем изучать проверки команд, автозаполнение и предложения.
Чтобы исследовать эту функцию, которая позволяет вам идентифицировать и исправлять ошибки еще до их выполнения, выполните следующие действия:
1. Откройте терминал и выполните команду fish
ниже, чтобы получить доступ к оболочке fish.

2. Затем введите первую букву команды ls
, чтобы попытаться перечислить все файлы в текущем каталоге.
Как показано ниже, буква ‘l‘ становится красной, так как оболочка fish не распознает её как допустимую команду. Этот мгновенный визуальный сигнал указывает на то, что что-то не так с командой.
Но не беспокойтесь! Благодаря автопредложению, буква ‘s’ появляется приглушенной, намекая на правильную команду.

3. Теперь нажмите стрелку вправо или клавиши Ctrl+F, чтобы принять автопредложенную команду ls
.
Обратите внимание, что буква ‘l’ изменилась с красного на синий, потому что оболочка fish теперь распознает вашу команду как ls
.

Определение псевдонимов команд в файле конфигурации Fish
Помимо обратной связи в реальном времени и контекстно-ориентированных предложений, fish предлагает мощный и гибкий способ настройки вашей среды командной строки – файл конфигурации fish. В отличие от других оболочек, которые могут использовать несколько файлов конфигурации, fish в основном использует один файл, называемый config.fish, расположенный в каталоге ~/.config/fish/.
Чтобы увидеть, как конфигурации влияют на оболочку fish, начнем с определения псевдонимов команд следующим образом:
1. Откройте файл конфигурации fish с помощью предпочитаемого вами кодового или текстового редактора, такого как nano
или vim
, но в этом руководстве используется первый.
После открытия вы увидите начальное содержимое файла конфигурации оболочки fish, который может содержать настройки по умолчанию или быть относительно пустым. Это начальное состояние зависит от того, были ли ранее добавлены настройки вами или процессом настройки вашей системы.
Файл может содержать только комментарии или базовые условные блоки для новых установок, подобные приведенному ниже.

2. Внутри блока if
добавьте следующую функцию
, сохраните изменения и закройте редактор.
На этом этапе вы создаете пользовательские настройки в файле конфигурации fish, и эта функция определяет псевдоним (c
) для команды clear
.
? Примечание: Каждая определенная функция имеет соответствующий файл .fish в каталоге ~/.config/fish/functions/ (т.е. c.fish).

clear
command3. Выполните следующую команду, чтобы использовать
файл конфигурации (config.fish
).
Эта команда не выводит ничего в терминал, но применяет изменения конфигурации к вашей текущей сессии.
? Этот файл конфигурации fish выполняется автоматически каждый раз при запуске новой сессии fish и является идеальным местом для определения пользовательских настроек оболочки.
4. Затем введите c
в приглашении, чтобы проверить ваши изменения.
Обратите внимание, что буква ‘c‘ становится синей, поскольку оболочка fish распознает ее как команду clear
. Это поведение указывает на успешное изменение конфигурации fish.
Заметили, как буква ‘c’ становится синей? Это изменение происходит потому, что оболочка fish знает, что буква ‘c’ является командой clear
. Это поведение сигнализирует об успешном обновлении вашей конфигурации fish.
Теперь почему бы не настроить еще несколько псевдонимов для тех надежных команд, к которым вы постоянно возвращаетесь, когда настроение подходит?

clear
command worksНастройка приглашения оболочки Fish
Помимо настройки псевдонимов для более гладкой работы, оболочка fish предоставляет вам возможность настраивать ваше приглашение, добавляя персональный штрих к вашей оболочке. Вместо длинных путей к каталогам наслаждайтесь более чистым, организованным приглашением.
Чтобы настроить приглашение оболочки fish, выполните следующие действия:
1. Откройте файл конфигурации fish (~/.config/fish/config.fish) и добавьте следующую функцию.
Эта функция настраивает ваше приглашение оболочки fish для отображения (echo
) знака доллара ($
) за которым следует пробел.

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

Сохранение изменений между сеансами
Вы видели, как создавать настройки в оболочке fish. Но одно важное замечание: эти настройки доступны только в текущем сеансе.
Что происходит, когда вы закрываете текущий сеанс и открываете новый? Исчезновение! Все ваши тщательно разработанные конфигурации пропадают — обидно, верно? Но не бойтесь, есть надежда. Позвольте команде funcsave
спасти ваши конфигурации от забвения!
Чтобы сохранить ваши конфигурации между сеансами, выполните следующее:
1. Откройте файл конфигурации fish и добавьте команду funcsave
для каждой function
вместе с именем функции, как показано ниже:

funcsave
command to persist functions across sessions2. Сохраните изменения и закройте редактор и терминал.
3. Откройте новый сеанс терминала и выполните команду fish
ниже, чтобы получить доступ к оболочке fish.
Если команды funcsave
, которые вы добавили, работают в сохранении ваших конфигураций, вы увидите сообщения, подобные приведенным ниже.

Установка и сохранение переменных среды
Хотя сохранение функций замечательно, управление глобально доступными значениями повышает уровень оболочки командной строки, устанавливая переменные среды. В отличие от традиционных оболочек, полагающихся на экспорт
, fish использует set
с опциями для управления областью видимости переменной и поведением экспорта.
Но есть подводный камень, понимаете? Ага, вы угадали! Переменная, установленная с помощью команды set
в терминале, доступна только в текущем сеансе.
Чтобы установить и сохранить переменные среды, флаг -gx
пригодится следующим образом:
1. Добавьте следующую команду для set
переменной MY_VARIABLE
в файл конфигурации fish в качестве глобальной. Ниже приведен способ работы флага -gx
:
-g
– Делает переменную глобальной, доступной из любой области видимости в рамках той же среды пользователя.-x
– Экспортирует переменную, делая ее доступной для внешних команд или программ, запущенных из fish.

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

4. После подтверждения добавьте следующую команду set
в файл конфигурации fish, сохраните изменения и закройте редактор.
Эта команда делает переменную MY_UNIVERSAL_VARIABLE
глобальной для всех сессий, даже после перезагрузок.
Посмотрите, как работает флаг -Ux
ниже:
-U
– Делает переменнуюMY_UNIVERSAL_VARIABLE
универсальной, обеспечивая ее совместное использование во всех текущих и будущих сеансах терминала, включая сеансы других пользователей.-x
– Переменная экспортируется в дочерние процессы, что делает ее доступной для любых команд или скриптов, вызванных из текущего сеанса.

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

? Помимо файла конфигурации fish, используйте
fish_config
в терминале для быстрой и автоматической настройки. Эта команда запускает веб-интерфейс в вашем браузере, позволяя выполнять быстрые настройки, настройки параметров и управление функциями и переменными в удобной для пользователя среде.
Управление плагинами Fish с помощью менеджера пакетов Fisher
Рыбий оболочки впечатляет сама по себе, верно? Но догадайтесь что? Когда вы начинаете интегрировать плагины, она становится еще более мощной. Эти плагины расширяют возможности оболочки fish, внося новые команды, утилиты и интеграции для значительного улучшения вашего опыта работы в командной строке.
Один хороший пример – Fisher, менеджер пакетов, разработанный для оболочки fish. Этот плагин создан с учетом производительности и простоты, и он легковесен.
? Fisher легковесен в управлении плагинами оболочки fish и не является непосредственно сравнимым с менеджерами пакетов на уровне системы. Это различие явно проявляется в отношении размера и сложности управляемых им пакетов.
Чтобы управлять плагинами fish, сначала необходимо установить Fisher, следуя приведенным ниже шагам:
Откройте ваш терминал, получите доступ к оболочке fish и выполните следующую команду, чтобы загрузить и установить Fisher. Эта команда получает скрипт установки Fisher и передает его на вход команде source
, которая выполняет скрипт в текущей сессии оболочки fish через curl
.
После установки вы увидите следующий вывод.

Теперь выполните команду fisher
ниже, чтобы подтвердить установку, просмотрев текущую установленную версию Fisher на вашей системе через --version
.

Установка плагина GitNow
Теперь, когда у вас запущен Fisher, что дальше? А как насчет укрепления вашей оболочки Fish с помощью некоторых крутых плагинов? GitNow, например, является набором инструментов, который усиливает ваш рабочий процесс с Git в оболочке fish – заманчиво.
GitNow предлагает оптимизированные команды для рутинных задач Git, увеличивая продуктивность и упрощая вашу рабочую командную строку Git.
Чтобы установить GitNow, используя менеджер пакетов Fisher, выполните следующие шаги:
1. В вашей оболочке fish выполните следующую команду fisher
для установки
плагина GitNow (joseluisq/gitnow
).
Эта команда сообщает Fisher’у извлечь и интегрировать GitNow в вашу конфигурацию fish, сделав его набор сокращений Git немедленно доступным.

2. После установки запустите нижеприведенную команду gitnow
, чтобы подтвердить правильную установку GitNow.
Эта команда отображает текущую установленную версию GitNow, но только если команды GitNow распознаются в вашей оболочке.

3. Наконец, выполните эту команду fisher
для списка
всех плагинов, управляемых Fisher’ом, включая GitNow.
Ниже вы можете увидеть плагин GitNow и сам плагин Fisher.

Удаление плагинов оболочки Fish
Ваша оболочка fish тонет в плагинах? Как будто вам приходится разбираться в беспорядке, чтобы найти то, что вам нужно? Почистите свою среду оболочки fish, удалив ненужные плагины.
Чтобы удалить плагин, управляемый Fisher, в вашем оболочке fish, выполните следующие шаги:
1. Выполните следующую команду, чтобы список
всех текущих установленных плагинов.
Выберите из списка тот, который вы хотите удалить.

2. Затем запустите команду fisher remove
ниже, за которой следует имя плагина (joseluisq/gitnow
) для удаления.
Эта команда сообщает Fisher удалить плагин GitNow из вашей среды оболочки fish.

3. Теперь выполните ту же команду fisher list
, чтобы подтвердить, что плагин GitNow успешно удален.
Плагин GitNow больше не должен появляться в списке установленных плагинов.

Удаление менеджера пакетов Fisher
Как вы видели, менеджер пакетов Fisher действительно удобен. Но удаление его может быть вашим лучшим выбором, если вы обнаружите, что несчастны или испытываете проблемы с Fisher.
Чтобы полностью удалить Fisher из вашей оболочки fish, выполните следующее:
Выполните нижеприведенную команду, чтобы список
и удалить
fisher
и все установленные плагины через Fisher.

В альтернативе выполните следующую команду, чтобы удалить
только fisher
самого себя.

Исследование менеджера пакетов Oh My Fish
Когда вы уже крутите с Fisher, зачем рассматривать Oh My Fish? Вы уже испытали мощь плагинов для оболочки fish с помощью Fisher. Но вот подвох: этот фреймворк открывает новую область настроек для оболочки fish, предлагая обширную коллекцию тем и плагинов.
Чтобы узнать, что Oh My Fish готовит для вас, сначала установите этот менеджер пакетов следующим образом:
Выполните следующую команду curl
, чтобы загрузить и запустить скрипт установки Oh My Fish (https://get.oh-my.fish
) в оболочке fish
.
Если успешно, вы получите вывод, аналогичный следующему.

После установки выполните следующую команду omf
, чтобы проверить установленную версию Oh My Fish.
A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Настройка окружения с помощью тем Oh My Fish
Вы устали от однообразного вида оболочки fish? Почему бы не добавить немного индивидуальности? Придайте своему окружению оболочки fish новый облик с помощью свежих персонализированных тем от Oh My Fish.
Чтобы настроить свое окружение оболочки fish, вам необходимо установить темы с помощью следующих шагов:
1. Откройте файл конфигурации оболочки fish и удалите функцию fish_prompt
, которая определяет отображение вашего приглашения. Это обеспечит совместимость вашего настроенного приглашения с предоставляемыми темами от Oh My Fish или предотвратит их перезапись.
? Темы поставляются с уникальными подсказками, которые критически важны для их внешнего вида и функционирования. Отключение вашей настраиваемой подсказки (
fish_prompt
) обеспечивает полную интеграцию выбранной вами темы Oh My Fish в ее дизайн и функции в вашем оболочке fish.
2. Затем удалите (rm
) файл ~/.config/fish/functions/fish_prompt.fish
. Эта команда не выводит никакой информации, но удаление этого файла гарантирует, что оболочка fish вернется к своей стандартной подсказке.
3. Выполните эту команду source
, чтобы изменения в файле конфигурации fish вступили в силу.

4. Теперь выполните следующую команду omf
, чтобы найти идеальную тему
для вашей оболочки fish.
Выберите одну тему, которую вы хотите интегрировать в оболочку fish (например, cbjohnson).
? Посетите официальный репозиторий GitHub для тем Oh My Shell, чтобы увидеть, как выглядит каждая тема, прежде чем вы их установите.

? Улучшите вашу оболочку fish с помощью плагинов, запустив следующую команду для установки плагинов. Посетите репозиторий GitHub OMF для списка плагинов для установки.
omf install <plugin_name>
5. Затем выполните следующую команду, чтобы установить
выбранную вами тему на шаге четыре (cbjohnson
).
После установки ваша подсказка сразу же изменится, как показано ниже.

? Совет: Быстро переключайтесь между темами, если у вас их две или более, запустив следующую команду.
omf theme <theme_name>
Удаление Oh My Fish
Oh My Fish – это гем для улучшения вашего оболочечного настроения. Но если вам когда-нибудь захочется изменить обстановку или попробовать что-то новое, удаление Oh My Fish даст вашей оболочке fish свежий старт.
Чтобы удалить Oh My Fish, выполните следующее:
1. Выполните следующие команды rm
, чтобы удалить все файлы, связанные с Oh My Fish.
После удаления вы увидите, что ваша изначально установленная тема исчезнет.

2. Затем выполните каждую из следующих команд, чтобы удалить больше файлов, связанных с Oh My Fish.
Эти команды не выводят никакой информации, но удаление этих файлов гарантирует полное удаление всех остатков Oh My Fish с вашей системы.
3. Теперь выполните следующую команду omf
, чтобы проверить удаление.
Вы увидите ошибку, подобную следующей, указывающую, что команда omf
не найдена, и что Oh My Fish был полностью удален.

Установка Fish в качестве оболочки по умолчанию
Если вам понравилось пользоваться оболочкой fish и улучшать свой опыт работы с Linux, почему бы не установить ее в качестве оболочки по умолчанию? Таким образом, вы избавите себя от необходимости переключаться при каждом запуске нового терминала.
Чтобы установить fish в качестве вашей оболочки по умолчанию, выполните следующие шаги:
1. Выполните следующую команду, чтобы найти путь, по которому расположена оболочка fish
.
Скопируйте путь в буфер обмена, так как вам понадобится это на следующих этапах.

2. Затем выполните следующую команду, чтобы добавить fish в список допустимых оболочек в /etc/shells
.

3. Наконец, выполните команду chsh
ниже, чтобы изменить свою оболочку по умолчанию на fish (/usr/bin/fish
).
При перезагрузке вашей машины у вас будет fish в качестве оболочки по умолчанию.

? Совет: Вернитесь обратно с fish на другую оболочку, например, Bash, в качестве оболочки по умолчанию, повторив все шаги в этом разделе. Убедитесь, что вы указываете путь к Bash на втором и третьем шагах, а затем перезапустите вашу машину, чтобы изменения вступили в силу.
Заключение
На протяжении этого руководства вы погрузились в суть оболочки fish, раскрывая ее мощные функции и настраиваемые параметры. От определения псевдонимов до настройки подсказок и сохранения переменных среды до управления плагинами, оболочка fish была вашим надежным помощником.
Вы получили представление о том, как преобразить ваш опыт работы с Linux с помощью менеджера пакетов Oh My Fish. Более того, вы узнали, как легко находить и устанавливать новые плагины и темы, расширяя функциональность и эстетику вашей среды оболочки fish.
Теперь, когда вы изучили основы оболочки fish, погрузитесь глубже и разблокируйте ее полный потенциал. Почему бы не попробовать экспериментировать с пользовательскими приглашениями, такими как Powerline или Starship, чтобы придать вашей оболочке персонализированный вид?