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

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Закрыто
Аватара пользователя

Автор темы
malvinochka2017
Сообщения: 332
Зарегистрирован: 24 июн 2017, 17:31
Решено: 4
Благодарил (а): 39 раз
Поблагодарили: 77 раз
Контактная информация:

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

#1

16 июл 2017, 00: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
Выполните команду help в оболочке fish, чтобы ознакомиться с инструкциями к командной оболочке Fish, которые откроются либо в браузере, либо в консоли
date.gif
date
locale
pwd
Я люблю тебя, не за то, кто ты, а за то, кто я с тобой. #Louna

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

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

#2

16 июл 2017, 01:06

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

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

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

Автор темы
malvinochka2017
Сообщения: 332
Зарегистрирован: 24 июн 2017, 17:31
Решено: 4
Благодарил (а): 39 раз
Поблагодарили: 77 раз
Контактная информация:

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

#3

16 июл 2017, 01:19

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

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

BadBird
Сообщения: 3067
Зарегистрирован: 09 сен 2016, 21:08
Решено: 5
Откуда: Грозный
Благодарил (а): 174 раза
Поблагодарили: 568 раз
Контактная информация:

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

#4

16 июл 2017, 03:25

Терминатор хороший терминал.
Главное для меня в нем это закладки....

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

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

#5

16 июл 2017, 03:27

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

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

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

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

#6

16 июл 2017, 03: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
Сообщения: 332
Зарегистрирован: 24 июн 2017, 17:31
Решено: 4
Благодарил (а): 39 раз
Поблагодарили: 77 раз
Контактная информация:

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

#7

16 июл 2017, 09: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
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

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

#8

18 ноя 2017, 10:20

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

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

root
Сообщения: 938
Зарегистрирован: 16 фев 2017, 20:03
Решено: 5
Откуда: г. Хабаровск
Благодарил (а): 268 раз
Поблагодарили: 262 раза
Контактная информация:

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

#9

19 ноя 2017, 16:37

malvinochka2017 писал(а):
16 июл 2017, 00:52
Fish использует специфические конструкции скриптов, которые проще для начинающих пользователей;
Вот это и смущает. Лучше сразу научиться как делать правильно, чем потом переучиваться. Но это в случаи, если я правильно понял написанное... Помню, когда с++ только изучал, скачал простецкую программку "для новичков". Многие команды, которые в правильном компиляторе привели бы к ошибке, там выполнялись без них. Т.е. какой-нибудь динамический двумерный массив можно было объявить так int mas[i][j], что ни есть норма, +от препода прилетело :-D . Потом пришлось переучиваться. Если в Fish такой же принцип, это ни круто. Кроме того, соглашусь с Chocobo, POSIX-совместимость также очень важна. Все-таки остановлю обычный терминал GNOME, а за тему спасибо.
Вы не готовы! :pc2:
Изображение

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

Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

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

#10

19 ноя 2017, 22:40

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

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

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

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

#11

19 ноя 2017, 22:53

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

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

Bill Williamson
Сообщения: 928
Зарегистрирован: 31 авг 2016, 13:38
Решено: 34
Благодарил (а): 288 раз
Поблагодарили: 249 раз
Контактная информация:

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

#12

19 ноя 2017, 23:02

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

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

Dja
Сообщения: 6875
Зарегистрирован: 27 авг 2016, 20:03
Решено: 30
Откуда: Voskresensk
Благодарил (а): 1310 раз
Поблагодарили: 724 раза
Контактная информация:

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

#13

19 ноя 2017, 23:04

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

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

connor41
Сообщения: 270
Зарегистрирован: 13 июл 2017, 02:19
Решено: 1
Благодарил (а): 71 раз
Поблагодарили: 34 раза
Контактная информация:

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

#14

20 ноя 2017, 00:03

Dja, ну дык тут обговаривают не эмулятор терминала, а командная оболочка (shell)
Arch Linux and Linux mint User :smile:
4.14.13-1-zen
i3wm :tux:

Закрыто

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя