Come utilizzare cURL per il trasferimento dei dati dalla riga di comando e altro

Cum să utilizați cURL pentru transferul de date pe linia de comandă și altele
⌛ Reading Time: 9 minutes

Se segui da un po’ di tempo le istruzioni di installazione incentrate sul terminale per le applicazioni Linux, probabilmente ti sei imbattuto in curl comandare prima o poi. cURL è uno strumento da riga di comando per il trasferimento di dati con URL. Uno degli usi più semplici è scaricare un file tramite la riga di comando. Questo è ingannevole, tuttavia, poiché cURL è uno strumento incredibilmente potente che può fare molto di più.

Che cos’è cURL?

Originariamente scritto da Daniel Sternberg nel 1996 per acquisire dati finanziari dai server Web e trasmetterli ai canali IRC, cURL si è evoluto fino a diventare un potente strumento per ottenere dati senza dover utilizzare un browser. Se usi sempre il terminale, questo sarà uno degli strumenti più importanti del tuo arsenale.

Nella maggior parte delle distribuzioni Linux, cURL è preinstallato nel sistema e puoi usarlo immediatamente. Anche se non è installato, si trova anche nella maggior parte dei repository, quindi puoi installarlo facilmente utilizzando il Software Center.

Per Windows, non ha un comando “simile a curl” e macOS ha cURL preinstallato ma non offre altrettante bandiere come la versione Linux.

Installazione

Prima di procedere oltre, dobbiamo assicurarci che cURL sia già installato sul nostro sistema.

Linux

Nelle distribuzioni basate su Debian/Ubuntu, usa il seguente comando per installare cURL:

Nelle distribuzioni basate su Arch:

In Fedora/CentOS/RHEL:

Mac OS

Per macOS, è già preinstallato, quindi non devi fare nulla.

finestre

  1. Per Windows 7/10/11, vai su pagina di download di cURL e scegli tra i pacchetti a 64 bit o 32 bit, in base all’architettura in esecuzione. Se non conosci la tua architettura, 64 bit è una scommessa sicura, poiché la stragrande maggioranza dell’hardware realizzato dopo il 2006 è su di essa.
  2. Crea una cartella direttamente sull’unità di sistema o in “C:Programmi” e chiamala “cURL”.
  1. Torna al file zip che hai scaricato, aprilo e trova “curl.exe” all’interno della cartella “bin”. Copialo nella cartella cURL che hai creato. L’EXE che hai copiato è completamente autonomo e in grado di eseguire ogni permutazione che puoi eseguire su Linux.
  2. Per rendere questo comando effettivamente utile, dobbiamo aggiungerlo alla variabile PATH in Windows in modo che possa essere eseguito dal prompt dei comandi ovunque.
  • Fare clic sul menu Start, digitare environmente premere accedere.
  • Fai clic su “Variabili d’ambiente …” Ora dovresti essere nelle impostazioni delle variabili d’ambiente.
Variabili d'ambiente Linuxcurl
  • Seleziona la variabile di ambiente “Percorso”, quindi fai clic su “Modifica…”
  • Una volta nella finestra di dialogo di modifica del percorso, fai clic su “Nuovo” e digita la directory in cui si trova “curl.exe”, ad esempio “C:ProgrammicURL”.
Linuxcurl Modifica variabile
  • Fai clic su “OK” nelle finestre di dialogo che hai aperto durante questo processo e divertiti ad avere cURL nel tuo terminale!

Ogni flag in cURL utilizzabile in Linux dovrebbe funzionare nella versione Windows.

Parola al saggio: ricorda che il prompt dei comandi non deve mai essere confuso con Windows Terminal. Windows Terminal viene fornito con la propria versione di cURL inclusa in PowerShell che offre funzionalità simili ma funziona in modo completamente diverso.

Usando cURL

Per iniziare, digita semplicemente curl maketecheasier.com nel tuo terminale e premi accedere.

Se non ricevi alcun output, è perché il server di questo sito non è configurato per rispondere a richieste di connessione casuali al suo dominio non www. Se hai interrogato un server che non esiste o non è online, riceverai un messaggio di errore che dice che cURL non è stato in grado di risolvere l’host.

Errore Linuxcurl

Per fare in modo che cURL faccia qualcosa di veramente utile, dovremo specificare un protocollo. Nel nostro esempio, stiamo utilizzando il protocollo HTTPS per interrogare la home page di questo sito. Tipo curl https://www.maketecheasier.com.

File Linuxcurl

