GNU/Linux >> Linux Esercitazione >  >> Linux

Tutorial sui comandi di Linux curl per principianti (5 esempi)

Sebbene i browser Web siano il mezzo principale attraverso il quale gli utenti scaricano materiale da Internet, ci sono alcuni comandi Linux che ti consentono anche di farlo. Questi strumenti sono utili su sistemi headless in cui non è presente la GUI.

In questo tutorial, discuteremo di uno di questi comandi:curl - che tra le altre cose ti permette di scaricare materiale dal Web. Tieni presente che gli esempi discussi in questo articolo sono testati su Ubuntu 16.04 LTS.

Comando Linux curl

Il comando curl consente di scaricare e caricare dati tramite la riga di comando in Linux. Di seguito è riportata la sua sintassi:

curl [options] [URL...]

Ed ecco cosa dice la pagina man su questo comando:

 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.

Di seguito sono riportati alcuni esempi in stile domande e risposte che dovrebbero darti un'idea migliore di come funziona il curl.

Q1. Come funziona il comando curl?

L'utilizzo di base è abbastanza semplice:basta passare l'URL come input al comando curl e reindirizzare l'output a un file.

Ad esempio:

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

Nota che puoi anche usare l'opzione -o qui.

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

Tornando al nostro esempio, mentre i dati sono stati scaricati nel file 'test.torrent' sul mio sistema, è stato prodotto il seguente output sulla riga di comando:

Ecco cosa dice la pagina man su questo indicatore di avanzamento che viene visualizzato nell'output:

 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. Come fare in modo che curl utilizzi lo stesso nome del file di download?

Nell'esempio precedente, abbiamo dovuto specificare in modo esplicito il nome del file scaricato. Tuttavia, se lo desideri, puoi forzare curl a utilizzare il nome del file scaricato come nome del file locale. Questo può essere fatto usando l'opzione della riga di comando -O.

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

Quindi, in questo caso, nell'output del mio sistema è stato prodotto un file denominato "ubuntu-18.04-desktop-amd64.iso.torrent".

T3. Come scaricare più file usando curl?

Anche questo non è complicato:basta passare gli URL nel modo seguente:

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

Ad esempio:

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

Ecco il comando sopra in azione:

Quindi puoi vedere che l'avanzamento del download per entrambi gli URL è stato mostrato nell'output.

Q4. Come risolvere il problema "trasferito"?

A volte, quando passi un URL al comando curl, ricevi errori come "Spostato" o "Spostato in modo permanente". Questo di solito accade quando l'URL di input reindirizza a un altro URL. Ad esempio, apri un sito web, ad esempio oneplus.com, che reindirizza a un URL del tuo paese di origine (come oneplus.in), quindi ricevi un errore simile al seguente:

Se vuoi che curl segua il reindirizzamento, usa invece l'opzione della riga di comando -L.

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

Q5. Come riprendere un download dal punto di interruzione?

A volte, un download viene interrotto nel frattempo. Quindi, naturalmente, per risparmiare tempo e dati, quando ci riprovi. potresti voler iniziare dal punto in cui è stato interrotto. Curl ti consente di farlo usando l'opzione della riga di comando -C.

Ad esempio:

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

La schermata seguente mostra il comando curl che riprende il download dopo che è stato interrotto.

Conclusione

Quindi puoi vedere, il comando curl è un'utilità utile se desideri scaricare materiale tramite la riga di comando. Abbiamo appena graffiato la superficie qui, poiché lo strumento offre molte più funzionalità. Una volta che hai finito di esercitarti con le opzioni della riga di comando discusse in questo tutorial, puoi andare alla pagina del manuale di curl per saperne di più.


Linux
  1. Tutorial sul comando cd di Linux per principianti (8 esempi)

  2. Tutorial comando Linux comm per principianti (5 esempi)

  3. Linux df Command Tutorial per principianti (8 esempi)

  4. Tutorial sul comando della data di Linux per principianti (8 esempi)

  5. Tutorial sul comando del nome host Linux per principianti (5 esempi)

Linux who Command Tutorial per principianti (8 esempi)

Linux nl Command Tutorial per principianti (7 esempi)

Tutorial sui comandi Linux nm per principianti (10 esempi)

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)