3. Guide pour débutant

Un guide rapide pour utiliser FTP

Le client ftp original est distribué avec la plupart des distributions Linux. Sa première apparition fut dans le système BSD 4.2, développé par l'Université de Californie (Berkeley).

3.1. Lancer le programme ftp

Il est très simple d'utiliser ftp. Disons que vous souhaitiez vous connecter sur le serveur anonyme metalab.unc.edu, pour télécharger la dernière version des sources du noyau Linux.

En ligne de commande, entrez :

$ ftp metalab.unc.edu

Le programme FTP tentera de se connecter à metalab.unc.edu. Une autre façon de faire ceci est de tout d'abord lancer ftp en ligne de commande sans paramètre, puis d'utiliser la commande open, avec l'adresse du site comme argument :

$ ftp
ftp> open metalab.unc.edu

3.2. Se connecter à un serveur FTP

Lorsque vous vous connectez à un site FTP, il vous est demandé un nom d'utilisateur (ou login). En appuyant sur entrée, le programme vous connectera automatiquement avec votre nom d'utilisateur local (toto dans l'exemple ci-dessous). Nous nous identifions avec le nom d'utilisateur anonymous ou ftp, afin de récupérer un fichier public.

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:toto):

Maintenant, nous entrons une adresse électronique complète comme mot de passe (ce qui est demandé par la plupart des sites FTP publics).

331 Guest login ok, send your e-mail address as password.
Password:

Après une connexion réussie, les informations suivantes nous sont données :

Remote system type is UNIX. Using binary mode to transfer files.
ftp>

3.3. Types de transferts de fichiers

Après vous être identifié sur un site ftp, ftp vous indiquera le mode de transfert de fichier. Dans notre cas, c'est le mode binaire. Le mode binaire transfère les fichiers, octet par octet, en les conservant tels qu'ils sont sur le serveur FTP. Le mode Ascii, lui, téléchargera le texte directement. Vous pouvez entrer ascii ou binary pour changer de mode pendant la connexion.

Vous souhaitez télécharger les sources du noyau de votre système, donc vous laissez le type du transfert en mode binaire. Le mode binaire est aussi le mode que vous utiliserez pour transférer des fichiers qui ne sont pas des fichiers textes — comme des images, des archives (zip/gzip), des programmes exécutables, et cætera. En cas de doute, utilisez le mode binaire.

3.4. Explorer et voir la liste des fichiers

Pour afficher la liste des fichiers, utilisez la commande ls. Cette commande est exécutée sur le serveur distant, donc les options de la ligne de commande peuvent varier selon les serveurs. Les options les plus courantes de la commande ls sont en général utilisées, vérifiez la page de manuel de la commande ls pour plus de détails.

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.

Si la commande vous affiche trop de fichiers, et que la liste dépasse la hauteur de l'écran, vous pouvez utiliser la combinaison de touches Shift+PageUp pour revenir vers le début de la liste. Ceci marche sous Linux en mode console avec xterm ou rxvt.

Les archives publiques disposées sur les serveurs FTP se trouvent généralement dans le répertoire /pub. Dans cet exemple, vous savez déjà que les sources du noyau se trouvent dans le répertoire /pub/Linux/kernel, donc vous entrez la commande suivante pour vous rendre dans ce répertoire.

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.

Les messages que vous voyez, précédés de "250", sont les messages d'informations transmis par le serveur. Dans notre cas, le serveur ftp est configuré pour vous envoyer automatiquement le fichier README et l'afficher lorsque vous entrez dans le répertoire.

3.5. Télécharger et uploader des fichiers

Maintenant, après que vous ayez utilisé la commande ls, vous constatez que vous pouvez vous rendre dans le répertoire du noyau de votre choix (au moment où j'écris ce document, la version la plus récente est la v2.2). Accédez au répertoire et regardez les fichiers contenus dans le répertoire. Le fichier que vous souhaitez télécharger est linux-2.2.13.tar.gz. Donc vous entrez ceci :

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).

Le programme ftp commence à sauvegarder le fichier distant vers votre ordinateur.

Si vous souhaitez enregistrer le fichier distant vers le fichier toto.tar.gz, vous devez le spécifier en indiquant les paramètres suivants :

ftp> get linux-2.2.13.tar.gz toto.tar.gz
local: toto.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).

Si vous souhaitez télécharger plus d'un fichier à la fois, vous pouvez utiliser la commande mget. Vous pouvez utiliser la commande avec un nombre limité de nom de fichier, en utilisant les options prévues à cet effet. Par exemple :

ftp> mget linux*

Cette commande va télécharger les fichiers commençant par la chaîne de caractère "linux". Normalement, la commande vous demandera une confirmation de téléchargement de chaque fichier. Vous pouvez modifier cette option l'aide de la commande prompt.

Maintenant, disons que vous venez d'écrire une partie d'un programme, et que vous souhaitez transférer ce programme sur le serveur de MetaLab (uploader). Tout d'abord, il faut changer de répertoire pour aller dans le dossier /incoming (la plupart des serveurs FTP publics possèdent un dossier appelé incoming ou uploads, où des fichiers peuvent être uploadés), donc vous utilisez la commande d'upload :

ftp> cd /incoming
ftp> put toto.tar.gz
local: toto.tar.gz remote: toto.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for toto.tar.gz.
226 Transfer complete.
10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

La commande put s'utilise comme la commande get, donc vous pouvez utiliser la commande mput pour uploader plusieurs fichiers en même temps. Vous pouvez aussi uploader un fichier de votre disque dur sur le serveur avec un nom différent, en spécifiant le nouveau nom de fichier comme argument.

Mais comment uploader le fichier toto.tar.gz qui ne se trouve pas dans le répertoire local en cours ? Vous pouvez changer de répertoire local en utilisant la commande lcd :

ftp> lcd /home/toto/
Local directory now /home/toto

3.6. Utiliser des commandes shell

Le client ftp permet l'utilisation du point d'exclamation (!) pour effectuer des commandes locales. Par exemple, pour afficher la liste des fichiers dans le répertoire local en cours, entrez ceci :

ftp> !ls

Cette commande appelle les fonctions du shell, et utilise la commande indiquée après le "!". Vous pouvez utiliser n'importe quelle commande que votre shell supporte en appelant le "!". Notez que !cd ne changera pas de répertoire local, c'est pourquoi la commande lcd existe.

3.7. Progression des transferts

Mais ne souhaiteriez-vous pas connaître la progression de vos transfert pendant l'utilisation de FTP ? Vous pouvez utiliser la commande hash pour afficher la progression de votre transfert :

ftp> hash
Hash mark printing on (1024 bytes/hash mark).

Comme vous pouvez le voir, une indication vous sera affichée tous les 1024 bytes pendant le téléchargement.

Il y a aussi l'option tick :

ftp> tick
Tick counter printing on (10240 bytes/tick increment).
Bytes transferred: 11680

3.8. Autres commandes FTP

Il existe beaucoup d'autres commandes ftp. Si vous avez les permissions nécessaires, vous pouvez créer un répertoire sur le serveur distant en utilisant la commande mkdir. Vous pouvez aussi effacer un fichier avec la commande delete, ou un répertoire avec la commande rmdir. Enfin, vous pouvez changer les permissions sur les fichiers en utilisant la commande chmod.

Pour plus d'informations concernant l'utilisation de FTP, reportez-vous à l'aide intégrée du logiciel (accessible via la commande help sans arguments, pour la liste des commandes disponibles, ou avec help <nom de la commande> pour une aide sur une commande spécifique. Vous pouvez aussi utiliser l'aide Unix pour FTP en tapant man ftp.