Comando CURL no Linux: Aprendendo com Exemplos

Sendo um engenheiro de TI vem com várias tarefas para realizar, como verificar a conectividade de rede, baixar arquivos ou configurar autenticações. Geralmente, essas tarefas exigem diferentes ferramentas. Bem, não com o cURL. A utilidade cURL no Linux ajuda com a maioria das coisas que um engenheiro de TI precisa. `

`Neste tutorial, você aprenderá sobre cada recurso de linha de comando que o cURL oferece. `

`Continue lendo e aprimore suas habilidades com o cURL! `

`Pré-requisitos `

`Este tutorial compreende demonstrações passo a passo. Para acompanhar, certifique-se de ter o seguinte: `

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

`Instalando o cURL no Linux (Ubuntu) `

`Como qualquer outra ferramenta, antes de tirar proveito do cURL, você primeiro precisa instalá-lo em sua máquina. Você pode instalar o cURL em qualquer sistema operacional baseado em *nix, mas é mais popularmente usado no Ubuntu. `

`O cURL é uma utilidade de linha de comando que permite realizar diversas tarefas, conforme abaixo:

  • Exibir o status de várias configurações de rede de máquinas Windows ou servidores Linux
  • Transferir dados de ou para servidores
  • Suporta múltiplos protocolos, como HTTP, FTP, IMAP, POP3, SCP e SFTP.

Para instalar o cURL em sua máquina Ubuntu:

1. Conecte-se ao seu host Ubuntu com seu cliente SSH favorito.

2. Execute os seguintes comandos, que não fornecem saída, mas criam um diretório chamado ~/instalar_curl_demo e mude para esse diretório. Este diretório conterá todos os recursos que você criará neste tutorial.

mkdir ~/install_curl_demo
cd ~/install_curl_demo

3. Em seguida, execute o comando apt update abaixo para atualizar o índice de pacotes do seu sistema.

Este comando garante que o gerenciador de pacotes apt possa encontrar a origem adequada ao baixar quaisquer pacotes dependentes.

sudo apt update 
Updating the Ubuntu machine with the latest packages

4. Agora, execute o comando apt install abaixo para instalar o cURL em sua máquina.

sudo apt install curl
Installing cURL on the Ubuntu machine

5. Por fim, execute o comando abaixo para verificar a versão do cURL instalada em sua máquina. Fazê-lo garante que você tenha instalado o cURL com sucesso.

curl --version
Checking cURL’s version installed

Autenticando Websites

Diferentes protocolos suportados pelo curl, como FILE, FTP, HTTP, HTTPS, POP3, SCP, SFTP, TELNET, etc., e você não precisa interagir com nenhum usuário.

Se você precisar autenticar em um site usando o comando curl, será necessário especificar o usuário e a senha na própria URL. Mas se você definir o nome de usuário, o cURL solicitará uma senha.

Execute o comando curl abaixo, substituindo [email protected]:password pelo seu nome de usuário e senha, e a URL do site pela sua para autenticação.


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

Baixando Arquivos Com Nome Original ou Modificado

O download de arquivos ou pacotes pode fazer parte da sua rotina diária como administrador. Se for o caso, o cURL certamente será útil. O comando curl, acrescido das opções -O ou -o, permite que você baixe arquivos mantendo o nome original ou definindo um nome diferente.

Execute os comandos abaixo para baixar o pacote do NGINX com o nome original (-O) como (*nginx-1.20.2.tar.gz*) e com um nome diferente (-o) como *mytar.gz*.

# Faz o download do pacote do NGINX com o nome original nginx-1.20.2.tar.gz
curl -O <http://nginx.org/download/nginx-1.20.2.tar.gz>
# Faz o download do pacote do NGINX com o novo nome mytar.gz
curl -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package

Agora, execute o seguinte comando para baixar o pacote do NGINX com o nome mytar2.gz. Mas desta vez, você verá apenas uma barra de progresso em vez de muitos detalhes na saída.

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

Por fim, execute o comando ls abaixo para listar todos os arquivos no diretório atual.

