Comando curl: Aprenda a usar com exemplos práticos

Compartilhe:

estudante executando tarefas utilizando o comando curl no terminal

Precisando testar uma API enviando dados para o servidor web, baixar arquivos pelo terminal ou validar se uma página web esta online ? Então você precisa do comando curl.

O comando curl permite realizar requisições de rede diretamente do terminal de forma rápida para testes ou tarefas automatizadas.

Neste artigo, você aprenderá a utilizar o comando curl, com exemplos práticos, desde usos simples até exemplos mais avançados.


Pré-requisitos

Para seguir os conhecimentos técnicos do artigo, você precisará:

  • Computador com distribuição linux instalada, como: ubuntu, debian, redhat ou derivados.
  • Acesso ao terminal com usuário root ou comando sudo para instalar o comando curl, caso não esteja instalado.

Para que serve o comando curl ?

O comando curl é uma ferramenta de linha de comando utilizada para transferir dados de ou para um servidor por meio de diferentes protocolos de rede. Por isso, o curl é bastante utilizado para tarefas de automação via shell script.

Embora seja muito conhecido pelo uso com protocolos HTTP e HTTPS, ele também suporta outros protocolos como: FTP, LDAP, SMB, SMTP, SCP e outros.

O comando curl não vêm instalado por padrão na maioria das distribuições linux atuais, caso precise instala-lo, no debian, ubuntu ou distros derivadas, execute os comandos:

Já nas distros Red Hat, AlmaLinux e Rocky Linux, instale o pacote curl executando no terminal:

Utilizando o comando curl

Para utilizar o comando curl primeiro é preciso aprender sua sintaxe, que é:

Explicação:

curl – É o comando que irá se conectar a um computador remoto para receber ou enviar dados.

opções – São as opções do curl.

URL – É o endereço, incluindo o protocolo.

A tabela a seguir contém opções importantes utilizadas pelo comando curl para uma consulta rápida:

OpçãoDescriçãoExemplos de uso
-oFaz o download do arquivo e salva em um arquivo nomeado por você.curl -o page.html https://site.com
-OBaixa o arquivo e salva sem alterar o nome do arquivo.curl -O https://site.com.br/file.zip
-LSegue os redirecionamentos existentes.curl -L https://site.com.br/page
-IExibe os cabeçalhos de resposta HTTP.curl -I https://site.com.br
-uFornece credenciais para autenticação.curl -u user1:senha https://site.com/login

As opções informadas na tabela são apenas uma parte dos recursos, para o seu aprendizado sobre o comando curl a seguir tem exemplos práticos de uso explicados em detalhes.

Consultar página do site

O uso mais comum do comando curl é consultar uma página, que pode ser útil para testar a conectividade com o servidor e saber se a página está online. Para isso, basta executar o curl seguido do endereço:

Na prática o resultado é o comando curl exibindo na tela o código HTML da página da web consultada.

Se você precisar enviar solicitações HTTP (ou HTTPS) para várias URLs, é simples, inclua o endereço de cada página como argumento do curl, veja o exemplo:

Seguindo redirecionamentos com o comando curl

Muitos sites redirecionam conexões HTTP para HTTPS ou URLs. Por padrão, o curl não segue o redirecionamento a menos que a opção “-L” seja informada.

Veja na imagem (incompleta por ser longa) acima, que o código é diferente do primeiro exemplo deste artigo, isso acontece porque o comando curl seguiu os redirecionamentos até o destino e mostrou o código (HTML, CSS e etc) da página de destino.

Baixar arquivo do servidor remoto

O curl também pode ser utilizado para fazer downloads de arquivos ou páginas. Caso você precise baixar um arquivo específico, mantendo o nome, utilize a opção “-O”, por exemplo:

O comando do exemplo está baixando o arquivo “CHECKSUMS.TXT”, se houver algum redirecionamento, inclua a opção “-L” ao comando curl.

Precisa alterar o nome do arquivo após o download ? Então use a opção “-o” do curl. No exemplo abaixo, após o arquivo ser baixado é renomeado para “hash.txt”.

Continuar download interrompido

E se a conexão com a rede cair durante o download usando o comando curl ? Nessa situação, é possível retomar o download, utilizando a opção “-C”.

Por exemplo, você está baixando a imagem netboot do ubuntu (ubuntu-26.04-netboot-amd64) com o comando:

E a conexão foi interrompida (caiu) ? retome o download de onde parou executando o comando curl com as opções “-C –” e “-O”, veja o exemplo:

Como já estudado, a opção “-O” é usada para download de arquivos e o “-C –” diz ao comando curl “continue o download a partir da posição em que o arquivo local parou”.

Testar conexão com agente de usuário personalizado

