셸 프로토콜을 통해 전송된 파일
Files transferred over shell protocol셸 프로토콜(FISH)을 통해 전송되는 파일은 컴퓨터 간에 파일을 전송하고 원격 파일을 관리하는 데 SSH(Secure Shell) 또는 RSH(Remote Shell)를 사용하는 네트워크 프로토콜이다.
FICH의 장점은 서버 측에서 SSH 또는 RSH 구현, Unix 셸 및 표준 Unix 유틸리티 세트(예: scp, 예를 들어 scp를 통해 파일에 원격으로 액세스하는 다른 방법과는 달리 scp는 서버 측에서 scp를 필요로 함)뿐이라는 것이다.선택적으로 서버에 특수 FICH 서버 프로그램(start_fish_server라고 함)이 있을 수 있는데, 이 프로그램은 유닉스 셸 대신 FICH 명령을 실행해 운영을 가속시킨다.
이 프로토콜은 1998년 파벨 마체크가 미드나잇 커맨더 소프트웨어 도구를 위해 설계했다.
프로토콜 메시지
클라이언트가 다음 양식의 텍스트 요청을 전송함:
#FISH_CORD 인수...등가 셸 명령어(멀티 라인일 수 있음)
어류 명령은 모두 정의되며, 껍질 등가물은 다를 수 있다.피시 명령은 항상 우선순위가 있다: 서버는 피시 명령을 이해할 경우 실행될 것으로 예상된다.그러나 그렇지 않으면 셸 명령 실행을 시도할 수 있다.특별한 서버 프로그램이 없을 때, Unix 셸은 피시 명령을 코멘트로 무시하고 동등한 셸 명령을 실행한다.
서버 응답은 다중 회선이지만 항상 다음으로 종료됨
### xyz<선택 텍스트>
선을 긋다###
이 선을 표시하는 접두사,xyz
반환 코드 입니다.반송 코드는 FTP에서 사용되는 코드와 대등한 집합이다.코드 000과 001은 특별하며, 그 의미는 엔드 라인 이전의 서버 출력 유무에 따라 다르다.
세션 개시
클라이언트가 SSH 또는 RSH 연결을 시작함echo FISH:;/bin/sh
원격 시스템에서 실행된 명령으로.이를 통해 서버가 일반 RSH 또는 SSH와 FICH 연결을 구별할 수 있어야 한다.
서버에 전송된 처음 두 개의 명령은FISH
그리고VER
FICH 프로토콜의 버전과 확장을 협상하기 위해서입니다.
#FICE 에코, start_fish_server, '### 200' 에코
#VER 0.0.2 <feature1> <feature2> <...> 메아리 '## 000'
서버는 다음과 같은 행으로 VER 명령어에 회신할 수 있다.
VER 0.0.0 <feature2> <...> ### 200
지원되는 버전의 FICH 프로토콜과 지원되는 확장자를 나타낸다.
구현
- 미드나잇 커맨더
- Lftp
- fish:/// KDE 키오슬레이브(콘커터, 크루세이더 또는 돌고래 포함)
- tramp-fish.el은 그것을 Emacs TRAMP에 구현했다. Emacs TRAMP는 전체적으로 Fish: 원격 유닉스 쉘을 통한 파일에 대한 원격 액세스와 유사한 목표를 가지고 있다.