Qu’est-ce que la commande curl sous Linux et que pouvez-vous faire avec ?

La commande curl sous Linux est un excellent moyen d'automatiser le processus de chargement et de téléchargement de données à partir d'un serveur. Curl prend en charge tous les protocoles importants tels que HTTP, HTTPS, SFTP, FTP, etc.

Des fonctionnalités telles que la suspension et la reprise des transferts, la limitation de la bande passante, la prise en charge du proxy et l'authentification des utilisateurs en font un utilitaire de ligne de commande parfait pour le transfert de données.

Examinons en profondeur et explorons ce qu'est le curl et comment l'utiliser.

Qu'est-ce que la commande curl ?

Curl a été initialement développé pour automatiser le téléchargement périodique des taux de change à partir d'une page Web. Les taux de change en temps réel fournissaient des équivalents en couronnes suédoises en dollars américains aux utilisateurs de l'IRC. La popularité de curl a augmenté de façon exponentielle à mesure que les gens commençaient à utiliser ses applications répandues.

Curl est l'un des projets open source les plus anciens et les plus populaires à avoir jamais existé. Le nom signifie URL client et est utilisé dans d'innombrables systèmes à travers le monde. Curl trouve son utilisation dans une variété d'applications telles que le développement Web et les tests de bogues.

Les développeurs n'ont pas besoin de taper les commandes manuellement ; ils peuvent les regrouper dans des scripts et les utiliser pour automatiser des opérations complexes. Voici quelques exemples d'utilisation de curl.

Installer curl sur Linux

Bien que ce package populaire soit pré-installé sur la plupart des distributions Linux, vous pouvez facilement télécharger curl s'il n'est pas déjà installé sur la vôtre. Utilisez les commandes suivantes pour installer curl sur votre machine.

Sur Ubuntu et Debian :

 sudo apt install curl

Sur les distributions basées sur RHEL comme CentOS et Fedora :

 sudo yum install curl

Pour installer curl sur Arch Linux, tapez :

 sudo pacman -S curl

Connexe: Comment gérer les services systemd à l'aide de la commande systemctl sous Linux

Comment utiliser la commande curl

Curl utilise la syntaxe suivante pour toutes ses commandes :

 curl options url

…où les options et l' url changent en fonction de la tâche à accomplir. Curl télécharge le code source de l'URL, chaque fois que vous ne mentionnez pas l'option/la tâche. La dernière version de curl devine également le protocole – s'il n'est pas mentionné dans l'URL – et le définit par défaut sur HTTP.

Voici quelques commandes curl utiles pour effectuer diverses tâches fonctionnelles :

Télécharger un fichier avec curl

Vous pouvez télécharger des ressources via une URL spécifiée à l'aide de curl. Cette commande a deux indicateurs que vous pouvez utiliser ; -o et -O .

  • La commande -O enregistre le fichier dans le répertoire courant avec le même nom que dans le serveur distant.
  • La commande -o , quant à elle, vous permet de choisir le nom et l'emplacement du fichier.

Voici un exemple de ces deux commandes :

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

Le fichier est téléchargé dans le répertoire courant, avec son nom d'origine comme sur le serveur distant.

 curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz

Lorsque vous exécutez la commande susmentionnée, curl téléchargera et enregistrera le fichier sous le nom newfile.tar.gz . Notez que vous devrez spécifier le nom de fichier et le chemin d'accès au répertoire en entrée.

Reprendre un téléchargement interrompu à l'aide de curl

Les téléchargements peuvent être interrompus pour plusieurs raisons, comme des interruptions de réseau ou un lien expiré. La fonction de reprise d'un téléchargement interrompu aide dans de telles situations en vous évitant les tracas de télécharger à nouveau l'intégralité du fichier.

Utilisez l'indicateur -C avec -o ou -O pour reprendre un téléchargement interrompu à l'aide de curl.

 curl -C -O http://yourdomain.com/yourfile.tar.gz

Téléchargement de plusieurs fichiers à l'aide de curl

