GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Curl sous Linux avec des exemples

curl est un utilitaire de ligne de commande pour transférer des données depuis ou vers un serveur conçu pour fonctionner sans interaction de l'utilisateur. Avec curl , vous pouvez télécharger ou charger des données à l'aide de l'un des protocoles pris en charge, notamment HTTP, HTTPS, SCP, SFTP et FTP. curl fournit un certain nombre d'options vous permettant de reprendre les transferts, de limiter la bande passante, la prise en charge du proxy, l'authentification des utilisateurs et bien plus encore.

Dans ce tutoriel, nous allons vous montrer comment utiliser l'outil curl à travers des exemples pratiques et des explications détaillées des options curl les plus courantes.

Installation de Curl #

Le package curl est préinstallé sur la plupart des distributions Linux actuelles.

Pour vérifier si le package Curl est installé sur votre système, ouvrez votre console, tapez curl , et appuyez sur entrée. Si vous avez curl installé, le système imprimera curl: try 'curl --help' or 'curl --manual' for more information . Sinon, vous verrez quelque chose comme curl command not found .

Si curl n'est pas installé, vous pouvez facilement l'installer en utilisant le gestionnaire de paquets de votre distribution.

Installer Curl sur Ubuntu et Debian #

sudo apt updatesudo apt install curl

Installer Curl sur CentOS et Fedora #

sudo yum install curl

Comment utiliser Curl #

La syntaxe du curl commande est la suivante :

curl [options] [URL...]

Dans sa forme la plus simple, lorsqu'il est invoqué sans aucune option, curl affiche la ressource spécifiée dans la sortie standard.

Par exemple, pour récupérer le example.com page d'accueil que vous exécuteriez :

curl example.com

La commande imprimera le code source de example.com page d'accueil dans la fenêtre de votre terminal.

Si aucun protocole n'est spécifié, curl essaie de deviner le protocole que vous voulez utiliser, et il sera par défaut HTTP .

Enregistrer la sortie dans un fichier #

Pour enregistrer le résultat du curl commande, utilisez soit la commande -o ou -O option.

Minuscule -o enregistre le fichier avec un nom de fichier prédéfini, qui dans l'exemple ci-dessous est vue-v2.6.10.js :

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

-O majuscule enregistre le fichier avec son nom de fichier d'origine :

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Télécharger plusieurs fichiers #

Pour télécharger plusieurs fichiers à la fois, utilisez plusieurs -O options, suivi de l'URL du fichier que vous souhaitez télécharger.

Dans l'exemple suivant, nous téléchargeons les fichiers iso Arch Linux et Debian :

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \     -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

Reprendre un téléchargement #

Vous pouvez reprendre un téléchargement en utilisant le -C - option. Ceci est utile si votre connexion tombe pendant le téléchargement d'un fichier volumineux, et au lieu de commencer le téléchargement à partir de zéro, vous pouvez continuer le précédent.

Par exemple, si vous téléchargez le fichier iso d'Ubuntu 18.04 à l'aide de la commande suivante :

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

et soudain votre connexion s'interrompt vous pouvez reprendre le téléchargement avec :

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Obtenir les en-têtes HTTP d'une URL #

Les en-têtes HTTP sont des paires clé-valeur séparées par deux-points contenant des informations telles que l'agent utilisateur, le type de contenu et l'encodage. Les en-têtes sont passés entre le client et le serveur avec la requête ou la réponse.

Utilisez le -I option pour récupérer uniquement les en-têtes HTTP de la ressource spécifiée :

curl -I --http2 https://www.ubuntu.com/

Tester si un site Web prend en charge HTTP/2 #

Pour vérifier si une URL particulière prend en charge le nouveau protocole HTTP/2, récupérez les en-têtes HTTP avec -I avec le --http2 choix :

curl -I --http2 -s https://linuxize.com/ | grep HTTP

Le -s l'option indique curl pour s'exécuter en mode silencieux (silencieux) et masquer la jauge de progression et les messages d'erreur.

Si le serveur distant prend en charge HTTP/2, curl imprime HTTP/2.0 200 :

