html
Il programma ftp standard è il client originale ftp. Esso è compreso nella configurazione standard della
maggior parte delle distribuzioni Linux. Apparve per la prima volta nel BSD4.2, sviluppato dall'Università
della California, a Berkeley.
Il programma ftp tenterà di connettersi a metalab.unc.edu. Un altro modo per fare ciò è quello di eseguire ftp
dal prompt dei comandi senza parametri, usando poi il comando open, con il nome del sito come argomento:
$ ftp
ftp> open metalab.unc.edu
Ora, si digiti un indirizzo e-mail completo come password (è quello che la maggior parte dei siti FTP pubblici
richiede).
331 Guest login ok, send your complete e-mail address as password.
Password:
1 of 4 08/30/2007 08:42 AM
FTP mini-HOWTO: Guida all'uso di FTP per il principiante http://www.pluto.it/files/ildp/HOWTO/FTP/FTP-3.html
ascii o binary.
Si vogliono trasferire i sorgenti del kernel, così si mantiene la modalità di trasferimento file binaria. Si userà
tale modalità anche per qualsiasi file non testuale, come immagini, archivi zip/gzip, programmi eseguibili,
ecc. Nel dubbio, si usi la modalità binaria.
Se il comando ls elenca così tanti file che l'elenco sparisce nella parte superiore dello schermo, è possibile
usare la combinazione di tasti Shift-PaginaSu per scorrere verso l'alto. Ciò funziona sia nella console Linux
che in xterm che in rxvt.
Negli archivi FTP pubblici, le risorse scaricabili sono di solito contenute nella directory /pub. Nel nostro
esempio, si sa che i sorgenti del kernel si trovano nella directory /pub/Linux/kernel, così, per accedere a tale
directory, si digiti:
ftp> cd pub/Linux/kernel
250-README for kernel
250-
250-What you'll find here: kernel sources and patches
250-
250-
250 CWD command successful.
I messaggi mostrati, che iniziano con "250", sono informazioni spedite dal server. In questo esempio, il
server ftp è stato configurato per spedire automaticamente il file README non appena si accede alla
directory.
Il programma ftp ha iniziato a salvare il file remoto linux-2.2.13.tar.gz nel file locale
2 of 4 08/30/2007 08:42 AM
FTP mini-HOWTO: Guida all'uso di FTP per il principiante http://www.pluto.it/files/ildp/HOWTO/FTP/FTP-3.html
linux-2.2.13.tar.gz.
Se si fosse voluto salvarlo, piuttosto, nel file locale foo.tar.gz, si sarebbe dovuto specificare nel modo
seguente:
ftp> get linux-2.2.13.tar.gz foo.tar.gz
local: foo.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).
Se si desidera scaricare più di un file alla volta, si può usare il comando mget (multiple get). Si possono
specificare i file che mget deve scaricare come una lista di nomi di file separati da spazi, oppure tramite l'uso
dei caratteri jolly. Per esempio:
ftp> mget linux*
Scaricherà tutti i file che iniziano con la stringa "linux". Normalmente, mget avverte, per ogni file, che sta per
scaricarlo. Si può variare questo comportamento usando il comando prompt.
Ora, supponiamo di aver scritto una parte di un programma e supponiamo di volerla spedire alla MetaLab
affinché la includa nell'archivio di software per Linux. Per prima cosa, ci si sposterà verso la directory
/incoming (la maggior parte dei server FTP pubblici prevede una directory, chiamata solitamente "incoming"
o "uploads", in cui si può eseguire l'upload dei file), poi si userà il comando put:
ftp> cd /incoming
ftp> put foo.tar.gz
local: foo.tar.gz remote: foo.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for foo.tar.gz.
226 Transfer complete.
10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)
Il comando put funziona allo stesso modo di get, così è possibile usare mput per l'upload di più file. Si può
anche effettuare l'upload di un file locale cambiandogli il nome sul server: basta specificare il nome del file
remoto e/o il nome del percorso come argomenti.
Cosa succede se il file foo.tar.gz non si trova nella directory locale corrente al momento del tentativo di
upload? Si può usare il comando lcd (local change directory) per cambiare posizione tra le directory locali:
ftp> lcd /home/foo/
Local directory now /home/foo
Ciò che accade è che ftp chiama la shell (specificata nella variabile d'ambiente $SHELL), ed è questa che
esegue ls. In questo modo, si può eseguire qualsiasi riga di comando che funziona con la propria shell,
semplicemente facendola precedere da "!" (la shell predefinita nella maggior parte delle distribuzioni Linux è
la bash: Bourne Again SHell). Si noti che !cd non funziona nel modo atteso: da qui l'esigenza del comando
lcd.
3 of 4 08/30/2007 08:42 AM
FTP mini-HOWTO: Guida all'uso di FTP per il principiante http://www.pluto.it/files/ildp/HOWTO/FTP/FTP-3.html
Non sarebbe carino poter monitorare il progresso dello scaricamento di un file con ftp? Il comando hash
mostra a video dei caratteri cancelletto (ovvero '#') durante lo scaricamento di un file:
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
Come si intuisce, ftp mostrerà un carattere cancelletto per ogni 1024 byte di dati scaricati.
Per informazioni più avanzate sull'uso di ftp si veda l'help in linea del programma ftp (accessibile digitando
help senza argomenti per una lista dei comandi disponibili, o seguito da <nome_comando> per aiuto su un
comando specifico. Un'altra fonte è la pagina di manuale Unix di ftp, che si ottiene digitando man ftp al
prompt dei comandi.
4 of 4 08/30/2007 08:42 AM