ls

Abaixo, você pode verificar que os arquivos nginx-1.20.2.tar.gz, mytar.gz e mytar2.gz existem.

Verifying downloaded NGINX packages

Definindo Tempo Limite de Conexão

Os sites de carregamento rápido são sempre ideais, e o cURL tem uma maneira de testar o quão rápido um usuário pode se conectar ao seu site. Como? Definindo um tempo limite de conexão, onde o comando curl tenta se conectar a um site dentro de um período de tempo específico.

Definir um tempo limite de conexão permite determinar quanto tempo um servidor leva para responder a uma solicitação de dados que você faz.

Execute o comando abaixo para tentar conectar-se ao site adamtheautomator.com por 20 segundos antes de expirar a solicitação.

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

Você pode ver abaixo que a opção -I permite incluir cabeçalhos na saída de informações do site.

Connecting to a website with a connection timeout

Recuperando Dados Usando o Pedido GET

Você viu que definir um tempo limite de conexão fornece informações sobre um site na seção “Definindo Tempo Limite de Conexão”. Mas se essa informação não for suficiente, considere enviar um pedido GET.

Execute o comando curl abaixo para usar um pedido GET HTTP (–get) e recuperar dados do site https://adamtheautomator.com.

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

Abaixo, você pode ver a fonte real do site adamtheautomator.com.

Retrieving data using the Get request

Envio de uma Solicitação POST

Em vez de obter dados, você também pode enviar dados enviando uma solicitação POST com o comando curl. O parâmetro -d permite que você envie os dados especificados em uma solicitação POST para o servidor HTTP, assim como um navegador faz quando um usuário preenche um formulário HTML.

Execute o seguinte comando curl para enviar uma solicitação POST para o site ptsv2.com.

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

Agora, acesse https://reqbin.com/ em seu navegador da web para testar se a POST foi bem-sucedida.

Abaixo, você notará que o Status mostra (200 (OK), o que significa que a solicitação foi enviada com sucesso.

Verifying the POST request

Buscando Definições de Palavras

Você sabia que também pode usar o cURL como um dicionário? Sim! O cURL permite que você pesquise definições de palavras usando o protocolo DICT. Muitos termos relacionados à TI podem ser pesquisados usando o protocolo DICT, como clock, ubuntu, RDP, etc.

A sintaxe do comando curl usando o protocolo DICT é a seguinte:

curl [protocol:[dictionary_URL]:[word]

Execute cada comando abaixo para pesquisar definições de palavras no dicionário disponível no site público dict.org.

# Pesquisar definições de palavras para ubuntu
curl dict://dict.org/d:ubuntu
# Pesquisar definições de palavras para clock
curl dict://dict.org/d:clock

Como você pode ver abaixo, a primeira busca pela definição da palavra ubuntu não encontrou uma resposta relevante e retornou nenhuma correspondência. Mas a segunda retornou algumas definições para a palavra relógio.

Searching the word definition

Testando o Protocolo HTTP/2 do Site

O comando curl é sem dúvida adequado para baixar, enviar e autenticar em sites. Mas outra característica que torna o curl uma ótima ferramenta é que você pode verificar se uma determinada URL suporta o novo protocolo HTTP/2.

Execute o seguinte comando curl para verificar se o site https://adamtheautomator.com/ suporta o protocolo HTTPS (–http2).

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

Você verá uma resposta HTTP/2 200 na saída, como a abaixo, o que indica que o site utiliza o protocolo HTTP/2.

Testing Website HTTP2 protocol using Curl Command

Conclusão

O cURL, sendo uma ferramenta gratuita, vem com muitos recursos. E neste tutorial, você experimentou diferentes exemplos práticos de como usar o cURL no Linux. Seja para baixar arquivos, autenticar em sites, enviar solicitações POST ou GET, etc., o cURL não vai te decepcionar.

Que tal construir sobre esse conhecimento recém-adquirido? Talvez aprender como transferir arquivos e executar comandos e scripts usando o comando curl? Ou descobrir comandos da API cURL?

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