GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Curl in Linux con esempi

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

In questo tutorial, ti mostreremo come utilizzare lo strumento curl attraverso esempi pratici e spiegazioni dettagliate delle opzioni di 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 tuo sistema, apri la tua console, digita curl e premere invio. Se hai curl installato, il sistema stamperà curl: try 'curl --help' or 'curl --manual' for more information . Altrimenti, vedrai qualcosa come curl command not found .

Se curl non è installato puoi installarlo facilmente usando il gestore di pacchetti della tua distribuzione.

Installa Curl su Ubuntu e Debian #

sudo apt updatesudo apt install curl

Installa Curl su CentOS e Fedora #

sudo yum install curl

Come usare Curl #

La sintassi per il curl il comando è il seguente:

curl [options] [URL...]

Nella sua forma più semplice, quando viene invocato senza alcuna opzione, curl visualizza la risorsa specificata nell'output standard.

Ad esempio, per recuperare example.com home page che avresti eseguito:

curl example.com

Il comando stamperà il codice sorgente di example.com home page nella finestra del tuo terminale.

Se non viene specificato alcun protocollo, curl prova a indovinare il protocollo che desideri utilizzare e verrà impostato automaticamente su HTTP .

Salva l'output in un file #

Per salvare il risultato del curl comando, usa il -o o -O opzione.

-o minuscolo salva il file con un nome file predefinito, che nell'esempio seguente è vue-v2.6.10.js :

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

-O maiuscolo salva il file con il nome originale:

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

Scarica più file #

Per scaricare più file contemporaneamente, usa più -O opzioni, seguito dall'URL del file che desideri scaricare.

Nell'esempio seguente stiamo scaricando i file ISO di Arch Linux e Debian:

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \     -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

Riprendi un download #

Puoi riprendere un download usando il -C - opzione. Questo è utile se la tua connessione si interrompe durante il download di un file di grandi dimensioni e invece di iniziare il download da zero, puoi continuare quello precedente.

Ad esempio, se stai scaricando il file iso di Ubuntu 18.04 usando il seguente comando:

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

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

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

Ottieni le intestazioni HTTP di un URL #

Le intestazioni HTTP sono coppie chiave-valore separate da due punti contenenti informazioni come user agent, tipo di contenuto e codifica. Le intestazioni vengono passate tra il client e il server con la richiesta o la risposta.

Usa il -I opzione per recuperare solo le intestazioni HTTP della risorsa specificata:

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

Verifica se un sito Web supporta HTTP/2 #

Per verificare se un determinato URL supporta il nuovo protocollo HTTP/2, recupera le intestazioni HTTP con -I insieme a --http2 opzione:

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

Il -s l'opzione dice curl per eseguire in modo silenzioso (silenzioso) e nascondere l'indicatore di avanzamento e i messaggi di errore.

Se il server remoto supporta 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 hai la versione curl 7.47.0 o più recente, non è necessario utilizzare il --http2 opzione perché HTTP/2 è abilitato per impostazione predefinita per tutte le connessioni HTTPS.

Segui reindirizzamenti #

Per impostazione predefinita, curl non segue le intestazioni della posizione HTTP.

Se provi a recuperare la versione non www di google.com , noterai che invece di ottenere il sorgente della pagina verrai reindirizzato alla versione www:

curl google.com

Il -L l'opzione indica curl per seguire qualsiasi reindirizzamento fino a raggiungere la destinazione finale:

curl -L google.com

Cambia User-Agent #

A volte, durante il download di un file, il server remoto può essere impostato per bloccare l'User-Agent Curl o per restituire contenuti diversi a seconda del dispositivo del visitatore e del browser.

In situazioni come questa per emulare un browser diverso, usa il -A opzione.

Ad esempio per emulare Firefox 60 useresti:

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

Specifica una velocità massima di trasferimento #

Il --limit-rate l'opzione consente di limitare la velocità di trasferimento dei dati. Il valore può essere espresso in byte, kilobyte con il k suffisso, megabyte con m suffisso e gigabyte con g suffisso.

Nell'esempio seguente curl scaricherà 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 prevenire il curl consumando tutta la larghezza di banda disponibile.

Trasferisci file tramite FTP #

Per accedere a un server FTP protetto con curl , usa -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, usa il -T seguito dal nome del file che vuoi caricare:

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

Invia cookie #

A volte potrebbe essere necessario effettuare una richiesta HTTP con cookie specifici per accedere a una risorsa remota o per eseguire il debug di un problema.

Per impostazione predefinita, quando si richiede una risorsa con curl , nessun cookie viene inviato né memorizzato.

Per inviare cookie al server, utilizzare il -b switch seguito da un nome file contenente i cookie o una stringa.

Ad esempio, per scaricare il file rpm di Oracle Java JDKjdk-10.0.2_linux-x64_bin.rpm dovrai passare un cookie chiamato oraclelicense con valore a :

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Utilizzo dei proxy #

curl supporta diversi tipi di proxy, inclusi HTTP, HTTPS e SOCKS. Per trasferire i dati tramite un server proxy, usa il -x (--proxy ), seguito dall'URL del proxy.

Il comando seguente scarica la risorsa specificata utilizzando un proxy su 192.168.44.1 porta 8888 :

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

Se il server proxy richiede l'autenticazione, utilizzare -U (--proxy-user ) seguita dal nome utente e dalla password separati da due punti (user:password ):

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

Conclusione #

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

Gli esempi mostrati in questo tutorial sono semplici, ma mostrano il curl più utilizzato opzioni e hanno lo scopo di aiutarti a capire come il curl comando di lavoro.

Per ulteriori informazioni su curl visita la pagina della documentazione sui ricci.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Comando wc Linux con esempi

  2. Comando di ordinamento Linux con esempi

  3. Comando Tee Linux con esempi

  4. Comando testa di Linux con esempi

  5. Comando JQ in Linux con esempi

15 Comando Linux ps con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Attendi comando in Linux con esempi

Comando di esportazione Linux con esempi

Comando IP Linux con esempi