GNU/Linux >> Tutoriels Linux >  >> Linux

Apprenez à utiliser la commande CURL sous Linux avec ces exemples

Qu'est-ce que CURL ?

CURL est un outil de transfert de données. Il est également disponible en tant que bibliothèque pour les développeurs et en tant que CLI pour les cas d'utilisation basés sur un terminal. Les deux ont le même moteur à l'intérieur (la vérité est que l'outil CLI n'est que le programme qui utilise la bibliothèque sous le capot).

CURL fonctionne avec tous les protocoles que vous avez pu utiliser. Rendez-vous sur ce site pour vérifier si CURL fonctionne avec votre protocole cible ou non.

Que peut faire CURL ?

Hmm… Tout ce qui est lié au transfert de données. Tout le monde doit avoir utilisé un navigateur. Même maintenant, vous lisez cet article via votre navigateur. Quel navigateur fait, il demande une page et l'obtient en réponse. Il peut écrire et lire des cookies. Et puis il le rend (affichant le contenu, les images et exécutant les scripts JS).

CURL peut tout faire d'un navigateur à l'exception du rendu de la dernière partie car il n'est pas lié au transfert de données.

En conclusion, CURL peut télécharger des pages HTML, remplir des formulaires HTML et les soumettre, télécharger des fichiers à partir d'un serveur FTP/HTTP et télécharger des fichiers sur le même et lire/écrire des cookies.

Cela en fait un excellent outil à utiliser dans les scripts, le débogage et l'analyse médico-légale, etc.

Exemples de commandes Curl

Voyons ce que vous pouvez faire avec Curl.

1. Obtenir une réponse d'un serveur

Tout ce qui vient du serveur est une réponse à la demande. Obtenir une page HTML revient donc à télécharger un fichier.

Pour obtenir une réponse HTML de http://info.cern.c,

curl http://info.cern.ch/

Pour obtenir la liste des publications en réponse d'un serveur ( https://jsonplaceholder.typicode.com/posts),

curl https://jsonplaceholder.typicode.com/posts

Puisque nous savons comment obtenir une réponse d'un serveur, vous pouvez télécharger un fichier (disons le logo Google).

curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

La commande ci-dessus videra les données d'image binaires que vous ne pouvez pas afficher dans le terminal. Vous devez les enregistrer, puis utiliser une visionneuse de photos pour les voir.

Notez que divers indicateurs d'option peuvent être placés n'importe où sur la commande au lieu de l'ordre strict. Donc, ne vous inquiétez pas si vous avez placé une option à la fin alors que les exemples avaient le drapeau au début.

2. Enregistrez le fichier avec un nom de fichier par défaut

Chaque fichier qui est servi sur Internet a un nom de fichier. Pour utiliser le même nom de fichier que le nom de fichier téléchargé, utilisez l'indicateur -O.

curl -O http://www.google.com/robots.txt

3. Enregistrez le fichier avec un nom personnalisé

Pour enregistrer le nom de fichier avec votre propre nom personnalisé, utilisez l'indicateur -o suivi (strictement) d'un nom personnalisé.

curl -O http://www.google.com/robots.txt googleRobots.txt

4. Télécharger plusieurs fichiers

Pour télécharger plusieurs fichiers, séparez-les par un espace blanc.

curl url1 url2 url3

Si vous souhaitez utiliser le drapeau -O pour toutes les URL, utilisez

curl url1 url2 url3 -O -O -O 

La même solution de contournement doit être effectuée pour n'importe quel indicateur. En effet, la première occurrence d'un certain indicateur est pour la première URL, le deuxième indicateur est pour la deuxième URL et ainsi de suite.

5. Télécharger une série de fichiers

curl a la capacité intégrée de télécharger une gamme de fichiers à partir du serveur. Ceci peut être illustré à partir de l'exemple suivant.

curl http://www.google.com/logo/logo[1-9].png

La commande ci-dessus télécharge les fichiers de logo1.png, logo2.png, logo3.png et jusqu'à logo9.png.

6. Télécharger un fichier uniquement s'il est le plus récent

Pour télécharger un fichier uniquement si l'heure de modification du fichier est postérieure à l'heure indiquée.

curl url -z "DD MMM YY MM:HH:SS"

7. Reprendre le téléchargement

Si vous avez déjà partiellement transféré un fichier, vous pouvez reprendre le transfert en utilisant l'indicateur -C. Le décalage à partir duquel le transfert doit être poursuivi doit être passé en paramètre à l'indicateur -C.

curl -C 1024 http://seeni.linuxhandbook.org/files/largeFile.mpv -O

8. Télécharger un fichier

Pour télécharger un fichier sur le serveur, il faut utiliser l'indicateur -T suivi du chemin du fichier sur votre système local.

curl -T uploadFile.txt http://upload.linuxhandbook.org/files

9. Supprimer un fichier

Pour supprimer un fichier nommé deleteFile.txt sur un serveur, on peut utiliser l'indicateur -X qui est destiné à n'importe quel verbe/méthode HTTP (comme GET, POST, PUT, DELETE, PATCH). La plupart des serveurs FTP auront configuré la méthode DELETE sinon toutes les méthodes HTTP avancées.

curl -X DELETE http://upload.linuxhandbook.org/files/deleteFile.txt

Vous pouvez également modifier la commande ci-dessus pour que n'importe quelle méthode HTTP effectue la tâche correspondante. Par exemple, si votre serveur autorise la méthode TRUNCATE (c'est une méthode HTTP inventée, pas une méthode standard) qui supprime uniquement le contenu du fichier et non le fichier, vous pouvez utiliser la commande similaire à celle ci-dessous.

