Exemplos do comando curl no Linux – Tutorial completo

8 exemplos do comando curl no Linux

O comando curl é uma ferramenta útil para transferir dados de e para um servidor, local ou remoto, diretamente a partir do terminal do Linux. Ele é usado para baixar arquivos usando protocolos como HTTP, HTTPS, FTP, MQTT, IMAPS e SCP, entre outros.

A ferramenta fornece diversas opções que nos permitem, por exemplo, baixar vários arquivos de uma vez, parar e continuar um download, limitar a largura de banda usada, fazer downloads em segundo plano, e muitas outras.

Instalação do curl

Muitas vezes o curl já vem pré-instalado nas distribuições Linux. Se ele não estiver instalado na distro usada, basta usar o gerenciador de pacotes padrão para instalá-lo.

Por exemplo, para instalar o curl no Linux Debian, Ubuntu e derivados:

$ sudo apt install curl

E para instalar o curl no Fedora, Red Hat e derivados:

$ sudo yum install curl

Sintaxe do curl

A sintaxe do comando curl é a seguinte:

curl [opções] url

onde:

  • [opções]: Se refere a uma das múltiplas opções disponíveis para o comando – literalmente, dezenas. Para conhecer todas, consulte a página de manual da ferramenta.
  • url: Endereço do arquivo ou diretório que queremos baixar. Obrigatório.

Se não for especificado um protocolo nas opções usadas, a ferramenta tentará deduzir qual protocolo usar, geralmente escolhendo o padrão, que é o HTTP.

Vejamos agora alguns exemplos de como usar o comando curl no terminal do Linux.

Exemplos do curl

Exemplo 1. Visualizar o código-fonte de uma página Web no terminal. Se usado sem nenhuma opção o comando curl simplesmente imprime no terminal o código-fonte da URL especificada na saída padrão.

Por exemplo:

$ curl https://www.rust-lang.com

Este comando exibe no terminal o código-fonte HTML da página inicial do projeto Rust (linguagem de programação).

Exemplo 2. Baixar um arquivo da Web. Digitamos o comando curl seguido do URL do arquivo que precisamos baixar.

Se quisermos manter o nome original do arquivo, usamos a opção -O, e Já para renomear o arquivo ao baixá-lo, usamos a opção -o.

Por exemplo, para baixar o instalador da linguagem Python a partir do endereço https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz, mantendo seu nome original, digitamos:

$ curl -O https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

E se quisermos renomeá-lo ao baixar, por exemplo para python-3.10.tgz:

$ curl -o python-3.10.tgz https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

O progresso do download é mostrado na tela do terminal, e o arquivo será baixado no diretório atual (pwd).

Para cancelar um download em andamento, execute Ctrl+C no terminal.

Exemplo 3. Também é possível limitar a velocidade do download com a opção –limit-rate. A velocidade é medida em bytes/segundo. Podemos usar os códigos k para kilobytes, m para megabytes e g para gigabytes.

Por exemplo, vamos limitar a velocidade do download do instalador do Python para 100 kB/s:

$ curl --limit-rate 100k -O https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

Desta forma o curl não consome toda a largura de banda disponível na rede durante o download.

Exemplo 4. Podemos baixar vários arquivos ao mesmo tempo, adicionando suas URLs e usando a opção -O para cada uma delas. Por exemplo, para baixar os instaladores do Python para Windows e para Linux na sequência:

$ curl -O https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz -O https://www.python.org/ftp/python/3.11.3/python-3.11.3-amd64.exe

Exemplo 5. Outra opção para baixar múltiplos arquivos com o curl é criar um arquivo de shell script executável contendo as urls dos arquivos que desejamos baixar, separadas por espaços, e usar esse script para realizar o download.

Por exemplo, suponha que desejamos baixar os dois instaladores do Python a seguir, um para Linux e outro para Windows, usando um único comando:

https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz
https://www.python.org/ftp/python/3.11.3/python-3.11.3-amd64.exe

Para baixar esses arquivos com o curl, criamos um script do shell com o código mostrado abaixo (chamei o arquivo de “baixar.sh“) usando um editor de textos qualquer, como o vi, emacs ou nano:

#!/bin/bash
urls="https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz https://www.python.org/ftp/python/3.11.3/python-3.11.3-amd64.exe

for item in $urls
do
   curl -O "$item"
done

Note que as URLs a serem baixadas precisam estar separadas por um espaço em branco na atribuição à variável urls.

Após salvar e fechar o arquivo, damos permissão de execução ao script:

$ chmod 775 baixar.sh

E então rodamos nosso programa:

$ ./baixar.sh

Todos os recursos especificados no código serão baixados pelo curl, sequencialmente.

Exemplo 6. Se um download for interrompido, por exemplo por uma queda na conexão, podemos continuá-lo posteriormente usando a opção -C -:

$ curl -C - -O https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz

Exemplo 7. Podemos baixar arquivos de um site de FTP também, mesmo que seja protegido por senha. Por exemplo, para baixar um arquivo de um servidor FTP usando usuário fabio e senha 123 executamos o comando como segue:

$ curl -u fabio:123 ftp://ftp.site.com.br/arquivo.zip

Podemos também enviar um arquivo a um servidor FTP, usando a opção -T. Por exemplo, para subir o arquivo script.py:

$ curl -T script.py -u fabio:123 ftp://ftp.site.com.br/

Exemplo 8. Obter os cabeçalhos HTTP de uma URL

Cabeçalhos HTTP são pares chave-valor separados por dois-pontos (:) que contém informações de uma página Web, tais como tipo de conteúdo, agente e codificação, entre outras. Esses cabeçalhos são transferidos entre servidor e cliente durante uma requisição de recurso ou resposta à requisição.

O comando curl permite ler os cabeçalhos HTTP de um recurso especificado com o uso da opção -I. Por exemplo:

$ curl -I --http2 https://www.diariodonaturalista.com.br

Neste caso também informamos o protocolo a usar, com a opção –http2 (que indica o protocolo HTTP/2).

É isso aí! O utilitário curl possui muitas outras opções úteis além das mostradas neste tutorial. Para conhecer todas as opções disponíveis, consulte suas páginas de manual executando o comando man curl no terminal.

Linux - Boson Treinamentos em Tecnologia

 

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*