Как установить fish на ubuntu

Обновлено: 04.07.2024

В следующей статье мы рассмотрим Fish. Это название является аббревиатурой от дружественная интерактивная оболочка. Это хорошо оснащенная, умная и простая в использовании оболочка для Unix-подобных систем. Он поставляется со многими важными функциями, такими как автоматическое предложение, подсветка синтаксиса, история поиска (например, CTRL + R в Bash), функция интеллектуального поиска, поддержка цвета VGA, веб-конфигурация, заполнение страниц вручную и многое другое, готовое к использованию.

Нам нужно будет только установить эту оболочку, чтобы начать ее использовать в ближайшее время. Забудьте о сложных настройках и установке дополнительных надстроек или плагинов. В этой статье мы увидим, как установить и использовать Fish shell на Ubuntu, хотя он доступен для разных систем Gnu / Linux. Вы сможете узнать больше в сайт проекта.

Установить Fish

Несмотря на то, что оболочка очень простой в использовании и богатый функциями, он не включен в репозитории по умолчанию большинства дистрибутивов Gnu / Linux. Он доступен в официальных репозиториях очень немногих дистрибутивов Gnu / Linux, таких как Arch Linux, Gentoo, NixOS и Ubuntu. В следующей статье я Я собираюсь протестировать эту оболочку на Ubuntu 17.10.. Чтобы установить его, вам просто нужно открыть терминал (Ctrl + Alt + T) и написать в нем:

Использование рыбы

к переключиться на рыбу из нашего терминала по умолчанию (Ctrl + Alt + T) нам нужно будет только ввести следующее:

Вы можете найти Конфигурация Fish по умолчанию в

/ .config / fish / config.fish. Если его не существует, нам просто нужно его создать.

Автоматические предложения

Когда эта оболочка запускается, когда мы пишем команду, она автоматически предлагает команду светло-серым цветом. Если вы напишете первые буквы команды Gnu / Linux и нажмите клавишу TAB для автозаполнения команды, если есть другие возможности, она перечислит их.

Автоматические предложения рыбы

Мы можем выбрать перечисленные команды из списка с помощью клавиш со стрелками вверх / вниз. После выбора команды, которую мы хотим выполнить, нам нужно будет только нажать ENTER, чтобы выполнить ее.

Как мы уже знаем, мы выполняем обратный поиск, нажимая (Ctrl + R) для поиска команд в истории оболочки bash. Но с этой оболочкой это не обязательно. Нам просто нужно будет напишите первые буквы команды и выберите команду из списка.

Умный Поиск

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

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

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

подсветка синтаксиса bash

подсветка синтаксиса рыбы

Как видите, в Fish выделено «sudo». Более того, вы покажете недопустимые команды красным по умолчанию

Конфигурация через Интернет

Это еще одна интересная функция. Мы сможем configurar наши цвета, изменение индикатора Fish и просмотр функций, переменных, истории, привязки клавиш - все на одной веб-странице.

к запустить интерфейс веб-конфигурации, нам просто нужно будет написать:

конфигурация сети рыб

Программируемые окончания

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

программируемые терминалы рыбы

Отключить приветствие

Попав в файл, мы добавим следующую строку:

Получать помощь

к откройте страницу документации Fish в нашем браузере по умолчанию из терминала, просто введите:

помочь рыбной паутине

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

Установите Fish в качестве оболочки по умолчанию

Если вам понравилась эта оболочка, вы можете установите его в качестве оболочки по умолчанию. Для этого используйте команду chsh:

здесь, / usr / bin / рыба Это путь к Рыбному маршруту. Если вы не знаете правильный путь, вам поможет следующая команда:

По завершении выйдите из системы и перезапустите Sesion чтобы использовать новую оболочку по умолчанию.

Запомнить некоторые скрипты, написанные для Bash, могут быть не полностью совместимы с Fish.

Если вы хотите вернуться к Bash, просто запустите:

Если вы хотите, чтобы Bash постоянно использовался в качестве оболочки по умолчанию, запустите:

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

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » Fish, умная и простая в использовании командная строка

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

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

Примечание: Руководство было протестировано на экземпляре Ubuntu 12.04 VPS. Его можно использовать для справки или легко адаптировать к другому дистрибутиву.

