Files transferred over shell protocol: Difference between revisions

Content deleted Content added
Tag: nowiki added
 
(11 intermediate revisions by 4 users not shown)
Line 1:
{{short description|Computer protocol}}
{{More sourcescitations needed|date=December 2009}}
 
'''Files transferred over Shell protocol''' ('''FISH''') is a network [[Protocol (computing)|protocol]] that uses [[Secure Shell]] (SSH) or [[Remote Shell]] (RSH) to [[file transfer|transfer files]] between computers and manage remote files.
Line 28:
 
== Session initiation ==
The client initiates SSH or RSH connection with <{{code>|echo FISH:;/bin/sh</code>|fish}} as the command executed on remote machine. This should make it possible for the server to distinguish FISH connections from normal RSH or SSH.
 
The first two commands sent to the server are <code>FISH</code> and <code>VER</code> to negotiate FISH protocol, its version and extensions.
{{sxhl|2=fish|<nowiki/>
 
#FISH
echo; start_fish_server; echo '### 200'
Line 37:
#VER 0.0.2 <feature1> <feature2> <...>
echo '### 000'
}}
 
The server may reply to VER command with a lines like
 
VER 0.0.0 <feature2> <...>
### 200
 
which indicates supported version of the FISH protocol and supported extensions.
 
== Implementations ==
* [[Midnight Commander]]<ref>{{cite web | url=https://github.com/MidnightCommander/mc/blob/master/src/vfs/fish/fish.c | title=Mc/Fish.c at master · MidnightCommander/Mc | website=[[GitHub]] }}</ref>
* [[Midnight Commander]]
* [[Far_ManagerFar Manager#Linux, MacOS and BSD version|far2l]] <ref>{{cite web | url=https://github.com/elfmz/far2l/issues/1819 | title=Feature: Consider porting FISH(FIle transfer over SHell filesystem) from Midnight Commander · Issue #1819 · elfmz/Far2l | website=[[GitHub]] }}</ref>
* [[Lftp]]<ref>{{cite web | url=https://github.com/lavv17/lftp/blob/master/src/Fish.cc | title=LFTP/SRC/Fish.cc at master · lavv17/LFTP | website=[[GitHub]] }}</ref>
* [[Lftp]]
* fish:// [[KDE]] [[KIO|kioslave]]<ref>{{cite web | url=https://github.com/KDE/kio-extras/blob/master/fish/fish.cpp | title=Kio-extras/Fish/Fish.CPP at master · KDE/Kio-extras | website=[[GitHub]] }}</ref> (with [[konqueror]], [[Krusader]] or [[Dolphin (file manager)|Dolphin]])
* fish as [https://github.com/greyltc/tcl-vfs/blob/master/library/template/fishvfs.tcl tcl-vfs]
* FISH was implemented in [[Emacs]] TRAMP some time ago, but support was removed<ref>[https://github.com/emacs-mirror/emacs/commit/03c1ad4351c10ec998410e8d34f52ac4a1a0decd#diff-96ee1cf8a36451f16ddf3f468f6ac74643eeee171d17054ca0c8cbf6653a26a8 related commit in Emacs]</ref><ref>{{cite web | url=https://lists.gnu.org/archive/html/tramp-devel/2010-09/msg00001.html | title=Re: Tramp's fish method }}</ref> (although TRAMP still can use shell connections in a similar way using tramp-sh.el script file)
 
== See also ==