Thème Jannah La licence n'est pas validée, Rendez-vous sur la page des options du thème pour valider la licence, Vous avez besoin d'une seule licence pour chaque nom de domaine.

5 façons de télécharger facilement des fichiers sous Linux depuis un terminal

5 façons de télécharger des fichiers via un terminal sous Linux (autre que Curl ou Wget)

Sous Linux, le téléchargement de fichiers depuis le Terminal ne se limite pas à curl et wget. D'autres outils et commandes offrent une flexibilité et des fonctionnalités supplémentaires pour un téléchargement plus efficace. Que vous recherchiez une méthode alternative en raison de limitations ou que vous souhaitiez tester de nouvelles commandes pour un meilleur contrôle, explorer ces outils vous permettra d'approfondir vos connaissances et d'améliorer votre productivité avec le Terminal.

Tux, la mascotte Linux, tenant un câble Ethernet avec des icônes réseau autour de 1. 5 façons de télécharger facilement des fichiers sous Linux depuis un terminal.

Avez-vous déjà rencontré un problème système sans pouvoir envoyer une simple requête HTTP ? Vous essayiez peut-être de sauver un système ou de créer une image Docker. Parfois, vous avez besoin d'utiliser les outils disponibles, d'autres fois, vous êtes simplement curieux. Voici cinq façons de se connecter et de télécharger des fichiers via HTTP.

Tout d’abord, comprenez l’en-tête HTTP nécessaire.

Pour créer des connexions HTTP, vous devez souvent envoyer un en-tête HTTP. Vous devrez créer manuellement un en-tête HTTP pour certaines des commandes décrites ci-dessous, mais ce n'est pas compliqué.

Un en-tête HTTP est un petit bloc de texte qui initialise une connexion HTTP. Dans la plupart des exemples ci-dessous, l'en-tête HTTP se présente comme suit :

GET / HTTP/1.1\r\n
HOST: example.com\r\n
\r\n

La première ligne, appelée « requête », indique au client de récupérer un élément depuis un chemin spécifique. Ce chemin correspond à tout ce qui suit « .com » ou « .net », etc., dans l'URL (par exemple, exemple.com/chemin/foo).

  • La ligne hôte spécifie le nom de l'hôte auquel nous nous connectons.
  • Chaque ligne se termine par un retour chariot (\r) et un saut de ligne (\n). L'adresse complète se termine par une ligne vide.

L'URL ci-dessus récupère le document principal depuis example.com (chemin « / »). Maintenant que vous comprenez l'URL HTTP, vous pouvez l'utiliser avec certaines des commandes suivantes.

Telnet, mais cela ne fonctionne qu'avec les connexions HTTP traditionnelles.

La commande suivante paraît étrange, mais en réalité, nous créons un en-tête HTTP personnalisé, car Telnet n'est pas un client HTTP. Les parenthèses représentent un sous-shell, et chaque commande, séparée par un point-virgule, est exécutée et envoyée à Telnet une par une.

(echo "GET / HTTP/1.0"; echo "Host: example.com"; echo; sleep 1) | telnet example.com 80

Par exemple, si vous exécutez la commande suivante dans votre terminal, vous constaterez que grep reçoit chaque ligne individuellement :

(echo foobar; sleep 1; echo foobaz) | grep foo

Pour Telnet, cela signifie que chaque ligne de l'en-tête HTTP est reçue individuellement, sous forme de flux de données. La commande envoie également une ligne vide (écho) pour mettre fin à la connexion, puis attend une seconde, le temps que le serveur réponde. Cette attente est considérée comme fragile, car le temps de réponse n'est qu'une estimation. Vous devrez peut-être ajuster cette valeur si la connexion est interrompue trop tôt.

Lisez aussi:  Comment mettre à jour Fedora Linux

ملاحظة
Telnet ne peut pas utiliser TLS, cela ne fonctionnera donc qu'avec des connexions HTTP classiques.

