Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > e05c4514608e650af9b28d9be1d35a18 > files > 390

howto-html-it-10.1-4mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.21">
 <TITLE>FTP mini-HOWTO: Guida all'uso di FTP per il principiante</TITLE>
 <LINK HREF="FTP-4.html" REL=next>
 <LINK HREF="FTP-2.html" REL=previous>
 <LINK HREF="FTP.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="FTP-4.html">Avanti</A>
<A HREF="FTP-2.html">Indietro</A>
<A HREF="FTP.html#toc3">Indice</A>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="FTP.html#toc3">Guida all'uso di FTP per il principiante</A></H2>

<P><B>Una guida rapida all'uso di ftp.</B></P>

<P>Il programma ftp standard &egrave; il client originale ftp. Esso &egrave;
compreso nella configurazione standard della maggior parte delle
distribuzioni Linux. Apparve per la prima volta nel BSD4.2, sviluppato
dall'Universit&agrave; della California, a Berkeley.</P>

<H2><A NAME="ss3.1">3.1</A> <A HREF="FTP.html#toc3.1">Eseguire il programma <CODE>ftp</CODE></A>
</H2>

<P>Usare ftp &egrave; facile. Poniamo che ci si voglia connettere al sito
ftp anonimo metalab.unc.edu per scaricare l'ultima versione dei sorgenti del
kernel di Linux.</P>

<P>Si digiti, al prompt dei comandi:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ ftp metalab.unc.edu
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Il programma ftp tenter&agrave; di connettersi a metalab.unc.edu. Un
altro modo per fare ci&ograve; &egrave; quello di eseguire <CODE>ftp</CODE> dal
prompt dei comandi senza parametri, usando poi il comando <CODE>open</CODE>, con
il nome del sito come argomento:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ ftp
ftp> open metalab.unc.edu
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss3.2">3.2</A> <A HREF="FTP.html#toc3.2">Autenticarsi presso un server FTP</A>
</H2>

<P>Quando ci si connette ad un sito FTP, viene avviata una sessione di
autenticazione (premendo il tasto invio, ftp cercher&agrave; di autenticarvi
con lo stesso utente che state usando sulla macchina locale: in questo caso,
<CODE>foo</CODE>). Ci autentichiamo come <CODE>anonymous</CODE> o <CODE>ftp</CODE>, per
accedere all'archivio pubblico.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12
EST 1999) ready.
Name (metalab.unc.edu:foo): 
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Ora, si digiti un indirizzo e-mail completo come password (&egrave;
quello che la maggior parte dei siti FTP pubblici richiede).</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
331 Guest login ok, send your complete e-mail address as password.
Password:
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Completata con successo l'autenticazione (login), viene fornita
l'informazione seguente:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss3.3">3.3</A> <A HREF="FTP.html#toc3.3">Tipi di trasferimento file</A>
</H2>

<P>Dopo aver ottenuto accesso ad un sito ftp, <CODE>ftp</CODE> mostrer&agrave;
il tipo di trasferimento file. Nel nostro esempio, esso &egrave; binario. La
modalit&agrave; binaria trasferisce i file, bit per bit, cos&igrave; come
essi si trovano sul server FTP.
La modalit&agrave; ascii, invece, trasferisce direttamente il testo. Per
commutare tra le due modalit&agrave;, basta digitare <CODE>ascii</CODE> o
<CODE>binary</CODE>.</P>

<P>Si vogliono trasferire i sorgenti del kernel, cos&igrave; si mantiene la
modalit&agrave; di trasferimento file binaria. Si user&agrave; tale
modalit&agrave; anche per qualsiasi file non testuale, come immagini,
archivi zip/gzip, programmi eseguibili, ecc.
Nel dubbio, si usi la modalit&agrave; binaria.</P>


<H2><A NAME="ss3.4">3.4</A> <A HREF="FTP.html#toc3.4">Navigare ed elencare le directory</A>
</H2>

