Fish - дружелюбная командная строка.

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

Автор темы
malvinochka2017
Сообщения: 314
Зарегистрирован: 24 июн 2017, 14:31
Решено: 4
Благодарил (а): 41 раз
Поблагодарили: 71 раз

Fish - дружелюбная командная строка.

Сообщение malvinochka2017 » 15 июл 2017, 21:52

Терминал - штука хорошая и полезная. Поэтому как-то незаметно для себя снова стала (после некоторого долгого перерыва) возвращаться на использование командной строки. Вот заходила тут на форум Матунту и наткнулась на новую (с 2015 года) оболочку командной строки.
Заинтересовала Fish или Friendly Interactive Shell - это командная оболочка Linux нового поколения. Она разработана, чтобы облегчить пользователю выполнение команд, есть подсветка синтаксиса, подсветка правильных адресов файлов, быстрый поиск по истории, веб-конфигуратор, а также особый синтаксис скриптов. Это новая командная оболочка в Linux и её синтаксис не похож ни на одну из современных командных оболочек, а скорее на язык программирования Python.

В официальном репозитории Ubuntu 16.04 есть пакет Fish версии 2.2, но имеется возможность установить более новую версию из стороннего репозитория:

sudo add-apt-repository ppa:fish-shell/release-2 -y
sudo apt update
sudo apt install fish

В терминале после ввода команды fish открылось приглашение в новую командную оболочку.
@Vita
Что бы терминал всегда запускался не в bash, а в fish, ставим галочку в "запускать другую команду вместо моей оболочки" и пишем слово fish:
Снимок экрана в 2017-07-16 00-36-22.png
Лично мне Fish сразу понравилась. В первую очередь продвинутой автозаменой и поиском команд. Очень убыстряет работу. Изменение цвета команд (например, если есть ошибка синтаксиса, то текст подсвечивается красным). Остальные преимущества я пока просто не смогла осмыслить, что бы охарактеризовать :acute: Ну бывает так, что вроде прикольно и нравится, а почему - не понимаю :blush:

Плюшки под спойлером (@Хабр):

* Интерактивный режим работы и дружественность пользователю;
* Подробная и доступная информация о командах делает их поиск значительно проще, чем в man-страницах оболочки bash. И даже если fish не сможет подключиться к X-серверу, для показа справки будет задействован браузер links;
* Подсветка синтаксиса: при вводе команды буквы выделяются красным цветом, и меняют его на зелёный, если имя команды написано правильно;
* Названия существующих папок подчёркиваются;
* Eсть вкладки и история;
* Достаточно набрать 192 и нажать стрелку вверх как в командной строке будут листаться все когда-либо исполненные команды где фигурировал этот обрывок адреса
* Если начать набирать команду с начала, то сразу же предлагается продолжение из уже когда-либо выполненной команды, стрелочка направо и вся команда готова к запуску.
* Fish использует специфические конструкции скриптов, которые проще для начинающих пользователей;
* Автодополнение здесь лучше, чем в bash, так как fish умеет дописывать опции;
* Легко читаемый вид функций;
* Легко настраивать в браузере используя команду fish_config.
* Дополнительно поддерживается автодополнение по Tab;
* help команда для просмотра документации по FISH веб-браузера;
* Поддержка постоянной переменной;
* Подсветка синтаксиса и обширная проверка ошибок;
* Поддержка буфера обмена;
* Терминал поддерживает 256 цветов;
* Веб-конфигурация;
Гифки взяты отсюда
cd.gif
echo.gif
help.gif
date.gif
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Я люблю тебя, не за то, кто ты, а за то, кто я с тобой. #Louna

Аватара пользователя

Chocobo
Сообщения: 5509
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1429 раз

Fish - дружелюбная командная строка.

Сообщение Chocobo » 15 июл 2017, 22:06

Штука безусловно занятная, но стоит заметить что не совместим с bash / sh

Для новичков может много проблем и не преподнесет, но те же выборки под * (wildcard) - толком не умеет. Как и многие другие bash-конструкции.
Т.е. если где то потребуется выполнить bash-команду - 30/70 вероятности, что она не отработает под фиш, ибо они не стремятся обеспечить POSIX-совместимость.

Аватара пользователя

Автор темы
malvinochka2017
Сообщения: 314
Зарегистрирован: 24 июн 2017, 14:31
Решено: 4
Благодарил (а): 41 раз
Поблагодарили: 71 раз

Fish - дружелюбная командная строка.

Сообщение malvinochka2017 » 15 июл 2017, 22:19

Chocobo писал(а): Т.е. если где то потребуется выполнить bash-команду
Например, какую? :lupa:
Я люблю тебя, не за то, кто ты, а за то, кто я с тобой. #Louna

Аватара пользователя

BadBird
Сообщения: 1329
Зарегистрирован: 09 сен 2016, 18:08
Решено: 2
Благодарил (а): 63 раза
Поблагодарили: 116 раз

Fish - дружелюбная командная строка.

Сообщение BadBird » 16 июл 2017, 00:25

Терминатор хороший терминал.
Главное для меня в нем это закладки....
Всё о тайлинге окон...ну, или почти всё: Тыц!!!

Аватара пользователя

Chocobo
Сообщения: 5509
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1429 раз

Fish - дружелюбная командная строка.

Сообщение Chocobo » 16 июл 2017, 00:27

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

Аватара пользователя

Chocobo
Сообщения: 5509
Зарегистрирован: 27 авг 2016, 19:57
Решено: 129
Откуда: НН
Благодарил (а): 411 раз
Поблагодарили: 1429 раз