conseil
HTTP/1.0 ferme automatiquement la connexion dès que le serveur répond, contrairement à HTTP/1.1. Nous utilisons donc HTTP/1.0 car Telnet n'est pas fiable pour télécharger des fichiers volumineux via HTTP ; il n'est donc pas nécessaire de maintenir la connexion ouverte.

Vous pouvez installer Telnet sur Fedora en utilisant la commande suivante :

sudo dnf install telnet -y

Pour Debian et d’autres systèmes, tapez la commande suivante :

sudo apt install telnet -y

Utilisateurs d'Arch, vous n'avez pas de chance ! Telnet n'est pas disponible dans les dépôts officiels. Cependant, PuTTY est disponible, vous pouvez donc l'utiliser à la place.

sudo pacman -S putty

Netcat est légèrement meilleur que Telnet.

5 façons de télécharger facilement des fichiers sous Linux depuis un terminal

Pour établir des connexions HTTP, la commande Netcat fonctionne presque de la même manière que la commande Telnet, à la différence près que nous lui fournissons un en-tête HTTP sous forme de bloc de texte unique. Les exemples ci-dessus et ci-dessous montrent que chaque ligne de l'en-tête HTTP se termine par le caractère de contrôle « \r\n » — un caractère doublé pour la dernière ligne, indiquant la fin de l'en-tête.

Aucun des exemples suivants (Netcat ou Ncat) n'est fiable pour télécharger des fichiers volumineux, mais il peut facilement télécharger de petits fichiers.

HTTP simple

Netcat ne prend pas en charge TLS (HTTPS), mais nous pouvons l'utiliser pour récupérer du HTTP simple.

printf "GET / HTTP/1.0\r\nHost: example.com\r\n\r\n" | nc example.com 80

Vous pouvez installer Netcat sur Fedora en utilisant la commande suivante :

sudo dnf install netcat -y

Pour Debian et d’autres systèmes, tapez la commande suivante :

sudo apt install netcat-openbsd -y

Pour les utilisateurs d'Arch, Netcat est disponible dans le référentiel supplémentaire :

sudo pacman -S openbsd-netcat

Avec TLS

Si vous souhaitez vous connecter via une connexion TLS, vous devrez utiliser Ncat, une amélioration de Netcat, qui fait partie du projet Nmap. Ncat permet également d'établir des connexions HTTP traditionnelles.

printf "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | ncat --ssl example.com 443

Vous pouvez installer Ncat sur Fedora en utilisant la commande suivante :

sudo dnf install nmap-ncat -y

Pour Debian et d’autres systèmes, tapez la commande suivante :

sudo apt install ncat -y

Pour les utilisateurs d'Arch, Ncat fait partie du package Nmap, vous devez donc taper la commande suivante :

sudo pacman -S nmap

Lorsque vous êtes désespéré, utilisez la bibliothèque Requests pour Python.

La commande suivante fonctionne bien avec du texte brut ou des fichiers HTML, mais ne gère pas correctement les données binaires (par exemple, des images, des fichiers zip, etc.).

python3 -c "import requests; print(requests.get('http://example.com').text)"

Pour télécharger correctement des données binaires, telles que des images ou des fichiers zip, utilisez la commande suivante :

python3 -c "import requests; open('output_file.zip','wb').write(requests.get('http://example.com/file.zip').content)"

Modifiez le fichier « output_file.zip » et l’URL.

Lisez aussi:  Top 5 des distributions Linux pour ordinateurs modernes hautes performances

Bien que la plupart des systèmes soient souvent préinstallés avec Python 3 (et pip), vous devrez installer la bibliothèque de requêtes séparément. Vous pouvez l'installer via pip ou le gestionnaire de paquets de votre distribution.

Si vous ne disposez pas des droits d'administrateur, vous pouvez l'installer dans le dossier personnel de votre utilisateur via pip. Saisissez la commande suivante :

pip install --user requests

Vous pouvez installer des applications via le gestionnaire de paquets Fedora en utilisant la commande suivante :

sudo dnf install python3-requests -y

Pour Debian et d’autres systèmes, tapez la commande suivante :

sudo apt install python3-requests -y

