Pesquisa de site

15 dicas sobre como usar o comando ‘Curl’ no Linux


Em meados da década de 1990, quando a Internet ainda estava em sua infância, um programador sueco chamado Daniel Stenberg iniciou um projeto que acabou se transformando no que hoje conhecemos como curl.

Inicialmente, ele pretendia desenvolver um bot que baixasse periodicamente as taxas de câmbio de uma página da web e fornecesse equivalentes em coroas suecas em dólares americanos aos usuários do IRC.

Resumindo, o projeto prosperou, adicionando vários protocolos e recursos ao longo do caminho – e o resto é história. Agora vamos mergulhar de cabeça e aprender como usar curl para transferir dados e muito mais no Linux!

Reunimos a seguinte lista de 15 comandos curl para você.

1. Ver versão curl

As opções -V ou --version retornarão não apenas a versão, mas também os protocolos e recursos suportados em sua versão atual.

curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. Baixe um arquivo

Se quiser baixar um arquivo, você pode usar curl com as opções -O ou -o. O primeiro salvará o arquivo no diretório de trabalho atual com o mesmo nome do local remoto, enquanto o último permitirá que você especifique um nome de arquivo e/ou local diferente.

curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. Retomar um download interrompido

Se um download foi interrompido por algum motivo (por exemplo, usando Ctrl + c), você poderá retomá-lo facilmente. O uso de -C – (traço C, traço de espaço) diz ao curl para retomar o download começando de onde parou.

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

4. Baixe vários arquivos

Com o seguinte comando você baixará info.html e about.html de http://yoursite.com e http:/ /mysite.com, respectivamente, de uma só vez.

curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. Baixe URLs de um arquivo

Se você combinar curl com xargs, poderá baixar arquivos de uma lista de URLs em um arquivo.

xargs -n 1 curl -O < listurls.txt

6. Use um proxy com ou sem autenticação

Se você estiver atrás de um servidor proxy escutando na porta 8080 em proxy.seudominio.com, faça isso.

curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

onde você pode pular -U user:password se o seu proxy não exigir autenticação.

7. Consulte cabeçalhos HTTP

Os cabeçalhos HTTP permitem que o servidor web remoto envie informações adicionais sobre si mesmo junto com a solicitação real. Isso fornece ao cliente detalhes sobre como a solicitação está sendo tratada.

Para consultar os cabeçalhos HTTP de um site, faça:

curl -I linux-console.net

Essas informações também estão disponíveis nas ferramentas de desenvolvedor do seu navegador.

8. Faça uma solicitação POST com parâmetros

O comando a seguir enviará os parâmetros firstName e lastName, juntamente com seus valores correspondentes, para https://seudominio.com/info.php .

curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

Você pode usar esta dica para simular o comportamento de um formulário HTML normal.

9. Baixe arquivos de um servidor FTP com ou sem autenticação

Se um servidor FTP remoto estiver esperando conexões em ftp://yourftpserver, o comando a seguir fará o download de yourfile.tar.gz no diretório de trabalho atual.

curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

onde você pode pular -u nome de usuário: senha se o servidor FTP permitir logins anônimos.

10. Carregar arquivos para um servidor FTP com ou sem autenticação

Para fazer upload de um arquivo local chamado mylocalfile.tar.gz para ftp://yourftpserver usando curl, faça:

curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. Especifique o Agente do Usuário

O agente do usuário faz parte das informações enviadas junto com uma solicitação HTTP. Indica qual navegador o cliente utilizou para fazer a solicitação. Vamos ver o que nossa versão atual do curl usa como padrão e vamos alterá-lo mais tarde para “Sou um novo navegador da web”:

curl -I http://localhost --user-agent "I am a new web browser"

12. Armazenar cookies do site

Quer ver quais cookies são baixados para o seu computador quando você navega em https://www.cnn.com? Use o seguinte comando para salvá-los em cnncookies.txt. Você pode então usar o comando cat para visualizar o arquivo.

curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. Envie cookies do site

Você pode usar os cookies recuperados na última dica em solicitações subsequentes ao mesmo site.

curl --cookie cnncookies.txt https://www.cnn.com

14. Modifique a resolução de nomes

Se você é um desenvolvedor web e deseja testar uma versão local de seudominio.com antes de colocá-lo no ar, você pode fazer o curl resolver http://www.seudominio.com para o seu host local assim:

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

Assim, a consulta para http://www.seudominio.com dirá ao curl para solicitar o site do host local em vez de usar o DNS ou o arquivo /etc/hosts.

15. Limite de taxa de download

Para evitar que o curl consuma sua largura de banda, você pode limitar a taxa de download a 100 KB/s da seguinte maneira.

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Resumo

Neste artigo compartilhamos uma breve história das origens do curl e explicamos como usá-lo através de 15 exemplos práticos.

Você conhece algum outro comando curl que podemos ter perdido neste artigo? Sinta-se à vontade para compartilhá-los com nossa comunidade nos comentários! Além disso, se você tiver dúvidas, sinta-se à vontade para nos informar. Estamos ansiosos para ouvir de você!