Se tutto va bene, dovresti fissare un gigantesco muro di dati. Per rendere quei dati un po’ più utilizzabili, possiamo dire a cURL di inserirli in un file HTML:

Scarica Linuxcurl

Questo comando inserisce il contenuto dell’output del nostro sito in un file HTML nella cartella Download. Passa alla cartella con il tuo file manager preferito e fai doppio clic sul file appena creato. Dovrebbe aprire un’istantanea dell’output HTML della home page di questo sito.

Test di Linuxcurl

Allo stesso modo, puoi usare il -o flag per ottenere lo stesso risultato:

Seguendo i reindirizzamenti

La maggior parte dei siti reindirizza automaticamente il traffico dal protocollo “http” al protocollo “https”. In cURL, puoi ottenere la stessa cosa con il -L bandiera. Questo seguirà automaticamente i reindirizzamenti 301 fino a raggiungere una pagina o un file leggibile.

Reindirizzamento Linuxcurl

Ripresa di un download

Quando si scaricano file di grandi dimensioni, a seconda della velocità di Internet, le interruzioni possono essere estremamente irritanti. Per fortuna, cURL ha una funzione di ripresa. passando il -C flag si occuperà di questo problema in un batter d’occhio.

Per mostrare un esempio reale, ho interrotto di proposito il download della versione di test ISO di Debian premendo Ctrl e C nel bel mezzo dell’afferrarlo.

Linuxcurl interrotto

Per il nostro prossimo comando, alleghiamo il -C bandiera. Per esempio,

Riprendi Linuxcurl

Il download è iniziato con successo da dove era stato interrotto.

Download di più di un file

Poiché cURL non ha il modo più intuitivo per scaricare più file, ci sono due metodi, ognuno con il proprio compromesso.

Se i file che stai scaricando sono enumerati (ad esempio, file1, file2 e così via), puoi usare le parentesi per ottenere l’intera gamma di file e “#” all’interno dell’output specificato con il -o bandiera. Per rendere questo un po’ meno confuso, ecco un esempio:

Un modo più semplice per farlo è con -O (--remote-name). Questo flag fa sì che cURL scarichi il file remoto su un file locale con lo stesso nome. Poiché non è necessario specificare un output, è necessario utilizzare questo comando quando il terminale è aperto nella directory in cui si desidera scaricare i file.

Se hai una grande quantità di file enumerati da scaricare, --remote-name-all è una bandiera migliore per questo:

Potresti anche specificare file non enumerati provenienti dallo stesso sito senza dover ridigitare l’URL usando le parentesi:

Download con autenticazione

Scarica i file che richiedono l’autenticazione (ad esempio, durante l’acquisizione da un server FTP privato) con il -u bandiera. Ogni richiesta di autenticazione deve essere eseguita con prima il nome utente e poi la password, con i due punti che separano i due. Ecco un esempio per semplificare le cose:

Questo autenticherà il nostro amico bonobo_bob nel server FTP e scaricherà il file nella cartella Download.

Divisione e unione di file

Se per qualsiasi motivo desideri scaricare un file di grandi dimensioni e dividerlo in blocchi, puoi farlo con cURL’s --range bandiera. Insieme a --range, devi specificare il byte da cui vuoi iniziare fino a quello da cui vuoi finire. Se non specifichi una fine all’intervallo, scaricherà solo il resto del file.

Nel comando seguente, cURL scaricherà i primi 100 MB dell’immagine di installazione di Arch Linux:

Per i prossimi 100 MB, usa --range 100000000-199999999, ecc. Puoi concatenare questi comandi usando il && operando:

Se hai seguito alla lettera la struttura dei comandi sopra, dovrebbero apparire otto file dove hai chiesto a cURL di scaricarli.

Parti di Linuxcurl

Per riunire questi file, dovrai usare il cat comando se sei su Linux o macOS in questo modo:

Per Windows, dovrai usare il copy comando in questo modo:

Altre funzioni utili

