Cosa è Curl e come si usa | Linuxiano.it
Privacy Policy

Cosa è Curl e come si usa

Curl

Curl Trasferire dati da o verso un server, e altro da  terminale

Linguaggio di programmazione orientato agli oggetti per applicazioni web interattive. L’obiettivo principale del linguaggio è quello di integrare la formattazione e la programmazione web. Rende possibile includere oggetti complessi all’interno di semplici documenti senza dover utilizzare diversi linguaggi di programmazione o piattaforme di sviluppo.

Il linguaggio mira ad affrontare un problema di lunga data: le diverse componenti che costituiscono qualsiasi documento web moderno spesso richiedono metodi di implementazione notevolmente differenti: diversi linguaggi, strumenti, framework e spesso anche diversi team di sviluppo. La problematica è quella di permettere a blocchi diversi di comunicare tra loro senza sforzo. Affronta la problematica fornendo un’interfaccia sintattica e semantica a tutti i livelli della creazione di contenuto web: dal semplice HTML a complessi linguaggi di programmazione a oggetti.

Combina markup di test o (come in HTML), scripting (come in JavaScript) e alto potere computazionale (come in Java, C# o C++) all’interno di un unico framework. È utilizzato in una gamma di applicazioni enterprise, Business to Business (B2B) e Business to Consumer (B2C).wiki

Già a metà degli anni ’90 un programmatore svedese di nome Daniel Stenberg diede il via a un progetto che alla fine divenne quello che oggi conosciamo come Curl. È uno strumento da riga di comando per trasferire dati da o verso un server, utilizzando uno dei protocolli supportati (HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP o FILE). Alimentato da Libcurl. Questo strumento è preferito per l’automazione, poiché è progettato per funzionare senza l’interazione dell’utente e può trasferire più file contemporaneamente.

Il pacchetto è preinstallato sulla maggior parte delle distribuzioni Linux oggi. Le opzioni -V o –version restituiranno la versione e anche i protocolli e le funzionalità supportati nella versione corrente:

Terminale

Curl -V

Risultato

curl 7.58.0 (x86_64-pc-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

Installazione

Per installare su Ubuntu/Debian aprite un terminale (CTRL+ALT+T) e copiate i seguenti comandi:

Terminale

sudo apt install curl

Su CentOS/Fedora

Terminale

sudo yum install curl

Comando Curl su Linux

Il comando consente di scaricare e caricare dati utilizzando CLI (la riga di comando). Questa è la sua sintassi:

Terminale

curl [opzioni] [URL]

  • opzioni – Le opzioni Curl che iniziano con uno o due trattini.
  • URL: URL del server remoto.

Utilizzo

La forma più semplice che può essere utilizzata è senza opzioni e visualizzerà la risorsa specificata in [url] sullo standard dell’ output.

Nel seguente esempio verrà recuperato quello delle pagine del blog linuxiano.it:

Terminale

curl https://linuxiano.altervista.org/2019/04/libvir-tqemu-stack-kvm-su-debian/

Il comando precedente stamperà il codice sorgente della pagina del blog linuxiano.it che sarà specifichicato nella finestra del terminale.

Se non si specifica il protocollo, Curl cercherà di indovinare il protocollo che desideriamo utilizzare impostatandolo su HTTP.

È possibile passare l’URL come input al comando e reindirizzare l’output su un file.

Esempio:

Terminale

curl https://linuxiano.altervista.org/2019/04/libvir-tqemu-stack-kvm-su-debian/> install_terraform.html

La sintassi dell’URL dipende dal protocollo e più URL possono essere scritti come set come:

Terminale

curl https: // sito web. {uno, due, tre} .it

Usare lo stesso nome del file di download

se vuoi, puoi forzare Curl a usare lo stesso nome del file che viene scaricato come nome del file locale. Questo può essere fatto usando l’opzione -O della riga di comando:

Terminale

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

Riprendi un download interrotto

Se un download è stato interrotto per qualche motivo, potete utilizzare -C per riprendere il download da dove era stato interrotto:

Terminale

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

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 1904M 0 4263k 0 0 786k 0 0:41:18 0:00:05 0:41:13 844k

Come scaricare più file

Per scaricare più file contemporaneamente possiamo utilizzare più flag O, seguiti dall’URL dei file che desideriamo scaricare:

Terminale

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

Gli URL con serie di sequenze numeriche possono essere scritti con:

Terminale

curl ftp://ftp.example.com/file[1-30].jpeg

Visualizzare un indicatore di avanzamento durante il download del file per indicare la velocità di trasferimento, la quantità di dati trasferiti, il tempo residuo, ecc …

Terminale

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

Curl

Se ti piace una barra di avanzamento anziché il contatore, puoi usare l’opzione  – # come nell’esempio sopra, o -silent se vuoi disabilitarlo completamente:

Terminale

curl -O –silent http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso

Come risolvere il problema del sito web spostato

A volte potresti trovare un URL che genera errori come “Spostati” o “Spostati permanentemente”. Questo di solito accade quando l’URL reindirizza ad un altro URL. Ad esempio, google.com reindirizza a un URL www, quindi ottieni un errore simile a questo:

Terminale

curl google.com

<HTML><HEAD><meta http-equiv=”content-type” content=”text/html;charset=utf-8″>
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF=”http://www.google.com/”>here</A>.
</BODY></HTML>

Per dire a curl di seguire il reindirizzamento, usa l’opzione -L da riga di comando:

Terminale

curl -L google.com

Ottieni le intestazioni HTTP di un URL

Per recuperare le intestazioni HTTP del sito Web specificato, utilizzare il flag -I:

Terminale

curl -I www.linuxiano.it

Come limitare la velocità di trasferimento massima

L’utilizzo per limitare la velocità di trasferimento dati è:

Terminale

curl –limit-rate [value] [URL]

Il valore può essere espresso in byte, kilobyte con il suffisso k, megabyte con il suffisso m e gigabyte con il suffisso g.

Il seguente comando limiterà la velocità di download a 1 MB:

Terminale

curl –limit-rate 1m -O http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso

Scarica file da o carica file su un server FTP con o senza autenticazione

Per accedere a un server FTP protetto con il comando curl utilizzaremo il flag -u con nome utente e password.
Il seguente comando elencherà tutti i file e le directory nella home directory dell’utente:

Terminale

curl -u USERNAME: PASSWORD ftp://ftp.linuxiano.it/

Per scaricare il file utilizzare:

Terminale

curl -u USERNAME:PASSWORD ftp://ftp.linuxiano.it/file.tar.gz

Per caricare il file sul server FTP usa il flag -T:

Terminale

curl -T newfile.tar.gz -u USERNAME:PASSWORD ftp://ftp.linuxiano.it/

NOTA: se il server FTP consente accessi anonimi, non è necessario utilizzare -u nome utente: password

Grazie! per l’utilizzo della Guida di Linuxiano.

Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Iscriviti al sito

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio


Ho letto

l’informativa Privacy

e autorizzo il trattamento dei miei dati personali per le finalità ivi indicate.

Risolvi il reCAPTCHA per dimostrare che non sei un robot:
[recaptcha]

clicca qui per tornare a Linuxiano