Comando CURL Linux: Imparare attraverso l’esempio

Essere un ingegnere IT comporta svolgere varie attività, come verificare la connettività di rete, scaricare file o impostare autenticazioni. Solitamente, queste attività richiedono strumenti diversi. Beh, non con cURL. L’utilità cURL su Linux aiuta con la maggior parte delle cose di cui ha bisogno un ingegnere IT.

In questo tutorial, imparerai tutte le funzionalità della riga di comando offerte da cURL.

Continua a leggere e migliora le tue competenze con cURL!

Prerequisiti

Questo tutorial comprende dimostrazioni passo dopo passo. Per seguirla, assicurati di avere quanto segue:

  • A Windows XP+ PC – This tutorial uses Windows 10 Enterprise edition.
  • A user account on the remote Linux SSH host with sudo permissions.

Installazione di cURL su Linux (Ubuntu)

Come qualsiasi altro strumento, prima di sfruttare cURL, devi installarlo sulla tua macchina. Puoi installare cURL su qualsiasi sistema operativo basato su *nix, ma è più comunemente usato su Ubuntu.

cURL è un’utilità da riga di comando che ti consente di svolgere un’ampia gamma di attività.

  • Visualizza lo stato delle diverse configurazioni di rete delle macchine Windows o dei server Linux
  • Trasferisci dati da o verso i server
  • Supporta vari protocolli, come HTTP, FTP, IMAP, POP3, SCP e SFTP.

Per installare cURL sulla tua macchina Ubuntu:

1. Connettiti al tuo host Ubuntu tramite il tuo client SSH preferito.

2. Esegui i seguenti comandi, che non forniscono alcun output ma creano una directory chiamata ~/install_curl_demo e passano a quella directory. Questa directory conterrà tutte le risorse che creerai in questo tutorial.

mkdir ~/install_curl_demo
cd ~/install_curl_demo

3. Successivamente, esegui il comando apt update qui di seguito per aggiornare l’indice dei pacchetti di sistema.

Questo comando assicura che il gestore dei pacchetti apt possa trovare la sorgente corretta durante il download di eventuali pacchetti dipendenti.

sudo apt update 
Updating the Ubuntu machine with the latest packages

4. Ora, esegui il comando apt install qui di seguito per installare cURL sulla tua macchina.

sudo apt install curl
Installing cURL on the Ubuntu machine

5. Infine, esegui il comando qui di seguito per verificare la versione di cURL installata sulla tua macchina. In questo modo puoi assicurarti di aver installato cURL correttamente.

curl --version
Checking cURL’s version installed

Autenticazione dei siti web

Differenti protocolli supportati da curl, come FILE, FTP, HTTP, HTTPS, POP3, SCP, SFTP, TELNET, ecc., e non è necessario lavorare con alcuna interazione dell’utente.

Se è necessario autenticarsi su un sito web utilizzando il comando curl, sarà necessario specificare nome utente e password nell’URL stesso. Ma se si imposta il nome utente, cURL richiederà una password.

Eseguire il comando curl di seguito, sostituendo [email protected]:password con il proprio nome utente e password e l’URL del sito web con il proprio per autenticarsi.


curl -u [email protected]:password --basic <https://wordpress.com/posts/automateinfra.com> 
Authenticating user with password

Scaricare file con nome originale o modificato

Scaricare file o pacchetti può essere parte della routine quotidiana di un amministratore di sistema. In tal caso, cURL ti sarà sicuramente utile. Il comando curl, aggiunto con le opzioni -O o -o, consente di scaricare file mantenendo il nome originale o impostandone uno diverso.

Eseguire i comandi seguenti per scaricare il pacchetto NGINX con il nome originale (-O) come (*nginx-1.20.2.tar.gz*) e con un nome diverso (-o) come *mytar.gz*.

# Scarica il pacchetto NGINX con il nome originale nginx-1.20.2.tar.gz
curl -O <http://nginx.org/download/nginx-1.20.2.tar.gz>
# Scarica il pacchetto NGINX con il nuovo nome mytar.gz
curl -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package

Ora, eseguire il seguente comando per scaricare il pacchetto NGINX denominato mytar2.gz. Ma questa volta, vedrai solo una barra di avanzamento invece di vedere molti dettagli nell’output.

curl -# -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package but only showing a progress bar

Infine, esegui il comando ls di seguito per elencare tutti i file nella directory corrente.

ls

