Présentation
FTP (protocole de transfert de fichiers) est un protocole réseau utilisé pour transférer des fichiers d'un système informatique à un autre. Même si la sécurité du FTP a tendance à susciter de nombreuses discussions, il s'agit toujours d'une méthode efficace de transfert de fichiers au sein d'un réseau sécurisé.
Dans ce tutoriel, nous allons vous montrer comment utiliser le ftp
commande pour se connecter à un système distant, transférer des fichiers et gérer des fichiers et des répertoires.
Prérequis
- Accès à un système local et à un serveur FTP distant (découvrez comment installer un serveur FTP sur Ubuntu, CentOS 7 ou Raspberry Pi).
- Une connexion Internet fonctionnelle.
- Accès à la fenêtre du terminal.
IMPORTANT : Le trafic FTP n'est pas crypté et est donc considéré comme dangereux. Il n'est pas recommandé de transférer des fichiers sur Internet via FTP. Pour en savoir plus sur les alternatives sécurisées au FTP, consultez nos articles sur SFTP et TSL contre SSL.
Syntaxe de la commande ftp Linux
Le ftp
de Linux La commande utilise la syntaxe de base suivante :
ftp [options] [IP]
L'IP
est l'adresse IP du système auquel vous vous connectez.
Les options disponibles pour le ftp
commande sont :
Options de commande FTP | Description |
---|---|
-4 | Utilisez uniquement IPv4. |
-6 | Utilisez uniquement IPv6. |
-e | Désactive l'édition des commandes et la prise en charge de l'historique. |
-p | Utilise le mode passif pour les transferts de données, vous permettant d'utiliser FTP malgré un pare-feu qui pourrait l'empêcher. |
-i | Désactive les invites interactives lors de plusieurs transferts de fichiers. |
-n | Désactive les tentatives de connexion automatique lors de la connexion initiale. |
-g | Désactive la globalisation des noms de fichiers. |
-v | Active la sortie détaillée. |
-d | Active le débogage. |
Le ftp
La commande vous connecte à un système distant et lance l'interface FTP. L'interface FTP utilise les commandes suivantes pour gérer et transférer des fichiers vers le système distant :
Commande | Description |
---|---|
! | Echappez temporairement vers le shell local. |
$ | Exécuter une macro. |
? | Afficher le texte d'aide. |
account | Fournissez un mot de passe pour le système distant. |
append | Ajouter un fichier local à un fichier sur le système distant. |
ascii | Définissez le type de transfert de fichier sur réseau ASCII (type par défaut). |
bell | Activer une alerte sonore une fois chaque transfert terminé. |
binary | Définissez le type de transfert de fichier sur transfert d'image binaire. |
bye | Quitter l'interface FTP. |
case | Basculer la sensibilité des majuscules/minuscules lors du mappage d'ID pendant le mget commande. |
cd | Modifier le répertoire de travail actuel sur le système distant. |
cdup | Passez au parent du répertoire de travail actuel sur le système distant. |
chmod | Modifier les autorisations de fichiers sur le système distant. |
close | Quitter l'interface FTP. |
cr | Désactiver la suppression du retour chariot lors des transferts de fichiers ASCII. |
debug | Basculer le mode de débogage. |
delete | Supprimer un fichier du système distant. |
dir | Répertorier le contenu d'un répertoire sur le système distant. |
disconnect | Terminer la session FTP. |
exit | Terminez la session FTP et quittez l'interface FTP. |
form | Définir le format de transfert de fichier. |
get | Transférer un fichier du système distant vers la machine locale. |
glob | Désactiver l'expansion des méta-caractères des noms de fichiers locaux. |
hash | Désactiver l'affichage du signe dièse ("# ") pour chaque bloc de données transféré. |
help | Afficher le texte d'aide. |
idle | Définir un minuteur d'inactivité pour le système distant. |
image | Définissez le type de transfert de fichier sur transfert d'image binaire. |
ipany | Autoriser tout type d'adresse IP. |
ipv4 | Autoriser uniquement les adresses IPv4. |
ipv6 | Autoriser uniquement les adresses IPv6. |
lcd | Modifier le répertoire de travail actuel sur la machine locale. |
ls | Répertorier le contenu d'un répertoire sur le système distant. |
macdef | Définissez une macro. |
mdelete | Supprimez plusieurs fichiers sur le système distant. |
mdir | Répertorier le contenu de plusieurs répertoires sur le système distant. |
mget | Transférer plusieurs fichiers du système distant vers la machine locale. |
mkdir | Créer un répertoire sur le système distant. |
mls | Répertorier le contenu de plusieurs répertoires sur le système distant. |
mode | Définissez le mode de transfert de fichiers. |
modtime | Afficher la dernière fois qu'un fichier sur le système distant a été modifié. |
mput | Transférer plusieurs fichiers de la machine locale vers le système distant. |
newer | Transférer un fichier du système distant vers la machine locale uniquement si l'heure de modification du fichier distant est plus récente que celle du fichier local (si une version locale du fichier n'existe pas, le fichier distant est automatiquement considéré comme plus récent). |
nlist | Répertorier le contenu d'un répertoire sur le système distant. |
<a href="https://phoenixnap.com/kb/nmap-scan-open-ports" target="_blank" rel="noreferrer noopener">nmap</a> | Définissez des modèles pour le mappage de noms de fichiers par défaut. |
ntrans | Définir la table de traduction pour le mappage de nom de fichier par défaut. |
open | Établir une connexion avec un serveur FTP. |
passive | Activer le mode de transfert passif. |
prompt | Forcer les invites interactives lors du transfert de plusieurs fichiers. |
proxy | Exécuter la commande sur une autre connexion (proxy). |
put | Transférer un fichier de la machine locale vers le système distant. |
pwd | Afficher le répertoire de travail actuel sur le système distant. |
qc | Désactiver l'affichage d'un caractère de contrôle (" ? ") dans la sortie des commandes de type ASCII. |
exit | Terminez la session FTP et quittez l'interface FTP. |
quote | Spécifiez une commande comme argument et envoyez-la au serveur FTP. |
recv | Transférer un fichier du système distant vers la machine locale. |
reget | Transférer un fichier du système distant vers la machine locale si le fichier local est plus petit que le fichier distant. Le transfert commence à la fin du fichier local. S'il n'y a pas de version locale du fichier, la commande ne s'exécute pas. |
rename | Renommer un fichier sur le système distant. |
reset | Effacer les réponses aux commandes en file d'attente. |
restart | Redémarrer une commande de transfert de fichier à un marqueur défini. |
rhelp | Afficher le texte d'aide pour le système distant. |
rmdir | Supprimer un répertoire sur le système distant. |
rstatus | Afficher l'état du système distant. |
runique | Désactiver le stockage des fichiers sur la machine locale avec des noms de fichiers uniques. |
send | Transférer un fichier de la machine locale vers le système distant. |
sendport | Basculer l'utilisation des commandes PORT. |
site | Spécifiez une commande en tant qu'argument et envoyez-la au serveur FTP en tant que commande SITE. |
size | Afficher la taille d'un fichier sur le système distant. |
status | Afficher l'état de l'interface FTP. |
struct | Définissez la structure de transfert de fichiers. |
runique | Désactiver le stockage des fichiers sur le système distant avec des noms de fichiers uniques. |
system | Afficher le système d'exploitation sur le système distant. |
tenex | Définissez le type de transfert de fichiers pour autoriser la connexion aux machines TENEX. |
tick | Basculer le compteur d'octets d'impression pendant les transferts. |
trace | Basculer le suivi des paquets. |
type | Définir un type de transfert de fichier. |
umask | Définir un masque d'autorisations par défaut pour la machine locale. |
user | Fournissez le nom d'utilisateur et le mot de passe pour le serveur FTP distant. |
verbose | Basculer la sortie détaillée. |
Comment utiliser la commande ftp sous Linux
Le ftp
connecte un système informatique à un serveur distant à l'aide du protocole FTP. Une fois connecté, il permet également aux utilisateurs de transférer des fichiers entre la machine locale et le système distant, et de gérer les fichiers et répertoires sur le système distant.
Établir une connexion FTP
Pour établir une connexion FTP à un système distant, utilisez le ftp
commande avec l'adresse IP du système distant :
ftp [IP]
Par exemple, se connecter à un serveur distant avec l'adresse IP 192.168.100.9 :
ftp 192.168.100.9
Connectez-vous au serveur FTP
Une fois que vous avez établi une connexion à un système distant en utilisant le ftp
commande, l'interface FTP vous demande de saisir un nom d'utilisateur et un mot de passe pour vous connecter :
La saisie des informations d'identification requises vous connecte et démarre l'interface FTP. Dans cet exemple, nous nous connectons en tant que phoenixnap utilisateur :
L'interface FTP est maintenant active et prête à exécuter des commandes :
Travailler avec des répertoires sur un système distant
À l'aide de FTP, vous pouvez effectuer une gestion de base des répertoires sur le système distant, comme la création de répertoires, le déplacement d'un répertoire de travail à un autre et la liste du contenu des répertoires.
Répertorier les répertoires
L'interface FTP vous permet de lister le contenu d'un répertoire sur un système distant en utilisant le ls
commande :
ls
L'utilisation de la commande sans aucune option affiche le contenu du répertoire de travail actuel du système distant. Dans cet exemple, il s'agit de la Accueil répertoire :
Spécification du chemin d'accès à un répertoire en tant qu'argument de ls
commande affiche le contenu de ce répertoire :
ls [path to directory]
Par exemple, répertorier le contenu de l'exemple répertoire :
ls Example
Ajouter le nom d'un fichier texte à la fin du ls
La commande enregistre le contenu d'un répertoire dans ce fichier :
ls [path to directory] [file name]
Par exemple :
ls Example listing.txt
Cette syntaxe de commande nécessite que vous tapiez Y
et appuyez sur Entrée pour confirmer l'enregistrement du fichier texte :
L'ouverture du fichier texte révèle le contenu du répertoire :
Le dir
et nlist
les commandes sont des alternatives au ls
commandez et travaillez de la même manière. L'interface FTP vous permet également de lister le contenu de plusieurs répertoires en utilisant le mls
commande :
mls [directory 1] [directory 2] .. [directory n]
Par exemple, l'exemple ci-dessous répertorie le contenu de Example et Exemple2 :
mls Example Example2 -
Comme le ls
commande, le mls
La commande permet aux utilisateurs d'enregistrer le contenu dans un fichier texte. Cette commande traite le dernier argument comme le nom du fichier texte. Si vous souhaitez répertorier le contenu du répertoire sans l'enregistrer dans un fichier texte, remplacez le nom du fichier par un tiret (-
).
Le mdir
la commande fonctionne de la même manière que mls
commande mais offre une sortie plus détaillée :
mdir Example Example2 -
Changer de répertoire
Utilisez le cd
commande pour changer le répertoire de travail actuel sur le système distant :
cd [path to directory]
Par exemple, passer à l'Exemple répertoire :
cd Example
Utilisez le cdup
commande pour se déplacer vers le parent du répertoire de travail actuel. Dans cet exemple, nous partons de l'Exemple répertoire vers Accueil répertoire :
cdup
Créer des répertoires
Utilisation du mkdir
permet de créer un répertoire sur le système distant :
mkdir [directory name]
Dans l'exemple ci-dessous, nous créons un répertoire nommé Example3 :
mkdir Example3
Télécharger des fichiers via FTP
Pour transférer un fichier d'un système distant vers la machine locale, utilisez la commande get
ou recv
commande.
get [remote file name]
OU
recv [remote file name]
Dans l'exemple ci-dessous, nous transférons example_file.txt à la machine locale.
get example_file.txt
Pour transférer example_file.txt et enregistrez-le sous example.txt sur la machine locale, utilisez :
get example_file.txt example.txt
Le transfert d'un fichier depuis un répertoire spécifique nécessite que vous vous déplaciez dans ce répertoire :
cd Example
get test01.txt
Le mget
La commande vous permet de transférer plusieurs fichiers en même temps. Par exemple, transférer test01.txt , test02.txt , et test03.txt de l'Exemple répertoire :
mget test01.txt test02.txt test03.txt
Télécharger des fichiers via FTP
Utilisez le put
ou send
commande pour transférer un fichier de la machine locale vers un système distant. Les deux commandes utilisent la même syntaxe de base :
put [local file name]
send [local file name]
Pour transférer example01.txt au système distant, utilisez :
put example01.txt
Pour télécharger example01.txt au système distant en tant que sample01.txt , utilisez :
put example01.txt sample01.txt
Se déplacer dans un répertoire spécifique vous permet de transférer des fichiers depuis ce répertoire :
cd Directory
put example.txt
Utilisez le mput
commande pour transférer plusieurs fichiers vers le système distant. Par exemple, transférez test04.txt , test05.txt , et test06.txt avec :
mput test04.txt test05.txt test06.txt
Renommer les fichiers
Utilisez le rename
commande pour renommer les fichiers sur le serveur distant. Le rename
commande utilise la syntaxe suivante :
rename [old file name] [new file name]
Par exemple, renommer sample01.txt vers sample_file01.txt :
rename sample01.txt sample_file01.txt
L'exécution réussie de la commande produit le résultat suivant :
Utilisez le rename
commande pour modifier également les noms de répertoire.
Dans l'exemple ci-dessous, l'Example3 le répertoire est renommé en Example03 :
rename Example3 Example03
Supprimer des fichiers
Le delete
La commande vous permet de supprimer un fichier sur le système distant. Il utilise la syntaxe suivante :
delete [file name]
Par exemple, supprimer sample_file01.txt :
delete sample_file01.txt
Utiliser le mdelete
La commande vous permet de supprimer plusieurs fichiers en même temps en ajoutant les noms de fichiers après la commande :
mdelete test04.txt test05.txt test06.txt
Une autre méthode consiste à utiliser le mdelete
commande avec un caractère générique. Par exemple, pour supprimer tous les .txt fichiers, utilisez :
mdelete *.txt
Fermer la connexion FTP
Utilisez le bye
, exit
, ou quit
commande pour mettre fin à la connexion FTP et quitter l'interface.
Utilisation de la disconnect
La commande ferme la connexion sans quitter l'interface.