11 особенностей Fish Shell, которые делают его еще круче, чем Bash

Bash – самая распространенная оболочка. Zsh – самая популярная среди разработчиков. Но Fish – самая недооцененная.

Я не преувеличиваю. Fish действительно является недооцененной оболочкой, которая может отлично подойти как новичкам, так и опытным FOSSерам.

Fish предоставляет целый ряд возможностей, которые делают его привлекательным выбором. От подсветки синтаксиса до аббревиатуры (моя любимая) – здесь есть множество новинок.

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

1. Подсветка синтаксиса

Лучше заметить ошибки до того, как они будут выполнены. Это сэкономит массу времени, сил и разочарований.

Большинство современных редакторов кода имеют встроенную подсветку синтаксиса. В Fish эта функция встроена в саму оболочку, и она работает с командами Linux.

Неправильная команда? Вы видите, что она выделена красным цветом. То же самое касается аргументов и опций, которые не соответствуют контексту.

If a typed word is not a command or is not related to the context, Fish will show a red color, marking it as error
Ошибки выделены красным цветом

2. Самоубеждения

Оболочка Fish предлагает команды по мере ввода, которые впоследствии можно выполнить с помощью клавиши табуляции.

Autocompletion in Fish Shell
Fish автозаполнение

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

3. Интерактивная страница man для опций команды

Это замечательная функция, с помощью которой вы сможете заполнить параметры команды, используя интерактивную помощь из страницы man.

Сначала вам нужно разобрать man-страницу, что можно сделать, выполнив команду:

fish_update_completions

Это позволит разобрать страницы man.

Fish update completions command parsing the man pages
Парсинг Man Pages

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

Fish shell listing the man pages when asked using the tab key
Помощь в создании страницы “Человек-рыба”

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

Это немного проще, чем набирать command -h.

4. Сокращения вместо псевдонимов

Сокращения в Fish – это как расширители текста. Здесь вы обозначаете часто используемый код легкодоступной аббревиатурой.

Например, я использовал sch как сокращение для команды pacman -Ss для поиска пакетов.

abbr -a sch pacman -Ss

Теперь каждый раз, когда я набираю sch и нажимаю кнопку пробела, она будет заменена на pacman -Ss.

Abbreviations example in Fish Shell
Аббревиатуры рыбьих раковин

Вы можете сделать его постоянным, записав в файл конфигурации.

💡

Разница между псевдонимом и аббревиатурой заключается в том, что псевдоним работает под капотом. Вы не видите фактических команд, к которым он привязан. Аббревиатура показывает фактические команды, и они также корректно записываются в историю.

5. Обширная веб-помощь

Приверженцы Linux полагаются на страницы man, чтобы получить помощь по той или иной команде. Новые пользователи Linux больше полагаются на Интернет.

Fish сочетает в себе оба варианта благодаря обширной “веб-справке”, которая легко доступна в вашей системе, даже если нет интернета, поскольку хранится локально.

Чтобы получить справку, запустив оболочку Fish, просто используйте:

help

Это откроет страницу “Справка” в вашем веб-браузере.

Web-based help system, opened in Firefox, when typed "help" in Fish Shell.
Веб-справочник “Рыбья раковина”

Теперь вы можете с легкостью обращаться к обширной документации.

6. Веб-конфигурация

Да, еще одна “веб-функция”.

Чтобы изменить цвет подсказки или другие настройки, вам не нужно редактировать конфигурационные файлы в терминале. Вместо этого вы можете воспользоваться веб-конфигурацией.

Введите следующую команду, запустив оболочку Fish:

fish_config

Откроются настройки конфигурации в браузере.

Fish Shell Web-based configuration, opened in Firefox
Веб-конфигурация Fish Shell

Здесь можно изменить цвета, установить другую подсказку из уже имеющегося списка и т. д.

Already available prompt designs listed in Web-based configuration
Выбор подсказок

Так проще вносить изменения, нет?

7. Автоматический CD-диск

Если вы хотите перейти в каталог, вам не нужно вводить команду cd. Просто введите имя каталога, и все.

Например, если вы находитесь в каталоге Home и хотите переместиться в каталог Downloads, просто введите Downloads. По мере ввода будет предложено дальнейшее завершение.

Fish shell can go to a directory, with only the path provided, "cd" command is necessary
Автоматическое cd

Вам нужно использовать абсолютный путь, если вы находитесь в определенной директории и хотите перейти в совершенно другую ветку.

8. Более удобная навигация по маршруту

Если вам нужно вернуться назад и вперед между посещенными директориями, не нужно вводить путь или использовать cd … и т.д. Просто нажмите ALT + стрелки вправо/влево, чтобы переместиться вперед и назад соответственно.

Navigate through visited directories using ALT key and right/Left Arrow keys
Навигация по каталогам

В качестве альтернативы можно набрать cdh и ввести enter, после чего появится интерфейс пейджера, на котором можно набрать номер, соответствующий директории, в которую вы хотите вернуться.

Interactively navigate by selecting the corresponding number
Навигация с помощью пейджера

Вы можете искать определенную команду в истории в интерактивном режиме на Fish. Для этого используйте старый добрый CTRL+R.

Это откроет страницу, похожую на пейджер, с поисковой строкой. Введите название нужной команды и посмотрите результат:

Interactively search for items in history
Интерактивный поиск по истории

10. Универсальные переменные

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

Чтобы сделать переменную универсальной, используйте:

set -U my_variable 10

Значение my_variable будет сохранено равным 10, даже если система будет перезагружена.

Да, не нужно добавлять их в RC или профиль.

11. Частный режим

В оболочке Fish shell есть приватный режим, в котором вводимые команды не сохраняются в истории и не записываются на диск.

Чтобы перейти в приватный режим, используйте команду:

fish -P
Private Mode in Fish
Частный режим рыбы

После завершения работы вы можете выйти из приватного режима, набрав exit.

11 особенностей Fish Shell, которые делают его еще круче, чем Bash

С “Рыбкой” можно исследовать еще много интересного.

Fish shell предоставляет множество других удобных функций, таких как:

  • Простое редактирование многострочных команд с помощью ALT+Enter
  • Переключение между связками клавиш Emacs (по умолчанию)/Vim
  • Простой и чистый синтаксис для написания скриптов

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

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

Если вам понравились эти функции, попробуйте Fish shell и посмотрите, как пойдет дело. Возможно, вы перейдете на использование Fish в качестве оболочки по умолчанию.

Даже если вы не хотите видеть “рыбу” в своем терминале, вам может понравиться (ASCII) аквариум 😉.

+1
0
+1
0
+1
0
+1
0
+1
0

Ответить

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