Commande curl Linux

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

  1. Prise en charge multi-protocoles: Prend en charge presque tous les protocoles réseau courants
  2. Fonctionnement sans interface: Outil en ligne de commande pur, adapté aux scripts et aux tâches automatisées
  3. 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.
  4. 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 curl
  • URL: 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

curl https://www.example.com

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

curl -O https://example.com/files/document.pdf

-OL'option l'enregistrera localement en utilisant le nom du fichier distant (document.pdf).

Exemple 3 : Envoyer une requête POST

Exemple

curl -X POST -d "username=admin&password=123456" https://api.example.com/login

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

curl -X POST -H "Content-Type: application/json" \
-d '{"name":"John","age":30}' \
https://api.example.com/users

Exemple 5 : Utiliser un cookie pour maintenir la session

Exemple

curl -c cookies.txt -b cookies.txt https://member.example.com
  • -cEnregistrer le cookie renvoyé par le serveur
  • -bEnvoyer le cookie enregistré

Utilisation avancée

1. Téléversement de fichier

Exemple

curl -F "file=@localfile.txt" https://upload.example.com

-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

curl -o /dev/null -s -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total: %{time_total}\n" https://example.com

Cette commande produira la sortie suivante :

  • Temps de connexion
  • Temps jusqu'au premier octet (TTFB)
  • Temps total

3. Utiliser un serveur proxy

Exemple

curl -x http://proxy.example.com:8080 https://target.com

-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

curl --cacert /path/to/cert.pem https://secure-site.com

Q2 : Comment afficher les en-têtes de requête et de réponse ?

Utiliser-vou-ioption:

Exemple

curl -v https://example.com  # Afficher le processus de communication détaillé
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

curl --limit-rate 200K -O https://example.com/largefile.iso

Exercices pratiques

  1. Essayez de télécharger des données d'API JSON publiques et de les enregistrer dans un fichier
  2. Utilisez curl pour tester le temps de réponse de votre serveur de développement local
  3. Entraînez-vous à envoyer une requête GET avec un en-tête d'authentification
  4. Essayez de téléverser un fichier de test vers le service HTTP bin gratuit

Exemple

# Exemple pratique
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 :

  1. Syntaxe de base et options courantes de curl
  2. Exemples d'utilisation dans divers scénarios courants
  3. Fonctionnalités avancées et conseils pratiques
  4. 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.

Linux 命令大全Encyclopédie des commandes Linux

Autres extensions