curl -X  TRUNCATE http://upload.linuxhandbook.org/files/mysql.dump

Les principales utilisations de curl sont mentionnées ci-dessus. Mais il peut y avoir des difficultés à combattre telles que les redirections, l'authentification des utilisateurs, les certificats SSL, etc. Nous pouvons les appeler des modules complémentaires car ils ne sont que facultatifs mais restent néanmoins cruciaux à certaines fins. Voyons quelques-uns de ces addons et comment les gérer avec curl dans la section suivante.

10. Éviter les redirections

Lorsque vous demandez http://www.google.com , seule la page régionale telle que www.google.co.in vous est proposée. Cela se fait à l'aide de redirections (paquets HTTP avec des codes d'état compris entre 300 et 399).

Vous pouvez éviter les redirections avec l'option L.

curl -L  http://www.google.com

11. Authentification

Lorsque le serveur est configuré pour servir uniquement certaines personnes disposant d'informations d'identification, un nom d'utilisateur et un mot de passe leur seront fournis. On peut se connecter à l'aide du drapeau -u.

curl -u username:password http://seeni.linuxhandbook.org/files/tasks.txt

12. Limiter le transfert de données

Si vous souhaitez imposer une limite de transfert de données, utilisez l'indicateur –limit-rate. La commande suivante essaie de télécharger le fichier avec une limite de débit de 10K.

curl --limit-rate 10K http://seeni.linuxhandbook.org/files/logoDetails.tgz

13. Afficher/Masquer le statut du transfert

Si la réponse est redirigée depuis le terminal, comme le téléchargement, le téléchargement, puis curl affiche automatiquement le compteur d'état/de progression du transfert.

Si vous ne voulez pas voir la jauge de progression, ajoutez simplement la commande avec l'indicateur -s. La progression ne sera pas affichée pour la réponse adressée au terminal.

14. Ignorer les certificats SSL

Vous souvenez-vous des situations dans lesquelles vous devez donner une exception de certificat de sécurité pour visiter certains sites Web ? Si vous faites confiance aux sources et que vous souhaitez effectuer un transfert de données, vous pouvez ignorer la validation du certificat SSL en utilisant l'indicateur -k.

curl -k https://notSoSecure.org/files/logoDetails.tgz

15. Obtenez également les informations d'en-tête

Pour afficher les informations d'en-tête avec les données transférées, utilisez l'indicateur -i.

curl -i http://www.google.com/robots.txt

16. Obtenir uniquement les informations d'en-tête

Si vous ne voulez que les en-têtes et non les données, utilisez le drapeau -I

curl -I http://www.google.com/robots.txt

17. Changer l'agent utilisateur

Certains sites Web et serveurs n'autorisent pas certains types d'appareils à accéder à leurs systèmes. Mais comment savent-ils que nous utilisons un type d'appareil spécifique ? Cela est dû au champ d'en-tête HTTP User-Agent. Nous pouvons changer cet agent utilisateur avec le drapeau -A.

curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png

18. Envoi de données au serveur

Si le serveur a besoin de données telles qu'un jeton ou une clé API, utilisez l'indicateur -d pour envoyer les données. Les données qui doivent être envoyées doivent suivre le drapeau dans la commande. On peut utiliser "&" pour combiner plusieurs données. Cela se fait généralement par des requêtes GET et POST dans les navigateurs. C'est l'un des moyens par lesquels vous pouvez envoyer les informations de votre formulaire.

curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent

19. Écrire des cookies dans un fichier

Les cookies sont de petites informations qui permettent de maintenir une session avec un protocole HTTP sans état. Si vous souhaitez en savoir plus sur les cookies, consultez cette excellente ressource.

Pour écrire des cookies dans un fichier, l'indicateur -c suivi du nom de fichier du cookie doit être utilisé.

curl -c googleCookie.txt http://www.google.com/files

20. Lecture des cookies à partir d'un fichier

Pour lire un cookie à partir du fichier, l'indicateur -b suivi du nom de fichier du cookie peut être utilisé.

curl -b googleCookie.txt http://www.google.com/files

Notez que l'indicateur -b lit uniquement le cookie à partir du fichier. Donc, si le serveur renvoie un autre cookie, vous devrez peut-être utiliser l'option -c pour les écrire.

21. Démarrer une nouvelle session

Si vous souhaitez lancer une nouvelle session en supprimant les cookies, utilisez l'indicateur -j. Il démarre une nouvelle session même si vous avez fourni le fichier cookie à lire avec l'indicateur -b.

curl -b googleCookie.txt http://www.google.com/files -j

Toutes nos félicitations! Tu es arrivé au bout. Si vous trouvez cet article utile, partagez-le avec vos amis et suivez-nous sur les réseaux sociaux. Si vous avez des suggestions à propos de cet article ou de tout autre sujet, n'hésitez pas à les déposer ci-dessous.


Linux
  1. Commande Linux wc avec exemples

  2. Comment utiliser la commande IP sous Linux avec des exemples

  3. Commande d'alias Linux :comment l'utiliser avec des exemples

  4. Commande de tri sous Linux avec des exemples

  5. commande chattr sous Linux avec des exemples

Commande Linux WC avec exemples

Apprenez à utiliser la commande Chmod avec ces exemples

Utilisation de la commande Linux mv avec des exemples

Commande de montage Linux avec exemples

Commande Linux gawk avec exemples

Linux make Commande avec des exemples