Spec-Zone.ru › Fish 3.3

Введение

Это документация для fish, fриендли iнтерактивной shеллы.

Шелл — это программа, которая помогает вам управлять компьютером, запуская другие программы. fish предлагает интерфейс командной строки, ориентированный на удобство и интерактивное использование.

В отличие от других шеллов, fish не следует стандарту POSIX, но всё же использует примерно ту же модель.

Некоторые из специальных функций fish:

  • Расширенный интерфейс пользователя (UI): Подсветка синтаксиса, Автодополнение, автодополнение табом и списки выбора, которые можно просматривать и фильтровать.
  • Нет необходимости в настройке: fish разработан для немедленного использования без сложной настройки.
  • Простая настройка скриптов: новые функции можно добавлять в режиме реального времени. Синтаксис легко изучить и использовать.

Эта страница объясняет, как установить и настроить fish и где получить дополнительную информацию.

Дополнительная литература

Если вы впервые используете fish, ознакомьтесь с учебником.

Если вы уже знакомы с другими шеллами, такими как bash, и хотите увидеть отличия в написании скриптов, обратитесь к Fish For Bash Users.

Для получения всестороннего обзора языка программирования fish обратитесь к Язык Fish.

Для получения информации об интерактивном использовании fish, ознакомьтесь с Интерактивное использование.

Установка и запуск

В этом разделе описано, как установить, удалить, запустить и выйти из оболочки fish. Также здесь объясняется, как сделать fish основной оболочкой.

Установка

Актуальные инструкции по установке последней версии fish находятся на главной странице fish.

Чтобы установить тестовую версию fish, ознакомьтесь с инструкциями на странице проекта на GitHub.

Запуск и выход

После установки fish откройте терминал. Если fish не является основной оболочкой:

  • Введите fish для запуска оболочки fish:

    > fish
    
  • Введите exit для выхода из оболочки fish:

    > exit
    

Выполнение bash

Если fish является вашей основной оболочкой, и вы хотите скопировать команды из интернета, написанные на bash (стандартная оболочка на большинстве систем), вы можете поступить одним из двух способов:

  • Используйте команду bash с переключателем -c для чтения из строки:

    > bash -c 'some bash command'
    
  • Используйте bash без переключателя, чтобы открыть оболочку bash, которой вы можете воспользоваться, и exit после этого:

    > bash
    $ some bash command
    $ exit
    > _
    

Основная оболочка

Чтобы установить fish в качестве основной оболочки:

  • Добавьте строку /usr/local/bin/fish в /etc/shells.
  • Измените свою основную оболочку с помощью chsh -s /usr/local/bin/fish.

Подробные инструкции см. в Переключении на fish.

Удаление

Для удаления fish см. Вопросы и ответы: Удаление fish.

Строка shebang

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

Скрипт, написанный на bash, потребует первой строки такого вида:

#!/bin/bash

Когда оболочка сообщит ядру о выполнении файла, она будет использовать интерпретатор /bin/bash.

Для скрипта, написанного на другом языке, просто замените /bin/bash на интерпретатор для этого языка (например: /usr/bin/python для скрипта python или /usr/local/bin/fish для скрипта fish).

Эта строка нужна только при выполнении скриптов без указания интерпретатора. Для функций внутри fish или при выполнении скрипта с помощью fish /path/to/script, shebang не требуется (но это не помешает).

Файлы конфигурации

При запуске fish он читает и выполняет свои файлы конфигурации. Их расположение зависит от конфигурации сборки и переменных среды.

Основной файл — ~/.config/fish/config.fish (или, точнее, $XDG_CONFIG_HOME/fish/config.fish).

Файлы конфигурации оцениваются в следующем порядке:

  • Фрагменты конфигурации в файлах с расширением .fish, в каталогах:

    • $__fish_config_dir/conf.d (по умолчанию, ~/.config/fish/conf.d/)
    • $__fish_sysconf_dir/conf.d (по умолчанию, /etc/fish/conf.d/)
    • Каталоги для поставщиков стороннего программного обеспечения, чтобы они могли предоставлять свои фрагменты конфигурации для своих программ. Fish ищет каталоги в переменной среды XDG_DATA_DIRS для каталога fish/vendor_conf.d; если эта переменная не определена, по умолчанию являются /usr/share/fish/vendor_conf.d и /usr/local/share/fish/vendor_conf.d, если ваша дистрибуция не изменила это.

    Если в этих каталогах есть несколько файлов с одинаковым именем, будет выполнен только первый. Они выполняются в порядке их имени файла, отсортированном (как в glob) в естественном порядке (т. е. "01" сортируется перед "2").

  • Файлы конфигурации системы, где администраторы могут включить инициализацию, которая должна выполняться для всех пользователей в системе — аналогично /etc/profile для шеллов в стиле POSIX — в $__fish_sysconf_dir (обычно /etc/fish/config.fish).
  • Инициализация пользователя, обычно в ~/.config/fish/config.fish (управляемая переменной среды XDG_CONFIG_HOME, и доступна как $__fish_config_dir).

~/.config/fish/config.fish запускается после фрагментов. Это делается для того, чтобы пользователи могли копировать фрагменты и переопределять их поведение.

Все эти файлы выполняются при запуске каждой оболочки. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте код возврата команды status --is-interactive для определения, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании логической оболочки, используйте status --is-login вместо неё. Это ускорит запуск неинтерактивных или нелогичных оболочек.

Если вы разрабатываете другую программу, вы можете установить конфигурацию, которая будет выполняться для всех пользователей оболочки fish в системе. Это не рекомендуется; если они не написаны тщательно, они могут иметь побочные эффекты или замедлять запуск оболочки. Кроме того, пользователи других оболочек не смогут воспользоваться рыбной специфической конфигурацией. Однако, если они абсолютно необходимы, вы можете установить их в каталог конфигурации "вендора". Поскольку этот путь может отличаться в зависимости от системы, для обнаружения этого пути с помощью выходных данных pkg-config --variable confdir fish должен использоваться фреймворк pkgconfig.

Примеры:

Если вы хотите добавить каталог ~/linux/bin в вашу переменную PATH при использовании логической оболочки, добавьте это в ваш файл ~/.config/fish/config.fish.

if status --is-login
    set -gx PATH $PATH ~/linux/bin
end

(в качестве альтернативы используйте fish_add_path как fish_add_path ~/linux/bin, что добавляет путь только в том случае, если он ещё не включён)

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

function on_exit --on-event fish_exit
    echo fish is now exiting
end

Дополнительная помощь и разработка

Если у вас есть вопрос, на который эта документация не отвечает, есть несколько способов получить помощь:

  • Страница на GitHub
  • Официальный канал Gitter
  • Официальный список рассылки по адресу fish-users@lists.sourceforge.net

Если у вас есть предложение по улучшению fish, вы можете направить его через страницу на GitHub.

Другие страницы справки

  • Введение
  • Часто задаваемые вопросы
  • Интерактивное использование
  • Язык fish
  • Команды
  • Fish для пользователей bash
  • Учебник
  • Создание собственных автодополнений
  • Проектирование
  • Заметки о выпуске
  • Лицензия

© 2021 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.3/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API