Ci sono molti flag e usi per cURL:

  • -# – Utilizza una barra di avanzamento per indicare a che punto sei in ciò che stai afferrando. Esempio: curl -# https://asite.com/somefile.zip > ~/somefile.zip.
  • -a – Chiede a cURL di aggiungere a un file invece di sovrascriverlo. Esempio: curl -ao ~/collab-full.x https://example-url.com/collab-part26.x.
  • --head – Prende solo l’intestazione della risposta dal server senza i dati di output. Ciò è utile quando si esegue il debug di un sito Web o si dà un’occhiata alle risposte programmate del server ai client. Esempio: curl --head https://example-url.com.
  • --limit-rate – Ordina un download con larghezza di banda limitata. È utile in situazioni in cui non vuoi che cURL occupi tutta la larghezza di banda disponibile nel tuo sistema. Un numero semplice verrà interpretato come byte al secondo. K rappresenta i kilobyte al secondo; M rappresenta i megabyte al secondo. Esempio: curl --limit-rate 8M https://example-url.com/file.zip > ~/file.zip.
  • -o – Come accennato in precedenza, determina un file di output da utilizzare con cURL. Esempio: curl -o ~/Downloads/file.zip https://thefileplace.com/file.zip -o file2.zip https://thefileplace.com/file2.zip.
  • --proxy – Se vuoi lavorare con un proxy, questo è il modo per farlo. Esempio: curl --proxy proxyurl:port https://example-url.com/file.zip > ~file.zip.

cURL contro Wget

Entrambi rilasciati nello stesso anno (1996), cURL e Wget sono praticamente programmi fratelli per l’osservatore casuale. Immergiti un po’ più a fondo, però, e vedrai che queste due sorelle hanno scopi diversi.

Wget

  • È completamente costruito da zero per acquisire dati da Internet.
  • Non ha bisogno del -L o -o flag come cURL; basta digitare wget [url] e vai!
  • Può scaricare ricorsivamente per prendere tutto in una directory con il -r bandiera.
  • Ha tutte le funzioni di cui un utente ha bisogno per l’uso quotidiano e si rivolge alle attività quotidiane dell’amministratore di sistema.
  • (In Linux) Non ha bisogno di molte dipendenze; tutti dovrebbero essere disponibili fuori dalla scatola.

arricciare

  • Ampio repertorio di flag e funzioni utili per il recupero remoto.
  • Supporta la rete locale (LDAP) e le stampanti di rete (Samba).
  • Funziona bene con le librerie di compressione gzip.
  • Dipende da libcurl, che consente agli sviluppatori di scrivere software o script bash che includono la funzionalità di cURL.

In breve, Wget è la “cassetta degli attrezzi di tutti” per catturare cose da Internet, mentre cURL si espande su questo con un controllo più granulato per utenti esperti e amministratori di sistema.

Domande frequenti

1. Ho ricevuto un errore di certificato in Linux. Come lo aggiusto?

Se ricevi un errore che dice qualcosa come “l’emittente del certificato del peer è stato contrassegnato come non attendibile”, il modo più semplice per risolvere questo problema è reinstallare il pacchetto di certificati comuni nella tua distribuzione.

Per i sistemi basati su Debian/Ubuntu:

Per Fedora/CentOS/RHEL:

Per i sistemi basati su Arch:

Nota che in Arch potresti voler svuotare la cache dei pacchetti usando pacman -Scc prima di reinstallare il pacchetto di certificati.

Se ricevi ancora questo errore, potrebbe esserci qualcosa che non va alla fine del server.

2. È sicuro eseguire i comandi cURL e bash insieme?

Sebbene non sia il modo più comune per installare applicazioni Linux, ci sono un certo numero di sviluppatori (come le persone dietro NodeJS) che non ti danno altra scelta che usare curl insieme a un comando di accesso root che viene eseguito tramite bash (ad es. curl [argument] | sudo -E bash -) per installare il software.

Può sembrare un po’ spaventoso, ma se le persone dietro l’applicazione sono affidabili, è molto improbabile che rompi qualcosa. Gli attori malintenzionati sono ovunque e possono infiltrarsi in repository come AUR di Arch, quindi installarlo usando curl in combinazione con i comandi di accesso root non è generalmente più pericoloso che farlo tramite il tuo gestore di pacchetti.

3. Posso usare cURL con Tor?

Sì! Avvia Tor Browser (o un servizio tor autonomo) e usa il --proxy bandiera. Tor ti offre un proxy locale che puoi usare per mascherare il tuo IP in altre applicazioni. Ecco un esempio di cURL utilizzato con Tor:

I servizi Tor autonomi utilizzeranno la 9050 come porta di ascolto, mentre il browser Tor utilizzerà la porta 9150.

Avvolgendo

cURL si è dimostrato resistente nel tessuto mutevole del mondo Linux, mantenendo la sua posizione di strumento importante nell’arsenale dell’utente terminale.

Se non conosci la riga di comando, dai un’occhiata ad alcuni dei comandi Linux più utili. Se invece di scaricare dati da Internet vuoi semplicemente cercare sul Web, puoi navigare anche sul terminale.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.