<P>Per vedere un elenco dei file, si digiti <CODE>ls</CODE>. Il comando
<CODE>ls</CODE> inviato al server ftp &egrave; eseguito sul server remoto,
cos&igrave; le opzioni da riga di comando che si potranno usare con esso
varieranno a seconda del server. Comunque, le opzioni pi&ugrave; comuni sono
di solito disponibili.
Controllare la pagina di manuale di <CODE>ls</CODE> per i dettagli.</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 33590
-r--r--r--   1 root     other    34348506 Dec 03 03:53 IAFA-LISTINGS
lrwxrwxrwx   1 root     other           7 Jul 15  1997 README -> WELCOME
-rw-r--r--   1 root     other         890 Nov 15 13:11 WELCOME
dr-xr-xr-x   2 root     other         512 Jul 15  1997 bin
dr-xr-xr-x   2 root     other         512 Jul 15  1997 dev
dr-xr-xr-x   2 root     other         512 Jul 18  1997 etc
drwxrwxrwx  11 ftp      20           4608 Nov 28 16:00 incoming
lrwxrwxrwx   1 root     other          13 Jun 04  1998 ls-lR -> IAFA-LISTINGS
dr-xr-xr-x  17 root     root          512 Jun 08 11:43 pub
dr-xr-xr-x   3 root     other         512 Jul 15  1997 unc
dr-xr-xr-x   5 root     other         512 Jul 15  1997 usr
226 Transfer complete.
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Se il comando <CODE>ls</CODE> elenca cos&igrave; tanti file che l'elenco
sparisce nella parte superiore dello schermo, &egrave; possibile usare la
combinazione di tasti Shift-PaginaSu per scorrere verso l'alto. Ci&ograve;
funziona sia nella console Linux che in xterm che in rxvt.</P>

<P>Negli archivi FTP pubblici, le risorse scaricabili sono di solito
contenute nella directory <CODE>/pub</CODE>. Nel nostro esempio, si sa che i
sorgenti del kernel si trovano nella directory <CODE>/pub/Linux/kernel</CODE>,
cos&igrave;, per accedere a tale directory, si digiti:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
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.
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>I messaggi mostrati, che iniziano con "250", sono informazioni spedite
dal server. In questo esempio, il server ftp &egrave; stato configurato per
spedire automaticamente il file README non appena si accede alla directory.</P>

<H2><A NAME="ss3.5">3.5</A> <A HREF="FTP.html#toc3.5">Download e upload dei file</A>
</H2>

<P>Adesso, dopo aver inviato un altro <CODE>ls</CODE>, capiamo di dover accedere
con <CODE>cd</CODE> alla directory v2.2. Grazie ad un ulteriore <CODE>ls</CODE>, si
trova il file che si desiderava scaricare. Si tratta di
<CODE>linux-2.2.13.tar.gz</CODE>.
Perci&ograve;, si digiti:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> get linux-2.2.13.tar.gz
local: linux-2.2.13.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).
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Il programma ftp ha iniziato a salvare il file remoto
<CODE>linux-2.2.13.tar.gz</CODE> nel file locale <CODE>linux-2.2.13.tar.gz</CODE>.</P>

<P>Se si fosse voluto salvarlo, piuttosto, nel file locale
<CODE>foo.tar.gz</CODE>, si sarebbe dovuto specificare nel modo seguente:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
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).
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Se si desidera scaricare pi&ugrave; di un file alla volta, si pu&ograve;
usare il comando <CODE>mget</CODE> (multiple get). Si possono specificare i file
che <CODE>mget</CODE> deve scaricare come una lista di nomi di file separati da
spazi, oppure tramite l'uso dei caratteri jolly. Per esempio:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> mget linux*
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Scaricher&agrave; tutti i file che iniziano con la stringa "linux".
Normalmente, <CODE>mget</CODE> avverte, per ogni file, che sta per scaricarlo.
Si pu&ograve; variare questo comportamento usando il comando
<CODE>prompt</CODE>.</P>