Il n'y a pas de commande dédiée pour télécharger plusieurs fichiers simultanément via curl, mais vous pouvez utiliser les indicateurs -o ou -O plusieurs fois dans la même commande pour obtenir des résultats similaires.

Par exemple:

 curl -O http://website1.com/file1.iso -O https://website2.com/file2.iso

La commande susmentionnée téléchargera les fichiers ISO des deux URL simultanément dans le répertoire actuel.

Obtenir les en-têtes HTTP d'une page Web

Les en-têtes HTTP contiennent des informations cruciales telles que l'agent utilisateur, le type de contenu et l'encodage. Vous pouvez demander l'en-tête HTTP d'une URL à l'aide des indicateurs -I (i majuscule, pas L) et –http2 :

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

Sortir:

La commande -I affiche diverses informations, notamment les détails du logiciel serveur, la date, le type de contenu, l'état de X-cache, etc.

Spécifier un taux de transfert maximum

Les transferts de fichiers acquièrent généralement la majeure partie de votre bande passante, vous empêchant d'effectuer toute autre tâche.

Pour résoudre ce problème, vous pouvez définir un taux de transfert maximal pour vos téléchargements à l'aide de curl. Utilisez la méthode –limit-rate suivie d'un modificateur k , m ou g (désigne respectivement les kilo-octets, les mégaoctets ou les gigaoctets).

La commande suivante limite la vitesse de transfert à 1 Mo/s :

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

Sortir:

Transférer des fichiers via FTP et curl

Vous pouvez transférer des fichiers à l'aide du protocole de transfert de fichiers en accédant à n'importe quel serveur FTP à l'aide de curl. Curl vous donne la possibilité de télécharger et de télécharger des fichiers après vous être connecté au serveur FTP.

Utilisez la commande suivante pour vous connecter à un serveur FTP :

 curl -u username:password ftp://ftp.example.com/

…où le nom d'utilisateur et le mot de passe sont les informations d'identification pour se connecter au serveur.

Vous pouvez télécharger n'importe quel fichier depuis le serveur en spécifiant l'URL du fichier dans la commande suivante :

 curl -u username:password -O ftp://ftp.example.com/file.tar.gz

Vous pouvez également télécharger des fichiers sur le serveur FTP à l'aide de l'indicateur -T :

 curl -T newfile.tar.gz -u username:password ftp://ftp.example.com

La commande -T suivie du fichier spécifié le télécharge sur le serveur FTP.

Connexe: Comment transférer en toute sécurité des fichiers sur Linux avec sftp

Utiliser des proxys avec curl

Curl prend en charge une pléthore de proxys différents comme HTTPS, HTTP et SOCKS. Vous pouvez utiliser ces proxys pour transférer des données en toute sécurité à l'aide de curl.

Utilisez la commande suivante pour configurer des proxys dans curl :

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

L'option -x vous connecte au port 8888 sur le serveur 192.168.44.1. Assurez-vous de remplacer les détails du proxy dans la commande par le proxy auquel vous souhaitez vous connecter. Le serveur proxy susmentionné ne nécessite pas d'authentification, mais vous pouvez accéder à un proxy protégé en utilisant la syntaxe suivante :

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

Spécifiez le nom d'utilisateur et le mot de passe séparés par un C olon à côté de l'indicateur -U .

Afficher les détails de la version

Cette commande est pratique lorsque vous souhaitez vérifier les informations de version du package. Utilisez l'indicateur –version pour afficher la version curl :

 curl --version

La sortie doit mentionner la version curl, ses protocoles et ses fonctionnalités.

Identifier les avantages de curl Command sous Linux

Curl est équipé de nombreuses options pour automatiser le transfert de données sur votre machine. La fonction de reprise des téléchargements interrompus et la prise en charge FTP sont utiles dans plusieurs applications.

Les exemples de ce didacticiel visent à montrer les commandes curl les plus populaires avec leurs codes respectifs pour vous aider à mieux comprendre la commande curl.