Il existe plusieurs façons de contrôler et de communiquer avec les données dans le terminal Linux et curl
est la meilleure façon de le faire. curl
est un outil en ligne de commande que vous pouvez utiliser pour transférer des données depuis ou vers un serveur. Vous pouvez utiliser le curl
pour télécharger et charger des données à l'aide de l'un des protocoles pris en charge, à savoir FTP, HTTP, SFTP, HTTPS et SCP. Curl propose une gamme de fonctionnalités, notamment la possibilité de restreindre la bande passante, de reprendre les transferts, l'authentification des utilisateurs, la prise en charge des serveurs proxy et bien plus encore.
Ci-dessous la liste des protocoles actuellement supportés par le curl
:
- FTP/FTPS
- Gopher
- HTTP
- HTTP/2
- SMTP/SMTPS
- IMAP/IMAPS
- PME
- POP3/POP3S
- RTMP
- SCP
- SFTP
- RTSP
- LDAP/LDAPS
- Telnet et TFTP
- RTSP
Les fonctionnalités supplémentaires incluent :
- Authentification de l'utilisateur et du mot de passe
- De base
- Digest Plain
- NTLM
- CRAM-MD5
- Kerberos
- Négocier
- Cookies
- Tunnelisation proxy
- Reprendre l'opération de transfert de fichiers
- Certificats SSL
- Téléchargement des formulaires HTTP et HTTPS
wget
et curl
sont souvent comparés car leurs fonctionnalités se chevauchent dans une certaine mesure. Les deux outils peuvent récupérer du contenu sur Internet, mais wget a plus de fonctionnalités comme le grattage Web, les téléchargements récursifs et il est plus convivial. wget est considéré comme une meilleure option si vous souhaitez uniquement télécharger des fichiers dans le terminal.
Apprendre curl
Les bases de la commande vous aideront à télécharger et télécharger des fichiers avec des procédures d'authentification HTTP avancées. De plus, wget
ne prend en charge que FTP et HTTP(S), tandis que curl
prend en charge beaucoup plus de protocoles.
C'est tout à propos de curl
commande. Passons maintenant directement au terminal.
Installation de "curl" sous Linux
Si vous n'avez pas curl
sur votre système Linux, installez-le en utilisant la commande suivante. Sinon, ignorez les étapes d'installation et passez aux exemples.
sudo apt-get update
sudo apt-get install curl -y
Maintenant, vérifiez le curl
est disponible sur votre système en vérifiant sa version :
curl --version
Exemples d'utilisation de 'curl'
Nous pouvons faire beaucoup de choses sympas en utilisant curl
. Jetons un coup d'œil à certains d'entre eux.
Obtenir l'IP externe du serveur
Il existe une ressource incroyable sur Internet, qui vous permet d'obtenir votre adresse IP Internet - https://ifconfig.me (nommé à la gloire du célèbre utilitaire de configuration de réseau Linux - ifconfig
).
Si vous avez envoyé une requête HTTP à ce site à l'aide de curl, il vous renverra l'adresse IP externe dans le terminal sous la forme de la chaîne simple :
curl https://ifconfig.me
Ainsi, vous pouvez facilement mettre ce résultat dans la variable bash :
MY_EXTERNAL_IP=$(curl -s https://ifconfig.me)
echo $MY_EXTERNAL_IP
Voici le résultat :
Ici, -s
l'argument permet d'éviter la sortie de la progression du téléchargement curl :
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12 100 12 0 0 181 0 --:--:-- --:--:-- --:--:-- 181
Prévisions météo
Vous voulez vous sentir comme un hacker et afficher les informations météo directement dans le terminal ? Vous pouvez le faire en utilisant curl
!
curl http://wttr.in/LOCATION
Enregistrement de la sortie "curl" dans un fichier texte
Vous pouvez enregistrer la sortie du curl
commande au fichier spécifié.
Voici un exemple d'enregistrement de la sortie de l'API JSON (API de démonstration StarWars) dans le fichier :
curl https://swapi.dev/api/planets/1/ -o Tatooine.json
curl
est suffisamment intelligent pour détecter le téléchargement de fichiers binaires. Voici un exemple de téléchargement de Terraform, l'un des logiciels de gestion d'infrastructure en tant que code open source les plus populaires (en savoir plus sur Terraform) :
curl https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip -o terraform_0.15.0_linux_amd64.zip
Télécharger plusieurs fichiers
Vous pouvez utiliser curl
pour télécharger plusieurs fichiers à la fois. Ajoutez simplement -o
argument autant de fois que nécessaire.
curl -o https://example.com/files/file-1 -o file-2 https://example.com/files/file-2 -o file-3 https://example.com/files/file-3
Limiter la vitesse de téléchargement
Une autre fonctionnalité utile de curl
est la restriction de la vitesse de téléchargement du fichier. Vous pouvez le faire en utilisant le --limit-rate
argument et en spécifiant le taux de vitesse :
curl --limit-rate 1M -O https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip
La vitesse donnée est mesurée en octets/seconde, sauf si un suffixe est ajouté. Ajouter 'k' ou 'K' comptera le nombre en kilo-octets, 'm' ou M' en fait des mégaoctets, tandis que 'g' ou 'G' en fait des gigaoctets.
Liste des URL de téléchargement
Dans cet exemple, nous allons télécharger tous les fichiers répertoriés dans le fichier texte. Pour ce faire, vous devez utiliser une combinaison de xargs
avec curl
commandes :
xargs -n 1 curl -O < urllists.txt
Voici un résultat :
Authentification de base
Vous pouvez utiliser le -u
argument pour fournir le nom d'utilisateur et le mot de passe pour l'authentification HTTP de base (authentification de base) :
curl -u username:password -O https://example.com/files/README
Obtenir les en-têtes d'URL
Les en-têtes HTTP sont des paires clé-valeur séparées par des deux-points qui contiennent des informations telles que le type de contenu de ressource demandé, l'agent utilisateur, l'encodage, etc. Avec la demande ou la réponse, les en-têtes sont transférés entre le client et le serveur. Pour obtenir les informations d'en-tête de n'importe quel site Web, utilisez -I
argument :
curl -I https://hands-on.cloud
Utilisation des cookies
Lors de demandes ultérieures sur le même site Web, vous devrez peut-être utiliser les cookies.
Pour enregistrer les cookies reçus du serveur Web, utilisez la commande suivante :
curl -s -o /dev/null -c google_cookies.txt 'https://www.google.com'
Voici les arguments :
-s
– mode silencieux, curl n'imprime pas les informations sur la progression du téléchargement-o /dev/null
– ne pas imprimer la sortie de la page Web sur le terminal-c google_cookies.txt
– enregistrer les informations sur les cookies dans le fichier
Pour utiliser les cookies reçus de la requête précédente, utilisez la commande suivante :
curl -b google_cookies.txt 'https://www.google.com'
Vérification de la prise en charge de HTTP/2
Utilisez le -I
, --http2
et -s
options ensemble pour vérifier si le site spécifié prend en charge les en-têtes HTTP/2 :
curl -I --http2 -s https://hands-on.cloud/ | grep HTTP
Résumé
Dans cet article, nous avons couvert les exemples les plus couramment utilisés d'utilisation de curl
commande. Nous espérons que cet article vous permettra de démarrer avec ce puissant utilitaire. Si vous aimez l'article, s'il vous plaît, aidez-nous à le diffuser dans le monde !