Comando Curl in Linux con esempi

curl è un’utilità da riga di comando per il trasferimento di dati da o verso un server progettato per funzionare senza interazione dell’utente. Con curl, è possibile scaricare o caricare dati utilizzando uno dei protocolli supportati tra cui HTTP, HTTPS, SCP , SFTP e FTP . curl fornisce una serie di opzioni che consentono di riprendere i trasferimenti, limitare la larghezza di banda, supporto proxy, autenticazione utente e molto altro.,

In questo tutorial, vi mostreremo come utilizzare lo strumento curl attraverso esempi pratici e spiegazioni dettagliate delle opzioni curl più comuni.

Installazione di Curl #

Il pacchetto curl è preinstallato sulla maggior parte delle distribuzioni Linux oggi.

Per verificare se il pacchetto Curl è installato sul sistema, aprire la console, digitare curl e premere invio. Se hai installato curl, il sistema stamperà curl: try 'curl --help' or 'curl --manual' for more information. Altrimenti, vedrai qualcosa comecurl command not found.,

Securl non è installato, puoi installarlo facilmente usando il gestore di pacchetti della tua distribuzione.

Install Curl su Ubuntu e Debian #

sudo apt updatesudo apt install curl

Install Curl su CentOS e Fedora #

sudo yum install curl

Come Usare Curl #

La sintassi per il curl comando è il seguente:

curl 

Nella sua forma più semplice, se invocato senza alcuna opzione curl visualizza la risorsa specificata nello standard output.,

Ad esempio, per recuperare la homepage example.com si eseguirà:

curl example.com

Il comando stamperà il codice sorgente della homepage example.com nella finestra del terminale.

Se non viene specificato alcun protocollo, curl tenta di indovinare il protocollo che si desidera utilizzare e verrà impostato come predefinito su HTTP.

Salvare l’output in un file #

Per salvare il risultato del comandocurl, utilizzare l’opzione-o o-O.,

Minuscole -o salva il file con un nome predefinito, che nell’esempio riportato di seguito è vue-v2.6.10.js:

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Maiuscole -O salva il file con il suo nome file originale:

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Scarica Più file #

Per scaricare più file contemporaneamente, l’utilizzo di più -O opzioni, seguita da l’URL del file che si desidera scaricare.,

Nel seguente esempio stiamo scaricando i file iso di Arch Linux e Debian:

Riprendi un download #

Puoi riprendere un download usando l’opzione -C -. Ciò è utile se la connessione si interrompe durante il download di un file di grandi dimensioni e, invece di avviare il download da zero, è possibile continuare quello precedente.

Ad esempio, se stai scaricando Ubuntu 18.,04 file iso utilizzando il seguente comando:

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

e improvvisamente la connessione si interrompe, puoi riprendere il download con:

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

Ottenere le Intestazioni HTTP in un URL #

HTTP headers sono separate da due punti di coppie chiave-valore che contiene informazioni come agente utente, il tipo di contenuto e la codifica. Le intestazioni vengono passate tra il client e il server con la richiesta o la risposta.,ha specificato di risorse:

curl -I --http2 https://www.ubuntu.com/

verificare se un Sito web Supporta i protocolli HTTP/2 #

Per verificare se un particolare URL supporta il nuovo protocollo HTTP/2 protocollo , recuperare le Intestazioni HTTP con -I con il --http2 opzione:

curl -I --http2 -s https://linuxize.com/ | grep HTTP

-s opzione dice curl per l’esecuzione in un silenzio (il silenzio) e nascondere l’indicatore di stato e messaggi di errore.,

Se il server remoto supporta i protocolli HTTP/2, curl stampa HTTP/2.0 200:

HTTP/2 200

in caso Contrario, la risposta è HTTP/1.1 200:

HTTP/1.1 200 OK

Se si dispone di curl versione 7.47.0 o più recente, non è necessario utilizzare il tag --http2 opzione a causa di HTTP/2 è abilitato per impostazione predefinita per tutte le connessioni HTTPS.

Segui i reindirizzamenti #

Per impostazione predefinita,curl non segue le intestazioni di posizione HTTP.,egli pagina sarete reindirizzati al www versione:

curl google.com

-L opzione indica curl a seguire i redirect fino a quando non raggiunge la destinazione finale:

curl -L google.com

Modificare l’User-Agent #

a Volte, quando il download di un file, il server remoto può essere impostato per bloccare l’Arricciatura User-Agent o per tornare a diversi contenuti a seconda del visitatore dispositivo e browser.,

In situazioni come questa per emulare un browser diverso, utilizzare l’opzione -A.

Ad esempio per emulare Firefox 60 si dovrebbe usare:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

Specificare una velocità massima di trasferimento #

L’opzione--limit-rate consente di limitare la velocità di trasferimento dei dati. Il valore può essere espresso in byte, kilobyte con il suffissok, megabyte con il suffissom e gigabyte con il suffissog.,

Nel seguente esempiocurlscaricherà il binario Go e limiterà la velocità di download a 1 mb:

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Questa opzione è utile per evitare checurl consumi tutta la larghezza di banda disponibile.

il Trasferimento di File via FTP #

Per l’accesso protetto server FTP con curl con il -u opzione e specificare il nome utente e la password, come mostrato di seguito:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

una Volta effettuato l’accesso, il comando elenca tutti i file e le directory nella home directory dell’utente.,

È possibile scaricare un singolo file dal server FTP utilizzando la seguente sintassi:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Per caricare un file sul server FTP, utilizzare il tag -T seguito dal nome del file che si desidera caricare:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Invia i Cookie #

a Volte, potrebbe essere necessario effettuare una richiesta HTTP con specifico i cookie per accedere a una risorsa remota o per il debug di un problema.

Per impostazione predefinita, quando si richiede una risorsa concurl, nessun cookie viene inviato o memorizzato.,

Per inviare i cookie al server, utilizzare l’opzione -b seguita da un nome file contenente i cookie o una stringa.

Per esempio, per scaricare Oracle Java JDK file rpm jdk-10.0.2_linux-x64_bin.rpm avrete bisogno di passare un cookie di nome oraclelicense con valore a:

Utilizzo di Proxy #

curl supporta diversi tipi di proxy, compreso il HTTP, HTTPS e CALZINI., Per trasferire i dati tramite un server proxy, utilizzare l’opzione-x (--proxy), seguita dall’URL del proxy.,

Il comando seguente consente di scaricare la risorsa specificata utilizzando un proxy 192.168.44.1 porta 8888:

curl -x 192.168.44.1:8888 http://linux.com/

Se il server proxy richiede l’autenticazione, l’uso del -U (--proxy-user) opzione seguita da nome utente e password separati da due punti (user:password):

curl -U username:password -x 192.168.44.1:8888 http://linux.com/

Conclusione #

curl è uno strumento della riga di comando che consente di trasferire i dati da o verso un host remoto., È utile per risolvere problemi, scaricare file e altro ancora.

Gli esempi mostrati in questo tutorial sono semplici, ma dimostrano le opzionicurlpiù utilizzate e hanno lo scopo di aiutarti a capire come funziona il comandocurl.

Per ulteriori informazioni su curl visita la pagina di documentazione Curl.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *