GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de commande Linux curl pour les débutants (5 exemples)

Bien que les navigateurs Web soient le principal moyen par lequel les utilisateurs téléchargent des contenus sur Internet, certaines commandes Linux vous permettent également de le faire. Ces outils sont pratiques sur les systèmes sans tête où il n'y a pas d'interface graphique.

Dans ce didacticiel, nous aborderons une de ces commandes - curl - qui, entre autres, vous permet de télécharger des choses à partir du Web. Veuillez noter que les exemples abordés dans cet article sont testés sur Ubuntu 16.04 LTS.

Commande curl Linux

La commande curl vous permet de télécharger et de télécharger des données via la ligne de commande sous Linux. Voici sa syntaxe :

curl [options] [URL...]

Et voici ce que dit la page de manuel à propos de cette commande :

 curl is a tool to transfer data from or to a server, using one of the
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,
TELNET and TFTP). The command is designed to work without user inter?
action.

curl offers a busload of useful tricks like proxy support, user authen?
tication, FTP upload, HTTP post, SSL connections, cookies, file trans?
fer resume, Metalink, and more. As you will see below, the number of
features will make your head spin!

curl is powered by libcurl for all transfer-related features. See
libcurl(3) for details.

Voici quelques exemples sous forme de questions-réponses qui devraient vous donner une meilleure idée du fonctionnement de curl.

Q1. Comment fonctionne la commande curl ?

L'utilisation de base est assez simple - il suffit de passer l'URL en entrée de la commande curl et de rediriger la sortie vers un fichier.

Par exemple :

curl http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent > test.torrent

Notez que vous pouvez également utiliser l'option -o ici.

-o, --output <file>
Write output to <file> instead of stdout.

Pour en revenir à notre exemple, alors que les données étaient téléchargées dans le fichier "test.torrent" sur mon système, la sortie suivante a été produite sur la ligne de commande :

Voici ce que dit la page de manuel à propos de cet indicateur de progression qui s'affiche dans la sortie :

 curl normally displays a progress meter during operations, indicating
the amount of transferred data, transfer speeds and estimated time
left, etc.

curl displays this data to the terminal by default, so if you invoke
curl to do an operation and it is about to write data to the terminal,
it disables the progress meter as otherwise it would mess up the output
mixing progress meter and response data.

If you want a progress meter for HTTP POST or PUT requests, you need to
redirect the response output to a file, using shell redirect (>), -o
[file] or similar.

It is not the same case for FTP upload as that operation does not spit
out any response data to the terminal.

If you prefer a progress "bar" instead of the regular meter, -# is your
friend.

Q2. Comment faire en sorte que curl utilise le même nom de fichier de téléchargement ?

Dans l'exemple précédent, vous voyez que nous devions spécifier explicitement le nom du fichier téléchargé. Cependant, si vous le souhaitez, vous pouvez forcer curl à utiliser le nom du fichier en cours de téléchargement comme nom de fichier local. Cela peut être fait en utilisant l'option de ligne de commande -O.

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

Donc, dans ce cas, un fichier nommé 'ubuntu-18.04-desktop-amd64.iso.torrent' a été produit dans la sortie sur mon système.

Q3. Comment télécharger plusieurs fichiers avec curl ?

Ce n'est pas compliqué non plus - transmettez simplement les URL de la manière suivante :

curl -O [URL1] -O [URL2] -O [URL3] ...

Par exemple :

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

Voici la commande ci-dessus en action :

Ainsi, vous pouvez voir que la progression du téléchargement pour les deux URL a été affichée dans la sortie.

Q4. Comment résoudre le problème "déplacé" ?

Parfois, lorsque vous transmettez une URL à la commande curl, vous obtenez des erreurs telles que "Moved" ou "Moved Permanently". Cela se produit généralement lorsque l'URL d'entrée redirige vers une autre URL. Par exemple, si vous ouvrez un site Web, par exemple oneplus.com, et qu'il redirige vers une URL correspondant à votre pays d'origine (comme oneplus.in), vous obtenez une erreur semblable à celle-ci :

Si vous voulez que curl suive la redirection, utilisez plutôt l'option de ligne de commande -L.

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

Q5. Comment reprendre un téléchargement à partir d'un point d'interruption ?

Parfois, un téléchargement est interrompu entre les deux. Alors naturellement, pour gagner du temps et des données, lorsque vous réessayez,. vous voudrez peut-être qu'il commence à partir du point où il a été interrompu. Curl vous permet de le faire en utilisant l'option de ligne de commande -C.

Par exemple :

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

La capture d'écran suivante montre la commande curl reprenant le téléchargement après son interruption.

Conclusion

Vous pouvez donc voir que la commande curl est un utilitaire utile si vous souhaitez télécharger des éléments via la ligne de commande. Nous venons de gratter la surface ici, car l'outil offre beaucoup plus de fonctionnalités. Une fois que vous avez fini de pratiquer les options de ligne de commande décrites dans ce didacticiel, vous pouvez vous diriger vers la page de manuel de curl pour en savoir plus.


Linux
  1. Tutoriel de commande cd Linux pour les débutants (8 exemples)

  2. Tutoriel de commande Linux comm pour les débutants (5 exemples)

  3. Tutoriel de commande Linux df pour les débutants (8 exemples)

  4. Tutoriel de commande de date Linux pour les débutants (8 exemples)

  5. Tutoriel de commande de nom d'hôte Linux pour les débutants (5 exemples)

Tutoriel Linux who Command pour débutants (8 exemples)

Tutoriel de commande Linux nl pour les débutants (7 exemples)

Tutoriel de commande Linux nm pour les débutants (10 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)