L'outil curl, disponible sous Linux, permet d'interagir avec des protocoles réseau comme HTTP ou FTP directement depuis la ligne de commande. C'est un utilitaire polyvalent pour le téléchargement et l'envoi de fichiers via des URL.
Syntaxe générale
curl [options] [cible_url]
Paramètres courants
-A "chaîne_agent": Définir l'en-tête User-Agent envoyé au serveur.-b fichier_cookies: Lire les cookies à partir d'un fichier.-c fichier_cookies_sortie: Enregistrer les cookies dans un fichier après l'opération.-C décalage: Reprendre un transfert interrompu à un point donné.-D fichier_entêtes: Écrire les en-têtes HTTP dans un fichier spécifié.-e url_référent: Spécifier l'URL de référence (referer).-f: Masquer les erreurs HTTP en cas d'échec de connexion.-o fichier_sortie: Diriger la sortie vers un fichier.-O: Sauvegarder le fichier avec le nom distant.-r intervalle: Extraire une plage d'octets spécifique.-s: Mode silencieux, supprime la progression et les messages.-T fichier_à_envoyer: Téléverser un fichier.-u utilisateur:mot_de_passe: Fournir les identifiants d'accès.-w format_sortie: Afficher des informations après le transfert.-x hôte:port: Utiliser un serveur proxy HTTP.-#: Afficher une barre de progression.
Exemples pratiques
Récupérer le contenu d'une page web
curl https://site-exemple.fr
Cette commande affiche le code source HTML de la page dans le terminal.
Sauvegarder une page dans un fichier
Utilisation de la redirection shell :
curl https://site-exemple.fr > page_locale.html
Avec l'option -o :
curl -o page_sauvegardee.html https://site-exemple.fr
Télécharger un fichier distant avec son nom original
curl -O https://site-exemple.fr/ressources/image.png
Vérifier le code de réponse HTTP
curl -o /dev/null -s -w "%{http_code}" https://site-exemple.fr
Utile pour contrôler la disponibilité d'un service dans un script.
Passer par un proxy
curl -x 192.168.1.1:3128 https://site-exemple.fr
Gérer les cookies
Enregistrer les cookies reçus :
curl -c cookies.txt https://site-exemple.fr
Enregistrer les en-têtes complets (incluant les cookies) :
curl -D entetes.txt https://site-exemple.fr
Réutiliser des cookies pour une requête :
curl -b cookies.txt https://site-exemple.fr
Simuler un navigateur spécifique
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0" https://site-exemple.fr
Falsifier l'en-tête Referer
curl -e "site-referent.com" https://site-cible.fr
Téléchargements avancés
Téléchargement par lots avec motifs :
curl -O https://serveur-fichiers.fr/données[1-4].tar.gz
Renommer les fichiers pour éviter les écrasements :
curl -o "#1_#2.txt" https://serveur-fichiers.fr/{dossier_a,dossier_b}/fichier.txt
Téléchargement par segments :
curl -r 0-1024 -o segment1.bin https://serveur-fichiers.fr/gros_fichier.bin
curl -r 1025-2048 -o segment2.bin https://serveur-fichiers.fr/gros_fichier.bin
cat segment1.bin segment2.bin > fichier_complet.bin
Utiliser le protocole FTP
curl -O ftp://utilisateur:motdepasse@serveur-ftp.fr/dossier/document.pdf
Reprendre un transfert interrompu
curl -C - -O https://site-exemple.fr/archive.zip
Téléverser un fichier
curl -T fichier_local.jpg -u identifiant:secret ftp://serveur-ftp.fr/images/
Afficher les erreurs techniques
curl -f https://site-exemple.fr/ressource_manquante
Options supplémentaires (extrait)
-d "données": Envoyer des données via la méthode POST.-E fichier_certificat: Spécifier un certificat client pour les connexions SSL.-H "En-tête: Valeur": Ajouter un en-tête HTTP personnalisé.-k: Autoriser les connexions à des sites SSL non sécurisés.-L: Suivre les redirections HTTP.--limit-rate vitesse: Limiter la bande passante utilisée.--max-time secondes: Définir un temps maximum pour l'opération.--retry nombre: Réessayer en cas d'échec de transfert.