Para testar como seu servidor web responde a diferentes navegadores ou robôs de busca, você pode alterar o “User-Agent” (agente de usuário) na requisição com a opção “-A” do comando curl.

Por exemplo, para alterar o agente de usuário que está fazendo a requisição ao servidor, após a opção “-A” entre aspas passe a string com o nome:

No exemplo, o User-Agent informado é o “Mozilla/5.0 (Windows NT 10.0; Win64; x64)”.

Autenticação básica com o curl linux

Com o comando curl também é possível acessar partes de sites ou sistemas web que estão protegidos por autenticação HTTP básica.

Por exemplo, para fazer o download do arquivo “reports.pdf” que está protegido, utilize o comando curl, seguido da opção “-u” seguido do nome do “usuário” dois pontos “senha”, após isso passe a URL do arquivo.

A seguir um exemplo prático, é enviado pelo curl o usuário “linus” e a senha “p@s$word” ao servidor remoto:

Caso não queira digitar a senha na linha de comando, informe somente o nome de usuário, o curl pedirá a senha e, se estiver correta, baixará e salvará o arquivo.

Testando APIs via método POST

Profissionais que trabalham com desenvolvimento de software ou DevOps, podem precisar testar sistemas enviando dados para formulários, e o comando curl ajuda também nessa tarefa.

Por exemplo, para enviar dados dos campos “user” e “password” com seus valores, execute:

A opção “-X” do curl linux específica o método HTTP, nesse caso é o POST. E a opção “-d” faz o curl enviar dados no corpo da requisição para o endpoint “/api/login”.

O servidor receberá o valor “admin” para o campo “user” e o valor “senha” do campo “password” e em seguida processa a requisição e pode verificar se o usuário e a senha são válidos, retornando uma resposta, como uma mensagem de erro, um token de autenticação ou uma confirmação de login.

APIs modernas exigem a especificação do tipo de conteúdo (Content-Type) e tokens de autorização no cabeçalho. Para o comando curl enviar cabeçalhos HTTP junto com uma requisição, utilize a opção “-H”.

No exemplo a seguir, o comando curl solicita que a API processe alguns dados e retorne o resultado, mas o resultado depende do servidor e como a API foi implementada.

O que acontece na prática para o exemplo apresentado ?

Na prática, o curl envia dois cabeçalhos HTTP: “Content-Type: application/json” informando ao servidor que o corpo da requisição está no formato JSON.

O segundo cabeçalho é “Authorization: Bearer TOKEN_AQUI” que envia um token de autenticação para o servidor identificar ou autorizar o cliente, conforme as regras da API. O “TOKEN_AQUI” precisará ser substituído por um token válido.

E por fim a opção “-d” define os dados que serão enviados no corpo da requisição.

Upload de arquivo para uma aplicação

Um sistema web ou site pode permitir upload de arquivos, e o comando curl pode fazer o envio de arquivos utilizando a opção “-F” no formato “multipart/form-data”, veja o exemplo:

No comando, “arquivo” é o nome do campo do formulário do exemplo, “@documento.pdf” indica que o conteúdo deve ser lido do arquivo local “documento.pdf”, e no fim é o endereço que receberá o upload.

Esse recurso pode ser utilizado para testar uploads em sistemas web durante o desenvolvimento ou troubleshooting.

Para consultar todas as opções e mais exemplos para aprofundar seu conhecimento acesse a documentação oficial do manual online do curl.

Conclusão

O comando curl é indispensável para qualquer profissional de TI que precisa testar conexões, transferência de dados e integrações usando a partir do terminal.

Para os iniciantes, recomendo utilizar o comando o curl em um ambiente virtualizado e controlado, antes de colocar em prática trabalhos em servidores.

E não se limite a usa-lo somente para o protocolo HTTP e HTTPS, aos poucos vá testando com outros protocolos. Você pode utiliza-lo com os protocolos de rede: FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS e WSS.

Ficou com alguma dúvida sobre o uso do curl ou tem uma dica prática para compartilhar ? Deixe seu comentário abaixo!

Perguntas Frequentes (FAQ) sobre o comando curl

Onde executar o comando curl no linux ?

O comando curl é executado na interface de linha de comando manualmente ou através de shell scripts.

Qual a diferença entre o comando curl e o wget ?

O curl é voltado para a transferência bidirecional de dados (envio e recebimento) suportando múltiplos protocolos e métodos HTTP. O wget é focado em download de arquivos.

Como fazer o curl não exibir a barra de progresso ?

Basta adicionar a opção “-s” (silent) ao comando, como em: curl -s https://exemplo.com

O comando curl funciona em outros sistemas operacionais além do linux ?

Sim, o curl é nativo também no macOS e nas versões recentes do Microsoft Windows (via Prompt de Comando e PowerShell).

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.