Comando CURL no Linux: Aprendendo por Exemplo

Sendo um engenheiro de TI vem com várias tarefas para realizar, como verificar a conectividade de rede, baixar arquivos ou configurar autenticações. Normalmente, essas tarefas requerem diferentes ferramentas. Bem, não com cURL. A utilidade cURL do 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 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 cURL Linux (Ubuntu)

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

O cURL é uma utilidade de linha de comando que permite executar toneladas de tarefas como segue:

  • Exibir o status das 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 ~/install_curl_demo e mudam 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.

Esse comando garante que o gerenciador de pacotes apt possa encontrar a fonte 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. Fazer isso 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 trabalhar com nenhuma interação do usuário.

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

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


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

Baixando Arquivos com Nome Original ou Alterado

Baixar arquivos ou pacotes pode ser parte da sua rotina diária como administrador. Se for o caso, o cURL certamente vai te ajudar. 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 *meutar.gz*.

# Baixa o 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>
# Baixa o pacote do NGINX com o novo nome meutar.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ê só verá uma barra de progresso em vez de ver 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 último, 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

Configurando o Tempo Limite de Conexão

Websites 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? Configurando um tempo limite de conexão, onde o comando curl tenta se conectar a um site dentro de um intervalo de tempo específico.

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

Execute o comando abaixo para tentar se conectar 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 a Solicitação GET

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

Execute o comando curl abaixo para usar uma solicitação 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

Enviando 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 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 o POST foi bem-sucedido.

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

Verifying the POST request

Pesquisando Definições de Palavras

Você sabia que também pode usar o cURL como um dicionário? Sim! 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 relógio, 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 relógio
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 clock.

Searching the word definition

Testando o Protocolo HTTP/2 do Website

O comando curl é, sem dúvida, adequado para baixar, enviar e autenticar websites. Mas outra coisa que torna o curl uma ótima ferramenta é que você pode verificar se uma URL específica 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 significa que o site usa o protocolo HTTP/2.

Testing Website HTTP2 protocol using Curl Command

Conclusão

O cURL, sendo uma ferramenta gratuita, possui muitos recursos. E neste tutorial, você experimentou diferentes exemplos práticos de uso do cURL no Linux. Seja baixando arquivos, autenticando websites, enviando solicitações POST ou GET, etc., o cURL não irá decepcionar você.

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

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