<P>Ora, supponiamo di aver scritto una parte di un programma e supponiamo di
volerla spedire alla MetaLab affinch&eacute; la includa nell'archivio di
software per Linux. Per prima cosa, ci si sposter&agrave; verso la directory
<CODE>/incoming</CODE> (la maggior parte dei server FTP pubblici prevede una
directory, chiamata solitamente &quot;incoming&quot; o &quot;uploads&quot;,
in cui si pu&ograve; eseguire l'upload dei file), poi si user&agrave; il
comando <CODE>put</CODE>:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
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)
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Il comando <CODE>put</CODE> funziona allo stesso modo di <CODE>get</CODE>,
cos&igrave; &egrave; possibile usare <CODE>mput</CODE> per l'upload di
pi&ugrave; file. Si pu&ograve; 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.</P>


<P>Cosa succede se il file <CODE>foo.tar.gz</CODE> non si trova nella directory
locale corrente al momento del tentativo di upload? Si pu&ograve; usare il
comando <CODE>lcd</CODE> (local change directory) per cambiare posizione tra le
directory locali:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> lcd /home/foo/
Local directory now /home/foo
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss3.6">3.6</A> <A HREF="FTP.html#toc3.6">Eseguire comandi di shell</A>
</H2>

<P>Il client ftp supporta l'uso del punto esclamativo (!) per eseguire
comandi locali. Per esempio, per ottenere un elenco dei file presenti nella
propria directory locale corrente, si digiti:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> !ls
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Ci&ograve; che accade &egrave; che ftp chiama la shell (specificata nella
variabile d'ambiente <CODE>$SHELL</CODE>), ed &egrave; questa che esegue
<CODE>ls</CODE>. In questo modo, si pu&ograve; eseguire qualsiasi riga di
comando che funziona con la propria shell, semplicemente facendola precedere
da &quot;!&quot; (la shell predefinita nella maggior parte delle
distribuzioni Linux &egrave; la bash: Bourne Again SHell). Si noti che
<CODE>!cd</CODE> non funziona nel modo atteso: da qui l'esigenza del comando
<CODE>lcd</CODE>.</P>


<H2><A NAME="ss3.7">3.7</A> <A HREF="FTP.html#toc3.7">hash e tick</A>
</H2>

<P>Non sarebbe carino poter monitorare il progresso dello scaricamento di un
file con ftp? Il comando <CODE>hash</CODE> mostra a video dei caratteri
cancelletto (ovvero '#') durante lo scaricamento di un file:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> hash
Hash mark printing on (1024 bytes/hash mark).
</PRE>
</CODE></BLOCKQUOTE>
</P>

<P>Come si intuisce, ftp mostrer&agrave; un carattere cancelletto per ogni
1024 byte di dati scaricati.</P>

<P>Esiste anche la possibilit&agrave; di usare <CODE>tick</CODE>:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp> tick           
Tick counter printing on (10240 bytes/tick increment).
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Quando si scaricher&agrave; un file, questo comando stamper&agrave; un
messaggio simile al seguente:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Bytes transferred: 11680
</PRE>
</CODE></BLOCKQUOTE>
</P>


<H2><A NAME="ss3.8">3.8</A> <A HREF="FTP.html#toc3.8">Altri comandi ftp</A>
</H2>

<P>Esistono molti altri comandi ftp. Se si possiede l'autorizzazione (e,
connettendosi al proprio account di shell privato, si dovrebbe possederla)
&egrave; possibile anche creare directory sul server remoto usando il
comando <CODE>mkdir</CODE>.
La rimozione di un file o di una directory sul server remoto &egrave;
possibile usando i comandi <CODE>delete</CODE> e <CODE>rmdir</CODE> rispettivamente.
Si possono anche cambiare i permessi associati a file e directory remote
usando il comando <CODE>chmod</CODE>.</P>

<P>Per informazioni pi&ugrave; avanzate sull'uso di ftp si veda l'help in
linea del programma ftp (accessibile digitando <CODE>help</CODE> senza argomenti
per una lista dei comandi disponibili, o seguito da
<CODE>&lt;nome_comando&gt;</CODE> per aiuto su un comando specifico. Un'altra
fonte &egrave; la pagina di manuale Unix di ftp, che si ottiene digitando
<CODE>man ftp</CODE> al prompt dei comandi.</P>

<HR>
<A HREF="FTP-4.html">Avanti</A>
<A HREF="FTP-2.html">Indietro</A>
<A HREF="FTP.html#toc3">Indice</A>
</BODY>
</HTML>