Di seguito, puoi verificare che i file nginx-1.20.2.tar.gz, mytar.gz e mytar2.gz esistano.

Verifying downloaded NGINX packages

Impostazione Timeout Connessione

I siti web a caricamento rapido sono sempre ideali, e cURL ha un modo per testare quanto velocemente un utente può connettersi al tuo sito web. Come? Impostando un timeout di connessione, dove il comando curl cerca di connettersi a un sito web entro un determinato lasso di tempo.

Impostare un timeout di connessione ti permette di determinare quanto tempo un server impiega a rispondere a una richiesta di dati che fai.

Esegui il comando di seguito per provare a connetterti al sito adamtheautomator.com per 20 secondi prima di scadere la richiesta.

curl --connect-timeout 20 -I adamtheautomator.com

Puoi vedere qui sotto che l’opzione -I ti permette di includere gli header nell’output delle informazioni del sito web.

Connecting to a website with a connection timeout

Recupero Dati Utilizzando la Richiesta GET

Hai visto che impostare un timeout di connessione fornisce informazioni su un sito web nella sezione “Impostazione Timeout Connessione”. Ma se queste informazioni non sono sufficienti, considera l’invio di una richiesta GET.

Esegui il comando curl di seguito per utilizzare una richiesta GET HTTP (–get) e recuperare dati dal sito https://adamtheautomator.com.

curl --get <https://adamtheautomator.com>

Di seguito puoi vedere il codice sorgente effettivo del sito web adamtheautomator.com.

Retrieving data using the Get request

Invio di una richiesta POST

Al posto di ottenere dati, puoi anche inviare dati inviando una richiesta POST con il comando curl. Il parametro -d ti permette di inviare i dati specificati in una richiesta POST al server HTTP come farebbe un browser quando un utente compila un modulo HTML.

Esegui il seguente comando curl per inviare una richiesta POST al sito ptsv2.com.

curl -d "name=curl" <https://ptsv2.com/t/hello>
Sending the POST request on a website

Ora, vai su https://reqbin.com/ nel tuo browser web per testare se la richiesta POST è stata effettuata con successo.

In basso, noterai che lo stato mostra (200 (OK), che indica che la richiesta è stata inviata correttamente.

Verifying the POST request

Ricerca delle definizioni di parole

Sai che puoi usare cURL anche come un dizionario? Sì! cURL ti permette di cercare le definizioni delle parole utilizzando il protocollo DICT. Molti termini legati all’informatica possono essere cercati utilizzando il protocollo DICT, come clock, ubuntu, RDP, ecc.

La sintassi del comando curl utilizzando il protocollo DICT è la seguente:

curl [protocol:[dictionary_URL]:[word]

Esegui ogni comando qui sotto per cercare le definizioni delle parole nel dizionario disponibile sul sito pubblico dict.org.

# Cerca le definizioni delle parole per ubuntu
curl dict://dict.org/d:ubuntu
# Cerca le definizioni delle parole per clock
curl dict://dict.org/d:clock

Come puoi vedere di seguito, la prima ricerca della definizione della parola ubuntu non è riuscita a trovare una risposta pertinente e ha restituito nessuna corrispondenza. Ma la seconda ha restituito un paio di definizioni per la parola clock.

Searching the word definition

Test del protocollo HTTP2 del sito web

Il comando curl è senza dubbio adatto per scaricare, caricare e autenticare siti web. Ma un’altra cosa che rende curl uno strumento eccezionale è che puoi verificare se un determinato URL supporta il nuovo protocollo HTTP/2.

Esegui il seguente comando curl per verificare se il sito web https://adamtheautomator.com/ supporta il protocollo HTTPS (–http2).

curl -I --http2 -s <https://adamtheautomator.com/> | grep HTTP

Vedrai una risposta HTTP/2 200 nell’output come quella qui sotto, che indica che il sito utilizza il protocollo HTTP2.

Testing Website HTTP2 protocol using Curl Command

Conclusione

cURL, pur essendo uno strumento gratuito, ha molte funzionalità. E in questo tutorial, hai sperimentato diversi esempi di prima mano sull’uso di cURL in Linux. Che si tratti di scaricare file, autenticare siti web, inviare richieste POST o GET, ecc., cURL non ti deluderà.

Perché non basarsi su questa nuova conoscenza? Forse imparare come trasferire file e eseguire comandi e script utilizzando il comando curl? O scoprire comandi API di cURL?

Source:
https://adamtheautomator.com/curl-linux/