Spec-Zone.ru › Fish 3.7

Введение

Это документация для fish, дружественного интерактивного оболочки.

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

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

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

На этой странице описано, как установить и настроить fish и где получить дополнительную информацию.

Куда идти?

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

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

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

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

Если вам нужно сначала установить fish, читайте дальше, остальная часть этого документа расскажет вам, как получить, установить и настроить fish.

Установка

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

Установка

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

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

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

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

  • Наберите fish, чтобы запустить оболочку:

    > fish
    
  • Наберите exit, чтобы завершить сеанс:

    > exit
    

Стандартная оболочка

Существует несколько способов переключения на fish (или любую другую оболочку) в качестве стандартной.

Самый простой способ — установить ваш эмулятор терминала (например, GNOME Terminal, Apple’s Terminal.app или Konsole) для прямого запуска fish. Посмотрите его конфигурацию и установите программу для запуска в /usr/local/bin/fish (если fish установлен там — замените другой путь, если нужно).

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

Предупреждение

Установка fish в качестве оболочки входа может вызвать проблемы, такие как некорректное значение PATH. Некоторые операционные системы, включая ряд дистрибутивов Linux, требуют, чтобы оболочка входа была совместима с Bourne и читала конфигурацию из /etc/profile. fish может не подходить в качестве оболочки входа на этих системах.

Чтобы изменить вашу оболочку входа на fish:

  1. Добавьте оболочку в /etc/shells с помощью:

    > echo /usr/local/bin/fish | sudo tee -a /etc/shells
    
  2. Измените свою стандартную оболочку с помощью:

    > chsh -s /usr/local/bin/fish
    

Еще раз замените путь к fish на /usr/local/bin/fish — см. command -s fish внутри fish. Чтобы вернуть её к другой оболочке, просто замените /usr/local/bin/fish на /bin/bash, /bin/tcsh или /bin/zsh в шагах выше, соответственно.

Удаление

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

Строка shebang

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

Скрипт, написанный на bash, должен иметь первую строку такого вида:

#!/bin/bash

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

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

Если вы хотите поделиться своим скриптом с другими, вы можете использовать env, чтобы интерпретатор можно было установить в других местах. Например:

#!/usr/bin/env fish
echo Hello from fish $version

Это вызовет env, который затем использует PATH для поиска программы «fish». Это позволит ей работать, независимо от того, установлен ли fish в (например) /usr/local/bin/fish, /usr/bin/fish или ~/.local/bin/fish, при условии, что эта директория находится в PATH.

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

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

Конфигурация

Для хранения конфигурации запишите её в файл с именем ~/.config/fish/config.fish.

.fish скрипты в ~/.config/fish/conf.d/ также автоматически выполняются перед config.fish.

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

Это краткое описание; для полного объяснения, например, для системных администраторов или интеграции для разработчиков другого программного обеспечения, см. Файлы конфигурации.

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

Примеры:

Чтобы добавить ~/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, которое добавляет путь только в том случае, если он еще не включен, проще.

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

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
  • Учебник
  • Создание собственных автозаполнений
  • Создание собственного приглашения
  • Дизайн
  • Заметки о выпуске
  • Лицензия

© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.7/index.html

Spec-Zone.ru

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