Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Файлы, передаваемые по протоколу Shell ( FISH ) - это сетевой протокол, который использует Secure Shell (SSH) или Remote Shell (RSH) для передачи файлов между компьютерами и управления удаленными файлами.

Преимущество FISH заключается в том, что все, что ему требуется на стороне сервера, - это реализация SSH или RSH, оболочка Unix и набор стандартных утилит Unix (например, ls , cat или dd - в отличие от других методов удаленного доступа к файлам через удаленный компьютер). shell, например scp , который требует scp на стороне сервера). По желанию, на сервере может быть специальная программа FISH-сервера (называемая start_fish_server ), которая выполняет команды FISH вместо оболочки Unix и, таким образом, ускоряет операции.

Протокол был разработан Павлом Мачеком в 1998 году для программного инструмента Midnight Commander .

Сообщения протокола [ править ]

Клиент отправляет текстовые запросы следующего вида:

#FISH_COMMAND аргументы ...эквивалентные команды оболочки,который может быть многострочным

Все команды Fish определены, эквиваленты оболочки могут отличаться. Команды Fish всегда имеют приоритет: ожидается, что сервер выполнит команду Fish, если он ее поймет. Однако если этого не происходит, он может попытаться выполнить команду оболочки. Когда нет специальной серверной программы, оболочка Unix игнорирует команду fish как комментарий и выполняет эквивалентную команду (-ы) оболочки.

Ответы сервера многострочные, но всегда заканчиваются на

### xyz <необязательный текст>

линия. ###это префикс для обозначения этой строки, xyzэто код возврата. Коды возврата - это расширенный набор кодов, используемых в FTP . Коды 000 и 001 являются специальными, их значение зависит от наличия вывода сервера в конечной строке.

Инициирование сеанса [ править ]

Клиент инициирует соединение SSH или RSH с echo FISH:;/bin/shпомощью команды, выполняемой на удаленном компьютере. Это должно позволить серверу отличать FISH-соединения от обычных RSH или SSH.

Первые две команды, отправленные на сервер, - это FISHи VERдля согласования протокола FISH, его версии и расширений.

#РЫБЫэхо; start_fish_server; echo '### 200'
#VER 0.0.2 <feature1> <feature2> <...>эхо '### 000'

Сервер может ответить на команду VER такими строками, как

VER 0.0.0 <feature2> <...>### 200

который указывает поддерживаемую версию протокола FISH и поддерживаемые расширения.

Реализации [ править ]

См. Также [ править ]

Внешние ссылки [ править ]