Esistono diversi modi per controllare e comunicare con i dati nel terminale Linux e curl
è il modo migliore per farlo. curl
è uno strumento da riga di comando che puoi utilizzare per trasferire dati da o verso un server. Puoi usare il curl
comando per scaricare e caricare dati utilizzando uno qualsiasi dei protocolli supportati, che comprende FTP, HTTP, SFTP, HTTPS e SCP. Curl ha una gamma di funzionalità, tra cui la possibilità di limitare la larghezza di banda, riprendere i trasferimenti, autenticazione utente, supporto per server proxy e molto altro.
Di seguito è riportato l'elenco dei protocolli attualmente supportati da curl
:
- FTP/FTPS
- Gopher
- HTTP
- HTTP/2
- SMTP/SMTPS
- IMAP/IMAPS
- PMI
- POP3/POP3S
- RTMP
- SCP
- SFTP
- RTSP
- LDAP/LDAPS
- Telnet e TFTP
- RTSP
Ulteriori caratteristiche includono:
- Autenticazione utente e password
- Base
- Digest Plain
- NTLM
- CRAM-MD5
- Kerberos
- Negozia
- Cookie
- Tunnel proxy
- Riprendi l'operazione di trasferimento file
- Certificati SSL
- Caricamento moduli HTTP e HTTPS
wget
e curl
vengono spesso confrontati perché la loro funzionalità si sovrappone in una certa misura. Entrambi gli strumenti possono recuperare contenuti da Internet, ma wget ha più funzionalità come il web scraping, download ricorsivi ed è più intuitivo. wget è considerato un'opzione migliore se desideri solo scaricare file nel terminale.
Imparare il curl
command basics ti aiuterà a caricare e scaricare file con procedure di autenticazione HTTP avanzate. Inoltre, wget
supporta solo FTP e HTTP(S), mentre curl
supporta molti più protocolli.
Si tratta di curl
comando. Passiamo ora direttamente al terminale.
Installazione di 'curl' su Linux
Se non hai curl
sul tuo sistema Linux, installalo utilizzando il comando seguente. In caso contrario, salta i passaggi di installazione e passa agli esempi.
sudo apt-get update
sudo apt-get install curl -y
Ora verifica il curl
è disponibile sul tuo sistema controllandone la versione:
curl --version
Esempi di utilizzo di 'curl'
Possiamo fare molte cose interessanti usando curl
. Diamo un'occhiata ad alcuni di loro.
Come ottenere l'IP esterno del server
C'è una risorsa straordinaria su Internet, che ti consente di ottenere il tuo indirizzo IP Internet - https://ifconfig.me (chiamato nella gloria della famosa utility di configurazione della rete Linux - ifconfig
).
Se hai inviato una richiesta HTTP a quel sito utilizzando curl, ti restituirà l'indirizzo IP esterno nel terminale sotto forma di semplice stringa:
curl https://ifconfig.me
Quindi, puoi facilmente inserire questo risultato nella variabile bash:
MY_EXTERNAL_IP=$(curl -s https://ifconfig.me)
echo $MY_EXTERNAL_IP
Ecco il risultato:
Qui, -s
argomento consente di evitare l'output di avanzamento del download curl:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12 100 12 0 0 181 0 --:--:-- --:--:-- --:--:-- 181
Previsioni meteorologiche
Vuoi sentirti un hacker e visualizzare le informazioni meteo direttamente nel terminale? Puoi farlo usando curl
!
curl http://wttr.in/LOCATION
Salvataggio dell'output "curl" in un file di testo
Puoi salvare l'output del curl
comando al file specificato.
Ecco un esempio di salvataggio dell'output dell'API JSON (API demo di StarWars) nel file:
curl https://swapi.dev/api/planets/1/ -o Tatooine.json
curl
è abbastanza intelligente da rilevare il download di file binari. Ecco un esempio di download di uno dei più popolari software open source di gestione dell'infrastruttura come codice Terraform (ulteriori informazioni su Terraform):
curl https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip -o terraform_0.15.0_linux_amd64.zip
Download di più file
Puoi usare curl
per scaricare più file alla volta. Basta aggiungere -o
discutere tutte le volte che vuoi.
curl -o https://example.com/files/file-1 -o file-2 https://example.com/files/file-2 -o file-3 https://example.com/files/file-3
Limitazione della velocità di download
Un'altra utile funzionalità di curl
è la limitazione della velocità di download del file. Puoi farlo usando il --limit-rate
argomento e specificando la velocità:
curl --limit-rate 1M -O https://releases.hashicorp.com/terraform/0.15.0/terraform_0.15.0_linux_amd64.zip
La velocità indicata viene misurata in byte/secondo, a meno che non venga aggiunto un suffisso. L'aggiunta di "k" o "K" conteggerà il numero come kilobyte, "m" o M" lo renderà megabyte, mentre "g" o "G" lo renderà gigabyte.
Elenco URL di download
In questo esempio, scaricheremo tutti i file elencati nel file di testo. Per farlo devi usare una combinazione di xargs
con curl
comandi:
xargs -n 1 curl -O < urllists.txt
Ecco un output:
Autenticazione di base
Puoi usare il -u
argomento per fornire nome utente e password per l'autenticazione HTTP di base (autenticazione di base):
curl -u username:password -O https://example.com/files/README
Come ottenere le intestazioni degli URL
Le intestazioni HTTP sono coppie chiave-valore separate da due punti che contengono informazioni come il tipo di contenuto della risorsa richiesta, l'agente utente, la codifica, ecc. Con la richiesta o la risposta, le intestazioni vengono trasferite tra il client e il server. Per ottenere le informazioni sulle intestazioni di qualsiasi sito web, usa -I
argomento:
curl -I https://hands-on.cloud
Utilizzo dei cookie
Nelle successive richieste allo stesso sito web, potrebbe essere necessario utilizzare i cookie.
Per salvare i cookie ricevuti dal web server, utilizzare il seguente comando:
curl -s -o /dev/null -c google_cookies.txt 'https://www.google.com'
Questi argomenti sono:
-s
– modalità silenziosa, curl non stampa le informazioni sull'avanzamento del download-o /dev/null
– non stampare l'output della pagina Web sul terminale-c google_cookies.txt
– salva le informazioni sui cookie nel file
Per utilizzare i cookie ricevuti dalla richiesta precedente, utilizzare il seguente comando:
curl -b google_cookies.txt 'https://www.google.com'
Verifica del supporto HTTP/2
Usa il -I
, --http2
e -s
opzioni insieme per verificare se il sito specificato supporta le intestazioni HTTP/2:
curl -I --http2 -s https://hands-on.cloud/ | grep HTTP
Riepilogo
In questo articolo, abbiamo trattato gli esempi più comunemente usati dell'utilizzo di curl
comando. Ci auguriamo che questo articolo ti permetta di iniziare con questa potente utility. Se l'articolo ti piace, aiutaci a diffonderlo nel mondo!