15 suggerimenti su come utilizzare il comando 'Curl' in Linux
A metà degli anni '90, quando Internet era ancora agli albori, un programmatore svedese di nome Daniel Stenberg iniziò un progetto che alla fine divenne quello che oggi conosciamo come curl.
Inizialmente, il suo obiettivo era sviluppare un bot in grado di scaricare periodicamente i tassi di cambio da una pagina web e di fornire agli utenti IRC l'equivalente in corone svedesi in dollari statunitensi.
Per farla breve, il progetto ha prosperato, aggiungendo diversi protocolli e funzionalità lungo il percorso, e il resto è storia. Ora tuffiamoci con entrambi i piedi e impariamo come utilizzare curl per trasferire dati e altro in Linux!
Abbiamo messo insieme per te il seguente elenco di 15 comandi curl.
1. Visualizza la versione dell'arricciatura
Le opzioni -V
o --version
non solo restituiranno la versione, ma anche i protocolli e le funzionalità supportati nella versione corrente.
curl --version
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
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 UnixSockets
2. Scarica un file
Se desideri scaricare un file, puoi utilizzare curl con le opzioni -O
o -o
. Il primo salverà il file nella directory di lavoro corrente con lo stesso nome della posizione remota, mentre il secondo consente di specificare un nome file e/o una posizione diversa.
curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz
3. Riprendere un download interrotto
Se un download è stato interrotto per qualche motivo (ad esempio, utilizzando Ctrl + c
), puoi riprenderlo molto facilmente. L'uso di -C
– (trattino C, spazio trattino) indica a curl di riprendere il download iniziando da dove era stato interrotto.
curl -C - -O http://yourdomain.com/yourfile.tar.gz
4. Scarica più file
Con il seguente comando scaricherai info.html e about.html da http://tuosito.com e http:/ /miosito.com, rispettivamente, in una volta sola.
curl -O http://yoursite.com/info.html -O http://mysite.com/about.html
5. Scarica URL da un file
Se combini curl con xargs, puoi scaricare file da un elenco di URL in un file.
xargs -n 1 curl -O < listurls.txt
6. Utilizzare un proxy con o senza autenticazione
Se sei dietro un server proxy in ascolto sulla porta 8080 su proxy.tuodominio.com, fallo.
curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz
dove puoi saltare -U utente:password se il tuo proxy non richiede l'autenticazione.
7. Interrogare le intestazioni HTTP
Le intestazioni HTTP consentono al server Web remoto di inviare informazioni aggiuntive su se stesso insieme alla richiesta effettiva. Ciò fornisce al client i dettagli su come viene gestita la richiesta.
Per interrogare le intestazioni HTTP da un sito Web, eseguire:
curl -I linux-console.net
Queste informazioni sono disponibili anche negli strumenti per sviluppatori del tuo browser.
8. Effettuare una richiesta POST con parametri
Il comando seguente invierà i parametri firstName e lastName, insieme ai valori corrispondenti, a https://yourdomain.com/info.php .
curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php
Puoi utilizzare questo suggerimento per simulare il comportamento di un normale modulo HTML.
9. Scarica file da un server FTP con o senza autenticazione
Se un server FTP remoto prevede connessioni su ftp://yourftpserver, il seguente comando scaricherà yourfile.tar.gz nella directory di lavoro corrente.
curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz
dove puoi saltare -u nomeutente:password se il server FTP consente accessi anonimi.
10. Carica file su un server FTP con o senza autenticazione
Per caricare un file locale denominato mylocalfile.tar.gz su ftp://yourftpserver utilizzando curl, esegui:
curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver
11. Specificare l'agente utente
Lo user agent fa parte delle informazioni che vengono inviate insieme a una richiesta HTTP. Indica quale browser ha utilizzato il client per effettuare la richiesta. Vediamo cosa utilizza la nostra versione corrente di curl come predefinita e cambiamola in seguito in "Sono un nuovo browser web":
curl -I http://localhost --user-agent "I am a new web browser"
12. Memorizza i cookie del sito web
Vuoi vedere quali cookie vengono scaricati sul tuo computer quando navighi su https://www.cnn.com? Utilizza il seguente comando per salvarli in cnncookies.txt. È quindi possibile utilizzare il comando cat per visualizzare il file.
curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O
13. Invia cookie del sito web
È possibile utilizzare i cookie recuperati nell'ultimo suggerimento nelle successive richieste allo stesso sito.
curl --cookie cnncookies.txt https://www.cnn.com
14. Modificare la risoluzione dei nomi
Se sei uno sviluppatore web e desideri testare una versione locale di tuodominio.com prima di pubblicarla, puoi fare in modo che curl risolusca http://www.tuodominio.com al tuo localhost in questo modo:
curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/
Pertanto, la query su http://www.tuodominio.com dirà a curl di richiedere il sito da localhost invece di utilizzare DNS o il file /etc/hosts.
15. Limita la velocità di download
Per evitare che Curl utilizzi la tua larghezza di banda, puoi limitare la velocità di download a 100 KB/s come segue.
curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Riepilogo
In questo articolo abbiamo condiviso una breve storia delle origini del riccio e spiegato come utilizzarlo attraverso 15 esempi pratici.
Conosci altri comandi curl che potremmo aver perso in questo articolo? Sentiti libero di condividerli con la nostra community nei commenti! Inoltre, se avete domande, non esitate a farcelo sapere. Restiamo in attesa della vostra risposta!