O que é o comando curl no Linux e o que você pode fazer com ele?

O comando curl no Linux é uma ótima maneira de automatizar o processo de upload e download de dados de um servidor. Curl oferece suporte a todos os protocolos importantes, como HTTP, HTTPS, SFTP, FTP e mais.

Recursos como pausar e retomar transferências, limitar largura de banda, suporte de proxy e autenticação de usuário o tornam um utilitário de linha de comando perfeito para transferência de dados.

Vamos dar um mergulho profundo e explorar o que é curl e como usá-lo.

Qual é o comando curl?

O Curl foi inicialmente desenvolvido para automatizar o download de taxas de câmbio de uma página da web periodicamente. As taxas de câmbio em tempo real forneciam equivalentes à Coroa Sueca em dólares americanos para usuários de IRC. A popularidade do curl cresceu exponencialmente à medida que as pessoas começaram a usar seus aplicativos generalizados.

Curl é um dos projetos de código aberto mais antigos e populares que já existiram. O nome significa URL do cliente e é usado em inúmeros sistemas em todo o mundo. O Curl encontra seu uso em uma variedade de aplicativos, como desenvolvimento web e teste de bug.

Os desenvolvedores não precisam digitar os comandos manualmente; eles podem agrupá-los em scripts e usá-los para automatizar operações complexas. Aqui estão alguns exemplos de como usar o curl.

Instalando curl no Linux

Embora este pacote popular venha pré-instalado na maioria das distros Linux, você pode baixar facilmente o curl se ainda não estiver instalado na sua. Use os seguintes comandos para instalar o curl em sua máquina.

No Ubuntu e Debian:

 sudo apt install curl

Em distros baseadas em RHEL, como CentOS e Fedora:

 sudo yum install curl

Para instalar o curl no Arch Linux, digite:

 sudo pacman -S curl

Relacionado: Como gerenciar serviços systemd usando o comando systemctl no Linux

Como usar o comando curl

Curl usa a seguinte sintaxe para todos os seus comandos:

 curl options url

… onde as opções e o url mudam de acordo com a tarefa em questão. O Curl baixa o código-fonte da URL, sempre que você não menciona a opção / tarefa. A versão mais recente do curl também adivinha o protocolo – se não for mencionado na URL – e o padroniza como HTTP.

Aqui estão alguns comandos curl úteis para realizar várias tarefas funcionais:

Baixe um arquivo usando curl

Você pode baixar recursos por meio de um URL especificado usando curl. Este comando possui dois sinalizadores que você pode usar; -o e -O .

  • O comando -O salva o arquivo no diretório atual com o mesmo nome do servidor remoto.
  • O comando -o , por outro lado, permite escolher o nome e a localização do arquivo.

Aqui está um exemplo de ambos os comandos:

 curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

O arquivo é baixado no diretório atual, com seu nome original como no servidor remoto.

 curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz

Quando você executa o comando mencionado, curl irá baixar e salvar o arquivo como newfile.tar.gz . Observe que você terá que especificar o nome do arquivo e o caminho para o diretório como entrada.

Retomar um download interrompido usando curl

Os downloads podem ser interrompidos por vários motivos, como interrupções de rede ou um link expirado. O recurso para retomar um download interrompido ajuda em tais situações, evitando o incômodo de baixar o arquivo inteiro novamente.

Use o sinalizador -C com -o ou -O para retomar um download interrompido usando curl.

 curl -C -O http://yourdomain.com/yourfile.tar.gz

Baixando vários arquivos usando curl

Não há um comando dedicado para baixar vários arquivos simultaneamente por meio do curl, mas você pode usar os sinalizadores -o ou -O várias vezes no mesmo comando para obter resultados semelhantes.

Por exemplo:

 curl -O http://website1.com/file1.iso -O https://website2.com/file2.iso

O comando mencionado baixará os arquivos ISO de ambas as URLs simultaneamente no diretório atual.

Obtenha os cabeçalhos HTTP de uma página da web

Os cabeçalhos HTTP contêm informações cruciais, como o agente do usuário, o tipo de conteúdo e a codificação. Você pode solicitar o cabeçalho HTTP de um URL usando os sinalizadores -I ( I maiúsculo, não L) e –http2 :

 curl -I --http2 https://www.ubuntu.com/

Saída:

O comando -I mostra várias informações, incluindo os detalhes do software do servidor, data, tipo de conteúdo, status do X-cache e muito mais.

Especifique uma taxa de transferência máxima

As transferências de arquivos geralmente adquirem a maior parte de sua largura de banda, impedindo você de fazer qualquer outra tarefa.

Para resolver esse problema, você pode definir uma taxa de transferência máxima para seus downloads usando curl. Use o método –limit-rate seguido por um modificador k , m ou g (denota kilobytes, megabytes ou gigabytes respectivamente).

O seguinte comando restringe a velocidade de transferência a 1 MBps:

 curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Saída:

Transferir arquivos via FTP e curl

Você pode transferir arquivos usando o File Transfer Protocol, acessando qualquer servidor FTP usando curl. O Curl oferece a funcionalidade de fazer download e upload de arquivos após conectar-se ao servidor FTP.

Use o seguinte comando para se conectar a um servidor FTP:

 curl -u username:password ftp://ftp.example.com/

… onde nome de usuário e senha são as credenciais para fazer login no servidor.

Você pode baixar qualquer arquivo do servidor especificando o URL do arquivo no seguinte comando:

 curl -u username:password -O ftp://ftp.example.com/file.tar.gz

Você também pode fazer upload de arquivos para o servidor FTP usando o sinalizador -T :

 curl -T newfile.tar.gz -u username:password ftp://ftp.example.com

O comando -T seguido pelo arquivo especificado faz o upload para o servidor FTP.

Relacionado: Como transferir arquivos com segurança no Linux com sftp

Usando proxies com curl

Curl suporta uma infinidade de proxies diferentes como HTTPS, HTTP e SOCKS. Você pode usar esses proxies para transferir dados com segurança usando curl.

Use o seguinte comando para configurar proxies em curl:

 curl -x 192.168.44.1:8888 http://linux.com/

A opção -x conecta você à porta 8888 no servidor 192.168.44.1. Certifique-se de substituir os detalhes do proxy no comando pelo proxy ao qual deseja se conectar. O servidor proxy mencionado não requer autenticação, mas você pode acessar um proxy protegido usando a seguinte sintaxe:

 curl -U username:password -x 192.168.44.1:8888 http://linux.com/

Especifique o nome de usuário e a senha separados por um C olon próximo ao sinalizador -U .

Ver detalhes da versão

Este comando é útil quando você deseja verificar as informações de versão do pacote. Use a sinalização –version para visualizar a versão curl:

 curl --version

A saída deve mencionar a versão curl, seus protocolos e recursos.

Identificando os benefícios do comando curl no Linux

O Curl vem equipado com várias opções para automatizar a transferência de dados em sua máquina. O recurso para retomar downloads interrompidos e suporte a FTP é útil em vários aplicativos.

Os exemplos neste tutorial têm como objetivo mostrar os comandos curl mais populares com seus respectivos códigos para ajudá-lo a entender melhor o comando curl.