Установка оболочки fish

Бинарный пакет fish можно найти в стандартном репозитории системы.

Его можно легко установить с помощью менеджера пакетов:

sudo apt-get update
sudo apt-get install fish

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

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

Командная строка изменится. Вместо $ будет символ >.

Базовые функции fish

Вы сразу же заметите некоторые преимущества этой оболочки.

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

ls
bin/ etc/ lib/ media/ proc/ sbin/ sys/ var/
boot/ home/ lib64/ mnt/ root/ selinux/ tmp/ vmlinuz@
dev/ initrd.img@ lost+found/ opt/ run/ srv/ usr/

Это полностью совпадает с выводом команды ls –F, которая классифицирует контент по типу.

Если вы введете путь к файлу (относительный или абсолютный), вы увидите, что оболочка подчеркивает пути к каталогам, чтобы было удобнее:

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

Автозаполнение

Отдельное внимание стоит обратить на продвинутое автозаполнение, которое обеспечивает клавиша TAB:

Как вы можете видеть, в данном случае оболочка fish перечисляет только каталоги для команды cd.

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

Аналогичная полезная функция – это форматирование команды man. Чтобы запросить все страницы man, можно использовать табуляцию:

Подобную справку можно получить с помощью любого терминального браузера, используя встроенную справочную систему:

help
fish home | Main documentation page | Design document | Commands | FAQ |
License
Fish user documentation
1
Table of contents
Fish user documentation
□ Table of contents
□ Introduction
□ Syntax overview
□ Help
□ Tab completion

Вы можете переходить по ссылкам, как в обычном браузере. Чтобы выйти, нужно нажать «q». Если вы хотите получить справку для определенной команды, о которой знает fish, просто используйте ее в качестве аргумента:

help cd
cd - change directory
Synopsis
cd [DIRECTORY] Description Changes the current
directory. If DIRECTORY is supplied it will become the new directory. If
DIRECTORY is a relative path, the paths found in the CDPATH environment
variable array will be tried as prefixes for the specified path. If
CDPATH is not set, it is assumed to be '.'. If DIRECTORY is not
specified, $HOME will be the new directory.
Back to index.

Чтобы просмотреть доступные команды справки help, используйте автозаполнение с помощью TAB.

Общие задачи

Многие люди, которые в течение многих лет использовали bash или даже sh, привыкли к тому, как работают эти оболочки. Оболочка fish действительно во многом наследует bash и sh, но она предлагает много улучшений.

Перенаправление, конвейеры и специальные символы

Начнем с перенаправления. Обычно перенаправление и конвейеры работают так же, как в bash:

  • |: передает вывод команды слева как ввод для команды справа.
  • <: извлекает стандартный ввод из файла справа вместо клавиатуры.
  • >:записывает стандартный вывод в файл справа.

Это обеспечивает простой способ перенаправления дескрипторов файлов. Напомним, что каждый дескриптор файла обычно ассоциируется с числом:

  • 0: стандартный ввод. По умолчанию входные данные поступают с клавиатуры.
  • 1: стандартный вывод. По умолчанию это экран.
  • 2: стандартная ошибка. Ошибки команды по умолчанию выводятся на экран.

ls /etc >ls_results.txt ^&1

Весь стандартный вывод помещается в файл ls_results.txt, а затем стандартная ошибка направляется в точку стандартного вывода (это файл выше).

Что касается специальных символов, fish снова использует большинство значений по умолчанию из bash:

  • *: отвечает любой строке символов, которая не включает «/».
  • ?: отвечает любому одиночному символу, не включая «/».

Дополнительным символом является рекурсивный подстановочный знак **. Он отвечает любой строке, включая «/».

Это позволяет легко добавить рекурсивную функциональность в команды. У ls есть рекурсивный вариант, но вы можете проверить эту функцию на ней. Попробуйте найти все файлы, которые заканчиваются на .conf в каталоге /etc:

ls /etc/**.conf
/etc/adduser.conf
/etc/apparmor/subdomain.conf
. . .

Функции и псевдонимы

Вы можете создавать функции и псевдонимы в fish с помощью простого синтаксиса.

Базовый формат выглядит так:

function function_name
function_content
end

Если вы хотите проанализировать аргументы функции, обратитесь к переменной $argv, где они хранятся в виде массива.

Например, можно сделать такую функцию, которая будет выводить все аргументы:

function say_hello
echo hello $argv
end

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

say_hello John Doe
hello John Doe

Если вы хотите получить доступ к определенной переменной, извлеките ее из массива аргументов по номеру (в fish массивы индексируются с 1, а не 0). Попробуйте изменить предыдущий скрипт, чтобы использовать только второй аргумент:

function hello_sir
echo hello Mr. $argv[2] end

Вызовите функцию, и вы получите другой результат:

hello_sir John Doe
hello Mr. Doe

Все функции можно просмотреть с помощью команды:

Удалить функцию может эта команда:

functions -e function_name

Для псевдонимов оболочка bash предлагает определенную команду. А fish использует тот же синтаксис функции.

Единственное, что нужно знать – если команда смещает или заменяет команду, на которую ссылается, вы должны добавить команду command, чтобы сообщить оболочке, что нужно не рекурсивно вызывать функцию, а использовать внешнюю команду.

Например, если вы хотите, чтобы команда cat включала нумерацию по умолчанию, вы могли бы переопределить команду и добавить в нее этот флаг. Не забудьте передать переменную аргумента, чтобы она могла правильно анализировать имена файлов:

function cat
command cat -n $argv
end

Теперь вызовите команду cat:

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

Упрощенная история

Оболочка bash предоставляет очень сложный, но полезный набор функций истории. fish сокращает и старается улучшить и упростить его.

Вы можете хронологически перемещаться по истории с помощью клавиши UP. Перемещаться в обратном направлении можно с помощью клавиши DOWN. Это довольно стандартно.

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

Также можно ввести часть предыдущей команды, а затем нажать клавишу UP и найти последние экземпляры этой конкретной команды.

Кроме того, вы можете использовать команды ALT-UP и ALT-DOWN для вызова аргументов командной строки.

Предположим, вы хотите просмотреть содержимое каталога:

ls /etc
acpi/ groff/ ltrace.conf rmt*
adduser.conf group magic rpc
alternatives/ group- magic.mime rsyslog.conf
apm/ grub.d/ mailcap rsyslog.d/
apparmor/ gshadow mailcap.order screenrc
. . .

Вы понимаете, что это нужный каталог, и хотите перейти в него. Введите новую команду:

Теперь можно вставить аргументы из последней команды, нажав клавиши ALT-UP:

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

Для этого введите:

Вы можете перемещаться вниз и вверх по истории каталогов, нажимая ALT-LEFT и ALT-RIGHT в пустой командной строке. Это позволяет вам легко переключаться между каталогами.

Создание конфигурационных файлов и изменение оболочки по умолчанию

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

Возможно, вы привыкли вносить поправки в файлы

/.bash_profile, но таких файлов в этой оболочке нет.

Чтобы настроить свои предпочтения, вы должны создать файл

/.config/fish/config.fish. Все конфигурационные файлы fish должны заканчиваться расширением .fish. Обычно путь

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

Если вы хотите создать файл на основе образца, вы можете скопировать его из каталога fish:

Затем отредактируйте его:

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

Лучше не добавлять функции непосредственно в этот файл конфигурации. Вместо этого вы должны создать каталог functions в каталоге конфигураций fish:

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

Например, можно создать файл, чтобы сделать функцию hello_sir доступной в каждой сессии.

Примечание: Прежде чем продолжить, не забудьте отключить псевдоним cat, который сделали ранее, с помощью set -e cat, если вы этого еще не сделали уже.

/.config/fish/functions/hello_sir.fish
function hello_sir
echo hello Mr. $argv[2] end

Введя end, нажмите CTRL-D, чтобы завершить ввод. Теперь функция будет доступна при каждой загрузке оболочки. Если вы хотите также добавить функцию say_hello, вам нужен отдельный файл.

Для вдохновения можно просмотреть функции по умолчанию:

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

Во-первых, вам нужно знать путь к оболочке fish:

which fish
/usr/bin/fish

Затем можно изменить оболочку, набрав:

chsh -s /usr/bin/fish

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

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

Заключение

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


К счастью для вас, есть отличная страница, в которой описываются все тонкости Fish Shell. Он описывает Синтаксис Fish , как он обрабатывает систему и много других вещей. Если вы планируете сделать переход, сделайте себе одолжение и прочитайте то что находится на этой странице.

После того, как вы посмотрите на шпаргалку, безопасно откройте терминал и измените оболочку вашего пользователя по умолчанию от Bash до Fish Shell. В терминале запустите команду chsh. Однако не запускайте её с помощью sudo, иначе вы можете обменять оболочку корневого пользователя на Fish, а не на свою собственную.

chsh -s /usr/bin/fish

Запуск команды chsh назначит вашему пользователю новую оболочку. Чтобы получить мгновенный доступ к Fish с вашим пользователем, напишите Fish в терминал. В противном случае перезагрузите ПК с Linux, чтобы завершить работу коммутатора. После перезагрузки войдите в систему и снова откройте терминал. Если все пойдет правильно, Fish станет новым дефолтом, и вас встретит Fish Shell, а не Bash.

Хотя вы перешли на Fish Shell, он не полностью готов к использованию. Следующий шаг - настроить его. В терминале создайте новую папку конфигурации.

Затем создайте новый файл конфигурации внутри новой папки конфигурации Fish:

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

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

/.config/fish/config.fish

Настройка


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

Запуск этой команды автоматически откроет новую вкладку в вашем веб-браузере, так как это возможные аспекты Fish.

В окне Fish_Config вы сможете применять предустановленные темы оболочки, назначать переменные, настраивать пользовательские функции, просматривать историю команд, назначать аббревиатуры, псевдонимы и многое другое!

Как переключиться с Bash на Fish Shell на Linux

Как переключиться с Bash на Fish Shell на Linux Reviewed by Admin on июня 29, 2018 Rating: 5

fish

Fish, это акроним от f riendly i nteractive sh ell, и является хорошо оборудованной, умной и удобной оболочкой для Unix-подобных систем.

Fish поставляется с многими интересными функциями, такими как аутсорсинг, подсветка синтаксиса, история поиска (например, CTRL + R в Bash), интеллектуальная функция поиска, великолепная поддержка цвета VGA, веб-настройка, и многое другое.

Вы также, можете разукрасить свою оболочку Bash, если хотите

fish

Вы можете найти конфигурацию fish, вот по такому пути

/.config/fish/config.fish (аналогично .bashrc). Если этого файла не существует, просто создайте его.

Автоматическая подстановка кода

Когда я набираю команду, он автоматически предлагает дополнить команду. Например, я набираю несколько первых букв команды, он подставляет мне вариант команды, и я нажимаю TAB чтобы дополнить команду.

fish

Если вы нажмете клавишу TAB два раза, то у вас будет список доступных команд с этими первыми буквами. Вы можете выбрать перечисленные команды из списка, используя клавиши со стрелками вверх/вниз. Для того чтобы выбрать команду, которую вы хотите запустить, просто нажмите клавишу со стрелкой вправо и нажмите ENTER, чтобы запустить ее.

fish

Вам больше не понадобится CTRL + R!

Как вы уже знаете, в оболочке Bash, мы делаем обратный поиск, нажимая сочетание клавиш ctrl + r, для поиска команд которые мы набирали ранее. Но это не обязательно в Fish.

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

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

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

Это еще одна интересная особенность Fish. Мы можем установить наши цвета, просмотреть функции, переменные, историю, привязки клавиш с веб-страницы.

Чтобы запустить интерфейс веб-конфигурации, просто введите:

fish

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

После окончания редактирования, не закрывая страницу, нажмите в терминале клавишу Enter, чтобы изменения вступили в силу.

Отключить приветствие

Добавьте следующую строку:

Установить Fish в качестве оболочки по умолчанию

Вам понравилась оболочка? Тогда вы можете установить ее по-умолчанию. Для этого используйте команду chsh:

Где /usr/bin/fish - это путь к оболочке fish. Если вы не знаете правильный путь, вам поможет следующая команда.

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

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

Чтобы вернуть Bash, просто запустите:

Если вы хотите, чтобы оболочка Bash была в качестве оболочки по умолчанию, введите:

А вы пользуетесь этой оболочкой?

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: