13.9 Klienci FTP

FTP to skrót od File Transfer Protocol (protokół transferu plików). Pozwala na wysyłanie i odbieranie plików pomiędzy dwoma komputerami. Jest serwer FTP i klient FTP. W tej sekcji omówimy klienta.

Dla ciekawości, “client” to ty. “Serwer” to komputer który odpowie na twe żądanie FTP i pozwoli na zalogowanie się. Będziesz ściągał z i wysyłał pliki na serwer. Klient nie potrafi przyjmować połączeń FTP, potrafi jedynie łączyć się z serwerami FTP.

13.9.1 ftp

Aby połączyć się z serwrem FTP, po prostu uruchom komendę ftp(1) i podaj host:

% ftp <hostname> [port]

Jeśli na hoście uruchomiony jest serwer FTP, zapyta on o nazwę użytkownika i hasło. Możesz zalogować się jako ty, lub też jako osoba anonimowa - “anonymous”. Anonimowe strony FTP są bardzo popularne zwłaszcza wśród archiwów oprogramowania. Dla przykładu, aby ściągnąć Slackware Linux z FTP, musisz użyć anonimowego FTP.

Kiedy już się połączysz, zobaczysz znak zachęty ftp>. Są specjalne komendy dla FTP, ale są one podobne do standardowych komend. Poniżej jest lista podstawowych komend wraz z ich przeznaczeniem:

Table 13-1. komendy ftp

Komenda Działanie
ls Listuje pliki
cd <nazwakatalogu> Zmienia katalog
bin Ustawia binarny tryb transferu
ascii Ustawia tryb ASCII transferu
get <nazwapliku> Ściąga plik
put <nazwapliku> Wysyła plik
hash Przełącza wskaźnik statystyk znaku hash
tick Przełącza wskaźnik licznika bajtów
prom Przełącza na tryb interaktywny dla ściągania
mget <maska> Ściąga plik lub grupę plików; dozwolone są znaki wildcard
mput <maska> Wysyła plik lub grupę plików; dozwolone są znaki wildcard
quit Wylogowuje z serwera FTP

Możesz także użyć poniższych komend, które raczej nie potrzebują wytłumaczenia: chmod, delete, rename, rmdir. Kompletną listę komend wraz z ich znaczeniem otrzymasz wpisując help lub ?.

FTP jest dosyć prostym w użytkowaniu progrem, ale nie posiada interfejsu użytkownika, do którego wielu z nas jest dziś przyzwyczajonych. Strona manuala omawia opcje linii poleceń komendy ftp(1).

ftp> ls *.TXT
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
-rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
-rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
-rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
-rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
-rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
-rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
-rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
-rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
-rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
226 Transfer complete.
ftp> tick
Tick counter printing on (10240 bytes/tick increment).
ftp> get README81.TXT
local: README81.TXT remote: README81.TXT
200 PORT command successful.
150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
Bytes transferred: 12339
226 Transfer complete.
12339 bytes received in 0.208 secs (58 Kbytes/sec)

13.9.2 ncftp

ncftp(1) (wymawiany "Nik-F-T-P") jest alternatywnym do tradycyjnego ftp klientem i jest dostarczany ze Slackware. To nadal program tekstowy, ale oferuje więcej ulepszeń niż ftp, włączając:

Domyślnie, ncftp spróbuje zalogować się anonimowo na serwer który podasz. Możesz wymusić na ncftp aby ukazał znak zachęty opcją “-u”. Kiedy zalogujesz się, możesz używać tych samych komend jak w ftp, ale zauważysz ładniejszy interfejs, który działa bardziej jak bash.

ncftp /pub/linux/slackware > cd slackware-current/
Please read the file README81.TXT
  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
CWD command successful.
ncftp ...ware/slackware-current > ls
BOOTING.TXT               FAQ.TXT                   bootdisks/
CHECKSUMS                 FILELIST.TXT              extra/
CHECKSUMS.asc             GPG-KEY                   isolinux/
CHECKSUMS.md5             PACKAGES.TXT              kernels/
CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
COPYING                   README81.TXT              rootdisks/
COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
CURRENT.WARNING           Slackware-HOWTO
ChangeLog.txt             UPGRADE.TXT
ncftp ...ware/slackware-current > get README81.TXT
README81.TXT:                                           12.29 kB  307.07 kB/s
Grenlandia 2012