Fish - дружелюбная командная строка.

Сообщение Chocobo » 16 июл 2017, 00:38

malvinochka2017 писал(а): Например, какую?
например простой перебор в цикле

Код: Выделить всё

chocobo@desktop ~ $ echo $SHELL
/bin/bash
chocobo@desktop ~ $ for i in {1..5};do echo $i; done;
1
2
3
4
5
chocobo@desktop ~ $

Аватара пользователя

Автор темы
malvinochka2017
Сообщения: 314
Зарегистрирован: 24 июн 2017, 14:31
Решено: 4
Благодарил (а): 41 раз
Поблагодарили: 71 раз

Fish - дружелюбная командная строка.

Сообщение malvinochka2017 » 16 июл 2017, 06:51

Chocobo, Да, не работет...
Команда 'done' не найдена, возможно вы имели в виду:
Команда 'dune' из пакета 'whitedune' (universe)
Команда 'one' из пакета 'opennebula' (universe)
Команда 'drone' из пакета 'ostinato' (universe)
Команда 'dane' из пакета 'sshfp' (universe)
done: команда не найдена
fish:
$ for i in {1..5};do echo $i; done;
А, может, это из-за различия в синтаксисе?
Я люблю тебя, не за то, кто ты, а за то, кто я с тобой. #Louna

Аватара пользователя

Dja
Сообщения: 2761
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 390 раз
Поблагодарили: 282 раза

Fish - дружелюбная командная строка.

Сообщение Dja » 18 ноя 2017, 07:20

что только не придумают лишь бы стандартным эмулятором не пользоваться :-D
Новичок? - ознакомься с правилами

В поисках истины :grabli:

Аватара пользователя

root
Сообщения: 644
Зарегистрирован: 16 фев 2017, 17:03
Решено: 3
Откуда: г. Хабаровск
Благодарил (а): 191 раз
Поблагодарили: 150 раз

Fish - дружелюбная командная строка.

Сообщение root » 19 ноя 2017, 13:37

malvinochka2017 писал(а):
15 июл 2017, 21:52
Fish использует специфические конструкции скриптов, которые проще для начинающих пользователей;
Вот это и смущает. Лучше сразу научиться как делать правильно, чем потом переучиваться. Но это в случаи, если я правильно понял написанное... Помню, когда с++ только изучал, скачал простецкую программку "для новичков". Многие команды, которые в правильном компиляторе привели бы к ошибке, там выполнялись без них. Т.е. какой-нибудь динамический двумерный массив можно было объявить так int mas[i][j], что ни есть норма, +от препода прилетело :-D . Потом пришлось переучиваться. Если в Fish такой же принцип, это ни круто. Кроме того, соглашусь с Chocobo, POSIX-совместимость также очень важна. Все-таки остановлю обычный терминал GNOME, а за тему спасибо.
User: adminka
OS: Linux Mint 18.2 Sonya Cinnamon :thumbs:
Kernel: 4.11.0-14-generic
Эмоджи смайлы                  


В сети
Аватара пользователя

Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 171 раз
Поблагодарили: 97 раз

Fish - дружелюбная командная строка.

Сообщение Bill Williamson » 19 ноя 2017, 19:40

root писал(а):
19 ноя 2017, 13:37
POSIX-совместимость также очень важна.
Тогда отличная альтернатива zsh. Плагинами типа zsh-autosuggestions можно сделать похожим на fish. Как-то уже тема поднималась.
root писал(а):
19 ноя 2017, 13:37
Все-таки остановлю обычный терминал GNOM
Fish - дружелюбная командная строка.

Аватара пользователя

Dja
Сообщения: 2761
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 390 раз
Поблагодарили: 282 раза

Fish - дружелюбная командная строка.

Сообщение Dja » 19 ноя 2017, 19:53

Bill Williamson, это не та, которая умеет писать так, что оттуда можно копировать?
Новичок? - ознакомься с правилами

В поисках истины :grabli:

В сети
Аватара пользователя

Bill Williamson
Сообщения: 463
Зарегистрирован: 31 авг 2016, 10:38
Решено: 18
Благодарил (а): 171 раз
Поблагодарили: 97 раз

Fish - дружелюбная командная строка.

Сообщение Bill Williamson » 19 ноя 2017, 20:02

Dja писал(а):
19 ноя 2017, 19:53
это не та, которая умеет писать так, что оттуда можно копировать?
Имеется в виду автодополнение?

Аватара пользователя

Dja
Сообщения: 2761
Зарегистрирован: 27 авг 2016, 17:03
Решено: 11
Откуда: Воскресенск
Благодарил (а): 390 раз
Поблагодарили: 282 раза

Fish - дружелюбная командная строка.

Сообщение Dja » 19 ноя 2017, 20:04

Bill Williamson, нет. Вроде есть какая-то консоль, которую можно ею же записать, а потом при воспроизведении записанного делать паузу и оттуда копировать.
Новичок? - ознакомься с правилами

В поисках истины :grabli:

Аватара пользователя

connor41
Сообщения: 118
Зарегистрирован: 12 июл 2017, 23:19
Решено: 1
Благодарил (а): 34 раза
Поблагодарили: 15 раз

Fish - дружелюбная командная строка.

Сообщение connor41 » 19 ноя 2017, 21:03

Dja, ну дык тут обговаривают не эмулятор терминала, а командная оболочка (shell)
Linux Mint 18.2 - Sonya :blush:
Linux 4.10.0-37
XFCE :tux:

Вернуться в «Системные утилиты»