Commande curl Linux
Encyclopédie des commandes Linux
Qu'est-ce que la commande curl ?
curl (Client URL) est un puissant outil en ligne de commande utilisé pour transférer des données dans les systèmes Linux/Unix. Il prend en charge plusieurs protocoles, notamment HTTP, HTTPS, FTP, SFTP, etc., et est un outil indispensable pour les développeurs et les administrateurs système dans leur travail quotidien.
Principales fonctionnalités de curl
- Prise en charge multi-protocoles: Prend en charge presque tous les protocoles réseau courants
- Fonctionnement sans interface: Outil en ligne de commande pur, adapté aux scripts et aux tâches automatisées
- Riche en fonctionnalités: Prend en charge le téléversement/téléchargement de fichiers, la soumission de formulaires, la gestion des cookies, etc.
- Multiplateforme: Disponible sur Linux, macOS et Windows
Structure de syntaxe de base
Le format de syntaxe de base de la commande curl est le suivant :
curl [options] [URL...]
Description des paramètres
options: Divers paramètres optionnels utilisés pour contrôler le comportement de curlURL: Une ou plusieurs URL auxquelles accéder
Explication détaillée des options et paramètres courants
1. Contrôle de base des requêtes
| Option | Description | Exemple |
|---|---|---|
-X |
Spécifier la méthode HTTP | curl -X POST https://example.com |
-d |
Envoyer des données POST | curl -d "name=John" https://example.com |
-G |
Envoyer les données -d comme paramètres GET | curl -G -d "q=keyword" https://search.com |
-H |
Ajouter un en-tête de requête | curl -H "Content-Type: application/json" https://api.com |
2. Contrôle de la sortie
| Option | Description | Exemple |
|---|---|---|
-o |
Enregistrer la sortie dans un fichier | curl -o output.html https://example.com |
-O |
Enregistrer en utilisant le nom du fichier distant | curl -O https://example.com/file.zip |
-s |
Mode silencieux (ne pas afficher la progression) | curl -s https://api.com/data.json |
-v |
Afficher le processus de communication détaillé | curl -v https://example.com |
3. Authentification et sécurité
| Option | Description | Exemple |
|---|---|---|
-u |
Authentification par nom d'utilisateur/mot de passe | curl -u user:pass https://secure.com |
-k |
Ignorer la vérification du certificat SSL | curl -k https://self-signed.com |
--cacert |
Spécifier le certificat CA | curl --cacert cert.pem https://secure.com |
4. Autres options pratiques
| Option | Description | Exemple |
|---|---|---|
-L |
Suivre les redirections | curl -L https://short.url |
-I |
Obtenir uniquement les informations d'en-tête | curl -I https://example.com |
--limit-rate |
Limiter la vitesse de transfert | curl --limit-rate 100K https://largefile.com |
Analyse d'exemples pratiques
Exemple 1 : Obtenir le contenu d'une page web
Exemple
Cette commande la plus simple récupérera le contenu de l'URL spécifiée et l'affichera dans le terminal.
Exemple 2 : Télécharger des fichiers
Exemple
-OL'option l'enregistrera localement en utilisant le nom du fichier distant (document.pdf).
Exemple 3 : Envoyer une requête POST
Exemple
Cette commande envoie le nom d'utilisateur et le mot de passe au point de terminaison de connexion.
Exemple 4 : Requête POST avec des données JSON
Exemple
-d '{"name":"John","age":30}' \
https://api.example.com/users
Exemple 5 : Utiliser un cookie pour maintenir la session
Exemple
-cEnregistrer le cookie renvoyé par le serveur-bEnvoyer le cookie enregistré
Utilisation avancée
1. Téléversement de fichier
Exemple
-FUtilisé pour la soumission de formulaires de type multipart/form-data, couramment utilisé pour le téléversement de fichiers.
2. Tester le temps de réponse d'un site web
Exemple
Cette commande produira la sortie suivante :
- Temps de connexion
- Temps jusqu'au premier octet (TTFB)
- Temps total
3. Utiliser un serveur proxy
Exemple
-xL'option spécifie l'adresse et le port du serveur proxy.
Questions fréquentes
Q1 : Comment résoudre les erreurs de vérification de certificat curl ?
Lorsque vous rencontrez des erreurs de certificat SSL, vous pouvez temporairement utiliser-kl'option pour ignorer la vérification (non recommandé pour les environnements de production), ou configurer correctement le certificat CA :
Exemple
Q2 : Comment afficher les en-têtes de requête et de réponse ?
Utiliser-vou-ioption:
Exemple
curl -i https://example.com # Afficher uniquement les en-têtes de réponse
Q3 : Comment limiter la vitesse de téléchargement ?
Utiliser--limit-rateoption (l'unité peut être K, M) :
Exemple
Exercices pratiques
- Essayez de télécharger des données d'API JSON publiques et de les enregistrer dans un fichier
- Utilisez curl pour tester le temps de réponse de votre serveur de développement local
- Entraînez-vous à envoyer une requête GET avec un en-tête d'authentification
- Essayez de téléverser un fichier de test vers le service HTTP bin gratuit
Exemple
curl https://httpbin.org/get
curl -o test.json https://api.github.com/users/octocat
curl -X POST -F "file=@test.txt" https://httpbin.org/post
Résumé
curl est un puissant outil de transfert de données réseau dans les systèmes Linux. Après avoir étudié cet article, vous devriez maîtriser :
- Syntaxe de base et options courantes de curl
- Exemples d'utilisation dans divers scénarios courants
- Fonctionnalités avancées et conseils pratiques
- Solutions aux problèmes courants
Pour plus de détails, vous pouvez consulter la documentation officielle de curl ou utiliserman curlConsultez la page de manuel. Au fur et à mesure que vous accumulez de l'expérience pratique, vous constaterez que curl peut accomplir bien plus que ces fonctions de base.