Pour Arch, tapez la commande suivante :

sudo pacman -S python-requests

HTTPie : un outil utile

HTTPie se présente comme un outil de test des API REST (services de pages web). La commande suivante effectue une requête simple pour obtenir le document HTML situé sur example.com :

http GET example.com

HTTPie prend en charge plusieurs fonctionnalités pratiques qui simplifient l'écriture d'URL. Par exemple, la commande suivante se connectera à un serveur hébergé localement sur votre système sur le port 3000 :

http :3000

Ajouter des paramètres à une URL est aussi simple que d’utiliser un double signe égal :

http httpbin.org/anything foo==bar

Cela créera une URL qui ressemble à http://httpbin.org/anything?foo=bar.

5 façons de télécharger facilement des fichiers sous Linux depuis un terminal

Pour établir une connexion HTTPS, utilisez la commande suivante :

https GET example.com

Bien que HTTPie soit principalement destiné à aider les développeurs, il fonctionne également bien comme client HTTP classique, ce qui le rend idéal pour le téléchargement de fichiers.

Lisez aussi:  8 commandes d'arrêt Linux utiles pour redémarrer ou arrêter un PC Linux

5 façons de télécharger facilement des fichiers sous Linux depuis un terminal

Vous pouvez installer HTTPie sur Fedora en utilisant la commande suivante :

sudo dnf install httpie -y

Pour Debian et d’autres systèmes, tapez la commande suivante :

sudo apt install httpie -y

Pour Arch, tapez la commande suivante :

sudo pacman -S httpie

Aria2 : Un outil puissant pour télécharger des fichiers vers des terminaux.

Il prend en charge plusieurs protocoles, notamment HTTP, HTTPS, FTP, SFTP, BitTorrent, WebSocket, etc. Il accélère également les téléchargements en créant plusieurs connexions parallèles. Pour télécharger un fichier, spécifiez simplement le dossier avec l'option « -d » et le nom du fichier obtenu avec l'option « -o ».

aria2c -d /tmp -o test.html http://example.com

Aria2 fonctionne de manière transparente avec HTTP et HTTPS, en téléchargeant des documents et des fichiers HTML.

Vous pouvez installer Aria2 sur Fedora en utilisant la commande suivante :

sudo dnf install aria2 -y

Pour Debian et d’autres systèmes, tapez la commande suivante :

sudo apt install aria2 -y

Pour Arch, tapez la commande suivante :

sudo pacman -S aria2

En raison d'une mauvaise gestion du protocole HTTP, les commandes Telnet et Netcat ne fonctionnent qu'avec des fichiers ne dépassant pas quelques kilo-octets. Pour télécharger des fichiers plus volumineux, vous devrez utiliser un client HTTP approprié. Les commandes Python, HTTPie et aria2 fonctionnent toutes comme de véritables clients HTTP. Pour déterminer si vous utilisez un véritable client HTTP, demandez-vous si vous devez injecter manuellement les en-têtes HTTP ; si c'est le cas, vous n'utilisez probablement pas de véritable client HTTP.

En pratique, Telnet et Netcat sont principalement utilisés comme outils d'urgence : utiles pour tester une connexion sans outils spécialisés. Ils offrent au moins une introduction intéressante aux niveaux inférieurs de la communication HTTP.

Pour en savoir plus sur Telnet, consultez notre article sur les différences entre Telnet et SSH. Nous avons également un autre article détaillant de nombreux autres cas d'utilisation de Netcat. Enfin, nous proposons un guide détaillé sur l'utilisation de HTTPie, un outil très utile.

Utiliser le terminal Linux vous offre de multiples options pour télécharger des fichiers, au-delà des outils les plus courants. Certaines commandes offrent des fonctionnalités avancées comme la reprise des téléchargements ou la gestion de différents protocoles, tandis que d'autres privilégient la simplicité et la rapidité. Le choix de l'outil approprié dépend de vos besoins, et essayer plusieurs méthodes vous offrira une plus grande flexibilité pour gérer efficacement vos fichiers.

Aller au bouton supérieur