HTTP/2 200

Sinon, la réponse est HTTP/1.1 200 :

HTTP/1.1 200 OK

Si vous avez la version curl 7.47.0 ou plus récent, vous n'avez pas besoin d'utiliser le --http2 car HTTP/2 est activé par défaut pour toutes les connexions HTTPS.

Suivre les redirections #

Par défaut, curl ne suit pas les en-têtes HTTP Location.

Si vous essayez de récupérer la version autre que www de google.com , vous remarquerez qu'au lieu d'obtenir la source de la page, vous serez redirigé vers la version www :

curl google.com

Le -L l'option indique curl pour suivre toute redirection jusqu'à ce qu'elle atteigne la destination finale :

curl -L google.com

Modifier le numéro d'agent utilisateur

Parfois, lors du téléchargement d'un fichier, le serveur distant peut être configuré pour bloquer l'agent utilisateur Curl ou pour renvoyer un contenu différent en fonction de l'appareil et du navigateur du visiteur.

Dans des situations comme celle-ci pour émuler un navigateur différent, utilisez le -A option.

Par exemple, pour émuler Firefox 60, vous utiliserez :

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

Spécifiez un numéro de taux de transfert maximal

Le --limit-rate L'option vous permet de limiter le taux de transfert de données. La valeur peut être exprimée en octets, kilooctets avec le k suffixe, mégaoctets avec le m suffixe et gigaoctets avec le g suffixe.

Dans l'exemple suivant curl téléchargera le binaire Go et limitera la vitesse de téléchargement à 1 Mo :

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Cette option est utile pour empêcher le curl consommant toute la bande passante disponible.

Transférer des fichiers via FTP #

Pour accéder à un serveur FTP protégé avec curl , utilisez le -u option et spécifiez le nom d'utilisateur et le mot de passe comme indiqué ci-dessous :

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Une fois connecté, la commande répertorie tous les fichiers et répertoires du répertoire personnel de l'utilisateur.

Vous pouvez télécharger un seul fichier depuis le serveur FTP en utilisant la syntaxe suivante :

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Pour télécharger un fichier sur le serveur FTP, utilisez le -T suivi du nom du fichier que vous souhaitez télécharger :

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Envoyer des cookies #

Parfois, vous devrez peut-être faire une requête HTTP avec des cookies spécifiques pour accéder à une ressource distante ou pour déboguer un problème.

Par défaut, lors de la demande d'une ressource avec curl , aucun cookie n'est envoyé ou stocké.

Pour envoyer des cookies au serveur, utilisez le -b switch suivi d'un nom de fichier contenant les cookies ou d'une chaîne.

Par exemple, pour télécharger le fichier rpm Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm vous devrez transmettre un cookie nommé oraclelicense avec la valeur a :

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Utiliser des proxys #

curl prend en charge différents types de proxys, notamment HTTP, HTTPS et SOCKS. Pour transférer des données via un serveur proxy, utilisez le -x (--proxy ) suivi de l'URL du proxy.

La commande suivante télécharge la ressource spécifiée à l'aide d'un proxy sur 192.168.44.1 port 8888 :

curl -x 192.168.44.1:8888 http://linux.com/

Si le serveur proxy requiert une authentification, utilisez le -U (--proxy-user ) suivi du nom d'utilisateur et du mot de passe séparés par deux-points (user:password ):

curl -U username:password -x 192.168.44.1:8888 http://linux.com/

Conclusion #

curl est un outil en ligne de commande qui vous permet de transférer des données depuis ou vers un hôte distant. Il est utile pour résoudre les problèmes, télécharger des fichiers, etc.

Les exemples présentés dans ce tutoriel sont simples, mais illustrent le curl le plus utilisé options et sont destinés à vous aider à comprendre comment le curl travail de commande.

Pour plus d'informations sur curl visitez la page de documentation Curl.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. Commande Linux Tee avec exemples

  4. Commande principale Linux avec exemples

  5. Commande JQ sous Linux avec exemples

15 Commande Linux ps avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande d'exportation Linux avec exemples

Commande IP Linux avec exemples