Что за программа fish

Fish— это удобный интерактивный shell, предназначенный для работы любой другой оболочкой, например, bash или zsh. Он разработан таким образом, что пользователи получают мощный функционал, который легко запомнить и использовать. В отличие от других оболочек, в которых различные функции отключены по умолчанию для экономии системных ресурсов, в Fish все они включены по умолчанию, так что вы может получить максимальную отдачу от него.

Особенности Fish:

  • Интерактивный режим работы и дружественность пользователю;
  • Мощный функционал;
  • Поиск при вводе функции обеспечивает автоматические предложения, основанные на текущем каталоге и истории;
  • Дополнительно поддерживается авто дополнение по Tab;
  • help команда для просмотра документации по FISH веб-браузера;
  • Поддержка постоянной переменной;
  • Подсветка синтаксиса и обширная проверка ошибок;
  • Поддержка буфера обмена;
  • Терминал поддерживает 256 цветов;
  • Веб-конфигурация;

Установка Fish.

Что такое фишинг и как с ним бороться?

Для CentOS 8 запустите от имени root:

Источник: darksf.ru

Tutorial

Fish-это полностью оснащенная оболочка командной строки (как bash или zsh),умная и удобная для пользователя.Fish поддерживает такие мощные функции,как подсветка синтаксиса,автосоветы и завершение вкладки,которые просто работают,их не нужно изучать или настраивать.

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

Getting started

После установки просто введите fish в свою текущую оболочку, чтобы попробовать!

Вы будете встречены стандартной подсказкой «Рыба»,что означает,что вы все настроены и можете начать использовать рыбу:

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

С этого момента мы будем притворяться, что ваше приглашение — это просто > для экономии места.

Learning fish

Этот учебник предполагает базовое понимание оболочек командной строки и команд Unix,а также наличие у вас рабочей копии fish.

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

Или, если вам нужен быстрый обзор отличий от других оболочек, таких как Bash, см. Fish For Bash Users .

Полное подробное описание интерактивного использования рыбы см . в разделе Интерактивное использование .

Что такое фишинг и как не попасться? | Генератор QR код на Python

Подробное описание скриптового языка fish см. в The Fish Language .

Running Commands

Fish выполняет команды,как и другие оболочки:вы вводите команду,а затем ее аргументы.Пробелы-это разделители:

> echo hello world hello world

Это запускает команду echo с аргументами hello и world . В данном случае это то же самое, что и один аргумент hello world , но во многих случаях это не так. Если вам нужно передать аргумент, который включает пробел, вы можете использовать обратную косую черту или заключить его в одинарные или двойные кавычки :

> mkdir My Files # Makes a directory called «My Files», with a space in the name > cp ~/Some File ‘My Files’ # Copies a file called «Some File» in the home directory to «My Files» > ls «My Files» Some File

Читайте также:
Программа фотошоп что это такое

Getting Help

Запустите help , чтобы открыть справку fish в веб-браузере, и man со страницей (например, fish-language ), чтобы открыть ее на странице руководства. Вы также можете попросить помощи с определенной командой, например, help set для открытия в веб-браузере, или man set чтобы увидеть ее в терминале.

> man set set — handle shell variables Synopsis.

Syntax Highlighting

Вы быстро заметите,что fish выполняет подсветку синтаксиса по мере ввода текста.Неверные команды по умолчанию окрашиваются в красный цвет:

> /bin/mkd

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

> /bin/mkdir

Допустимые пути к файлам подчеркиваются при вводе:

> cat ~/somefi

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

Эти и многие другие цвета можно изменить, запустив fish_config или напрямую изменив переменные цвета .

Например,если вы хотите отключить (почти)все раскраски:

fish_config theme choose none

Здесь выбрана тема «нет».Чтобы просмотреть все темы:

fish_config theme show

Просто запустив fish_config , вы откроете интерфейс браузера, который позволит вам выбирать из доступных тем.

Wildcards

Fish поддерживает знакомый подстановочный знак * . Чтобы перечислить все файлы JPEG:

> ls *.jpg lena.jpg meena.jpg santa maria.jpg

Вы можете включить несколько спецсимволов:

Особенно мощным является рекурсивный спецсимвол **,который ищет каталоги рекурсивно:

> ls /var/**.log /var/log/system.log /var/run/sntp.log

Если обход каталога занимает много времени,вы можете Control + C из него.

Дополнительные сведения см. в разделе Подстановочные знаки .

Трубы и перенаправления

С помощью обычной вертикальной полосы вы можете соединять команды между собой:

> echo hello world | wc 1 2 12

stdin и stdout можно перенаправить через знакомые < и >. stderr перенаправляется с 2> .

> grep fish < /etc/shells > ~/output.txt 2> ~/errors.txt

Чтобы перенаправить stdout и stderr в один файл,нужно сначала перенаправить stdout,а затем stderr в stdout:

> make > make_output.txt 2> /bin/hostname

Он знает о путях и вариантах:

> grep —ignore-case

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

Чтобы принять автосовет,нажмите кнопку → (стрелка вправо) или Control + F . Чтобы принять хоть одно слово самовнушения, Alt + → (правая стрелка). Если самовнушение не то, что вам нужно, просто проигнорируйте его.

Если вам не нравятся автопредложения, вы можете отключить их, установив для $fish_autosuggestion_enabled значение 0:

set -g fish_autosuggestion_enabled 0

Tab Completions

Богатый набор завершений вкладок работает «из коробки».

Press Tab и рыба попытается выполнить команду,аргумент или путь:

> /priTab => /private/

Если существует более одной возможности,он перечислит их:

> ~/stuff/sTab ~/stuff/script.sh (Executable, 4.8kB) ~/stuff/sources/ (Directory)

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

fish также может выполнять многие команды,например,ветки git:

> git merge prTab => git merge prompt_designer > git checkout bTab builtin_list_io_merge (Branch) builtin_set_color (Branch) busted_events (Tag)

Попробуйте нажать кнопку tab и посмотрите,что может сделать рыба!

Variables

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

> echo My home directory is $HOME My home directory is /home/tutorial

Это известно как подстановка переменной,и это также происходит в двойных кавычках,но не в одинарных:

Читайте также:
Tsr workshop что это за программа

> echo «My current directory is $PWD» My current directory is /home/tutorial > echo ‘My current directory is $PWD’ My current directory is $PWD

В отличие от других оболочек, fish не имеет специального синтаксиса VARIABLE=VALUE для установки переменных. Вместо этого у него есть обычная команда: set , которая принимает имя переменной, а затем ее значение.

> set name ‘Mister Noodle’ > echo $name Mister Noodle

(Обратите внимание на кавычки: без них Mister и Noodle были бы отдельными аргументами, а $name превратилось бы в список из двух элементов.)

В отличие от других оболочек,после замены переменные больше не разделяются:

> mkdir $name > ls Mister Noodle

В bash это создало бы два каталога «Mister» и «Noodle». В fish он создал только один: переменная имела значение «Mister Noodle», так что это аргумент, который был передан в mkdir , пробелы и все такое.

Вы можете стереть (или «удалить») переменную с помощью -e или —erase

> set -e MyVariable > env | grep MyVariable (no output)

Дополнительные сведения см. в разделе Расширение переменных .

Экспорт (Переменные оболочки)

Иногда вам нужно иметь переменную, доступную для внешней команды, часто в качестве настройки. Например, многие программы, такие как git или man , считывают переменную $PAGER , чтобы определить предпочитаемый вами пейджер (программа, позволяющая прокручивать текст). Другие переменные, используемые таким образом, включают $BROWSER , $LANG (для настройки вашего языка) и $PATH . Вы заметите, что они написаны ЗАГЛАВНЫМИ БУКВАМИ, но это всего лишь соглашение.

Чтобы передать переменную внешней команде, ее нужно «экспортировать». В отличие от других оболочек, в fish нет команды экспорта. Вместо этого переменная экспортируется с помощью параметра set либо —export , либо просто -x .

> set -x MyVariable SomeValue > env | grep MyVariable MyVariable=SomeValue

Его также можно не —unexport с помощью —unexport или -u .

Это работает и наоборот! Если рыба запускается чем-то другим, она наследует переменные, экспортированные родителями. Итак, если ваш эмулятор терминала запускает fish и экспортирует $LANG установленным значением en_US.UTF-8 , fish получит этот параметр. И независимо от того, что запускало ваш эмулятор терминала, он также дал ему некоторые переменные, которые он затем передаст, если он специально не решит этого не делать. Вот как рыба обычно получает значения для таких вещей, как $LANG , $PATH и $TERM , без необходимости указывать их снова.

Экспортируемые переменные могут быть локальными, глобальными или универсальными — «экспортируемые» не являются областью действия ! Обычно вы делаете их глобальными с помощью set -gx MyVariable SomeValue .

Lists

set команд выше используемых цитат для того , чтобы Mister Noodle был один аргумент. Если бы это было два аргумента, тогда name было бы списком длиной 2. Фактически, все переменные в fish — это действительно списки, которые могут содержать любое количество значений или вообще ни одного.

Некоторые переменные, такие как $PWD , имеют только одно значение. По соглашению мы говорим о значении этой переменной, но на самом деле имеем в виду ее первое (и единственное) значение.

Другие переменные, такие как $PATH , действительно имеют несколько значений. Во время расширения переменная расширяется и становится несколькими аргументами:

> echo $PATH /usr/bin /bin /usr/sbin /sbin /usr/local/bin

Переменные, имена которых заканчиваются на «ПУТЬ», автоматически разбиваются на двоеточия, превращаясь в списки. Они соединяются двоеточиями при экспорте в подкоманды. Это сделано для совместимости с другими инструментами, которые ожидают, что $PATH будет использовать двоеточие. Вы также можете явно добавить эту причуду к переменной с помощью set —path или удалить ее с помощью set —unpath .

Читайте также:
Королевская спа программа что это такое

Списки не могут содержать другие списки:рекурсии нет.Переменная-это список строк,полный стоп.

Получите длину списка с помощью count :

> count $PATH 5

Вы можете добавлять (или предвосхищать)список,устанавливая его сам,с некоторыми дополнительными аргументами.Здесь мы добавляем /usr/local/bin к $PATH:

> set PATH $PATH /usr/local/bin

Вы можете получить доступ к отдельным элементам с помощью квадратных скобок.Индексирование начинается с 1 с начала и -1 с конца:

> echo $PATH /usr/bin /bin /usr/sbin /sbin /usr/local/bin > echo $PATH[1] /usr/bin > echo $PATH[-1] /usr/local/bin

Вы также можете получить доступ к диапазонам элементов,известным как «срезы»:

> echo $PATH[1..2] /usr/bin /bin > echo $PATH[-1..2] /usr/local/bin /sbin /usr/sbin /bin

Вы можете выполнить итерацию по списку (или фрагменту)с петлей for:

for val in $PATH echo «entry: $val» end # Will print: # entry: /usr/bin/ # entry: /bin # entry: /usr/sbin # entry: /sbin # entry: /usr/local/bin

Списки, смежные с другими списками или строками, расширяются как декартовы произведения , если только они не заключены в кавычки (см. Расширение переменных ):

> set a 1 2 3 > set 1 a b c > echo $a$1 1a 2a 3a 1b 2b 3b 1c 2c 3c > echo $a» banana» 1 banana 2 banana 3 banana > echo «$a banana» 1 2 3 banana

Дополнительные сведения см. в разделе Списки .

Источник: runebook.dev

Fish — современная командная оболочка

Fish - современная командная оболочка

Friendly interactive shell или сокращено — fish, новая дружелюбная командная оболочка для Windows, Linux и MacOS, которая обладает встроенным автодополнением и подсветкой синтаксиса с поддержкой автоматического выявления ошибок ввода.

Первая версия датируется 2005 годом, казалось бы, прошло 15 лет, почему я назвал ее новой?

А все просто, основные популярные командные оболочки были выпущены еще в прошлом веке и на их фоне fish — свежий огурчик.

Название командой оболочкиПервый релиз
Bourne shell (sh) 1977
C shell (csh) 1978
Bourne again shell (bash) 1989
Z shell (zsh) 1990

Даты первых релизов популярных командных оболочек Unix/Linux

Особенности

  • История. Подсказывает команды из вашей истории выполнения так, как делает это веб-браузер.
  • Подсветка. Поддерживает подсветку синтаксиса, а так же автоматическое выявление ошибок ввода.
  • Автодополнение. Для автоматизации ввода опций и команд используют справочные man-руководства.
  • Скриптовый язык. Присутствует свой упрощённый язык написания сценариев.
  • Легко найти. Есть удобные средства поиска в истории выполненных команд.
  • Все активировано по умолчанию. После установки вам ничего не придется настраивать, все особенности оболочки работают из коробки.

Установка

В большинстве случаев установка fish отнимает минимум времени. Открываем официальный сайт fishshell.com и переходим в раздел Go Fish

Windows

Для MS Windows существует 3 варианта установки

Windows Subsystem for Linux

В подсистеме Linux для Windows мы делаем установку с помощью пакетного менеджера выбранного дистрибутива.

Cygwin

Во время установки необходимо поставить галочку в категории приложений Shell

MSYS2

Один из многих форков Cygwin, его основной плюс в интеграции пакетного менеджера ArchLinux. Для установки fish достаточно ввести команду pacman -S fish

Linux

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

Источник: egorovegor.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru