12 DICAS para você usar o COMANDO curl como um NINJA

curl é um comando/biblioteca (libcurl) disponível na maioria dos sistemas baseado em Unix.


12 DICAS para você usar o COMANDO curl como um NINJA

Introdução

curl é um comando/biblioteca (libcurl) disponível na maioria dos sistemas baseado em Unix. Ele é usado como abreviação para “Client URL”. Ele é utilizado para diversas finalidades como: navegação, inserção de dados via web, download, transferência de dados e entre outros. Ele suporta diversos protocolos.

Instalação

Para instalar o curl você pode usar o gerenciador de pacotes da sua distro, mas antes de instalar verifique se o mesmo já está instalado com o comando: which curl, exemplos:

emerge curl # Para Gentoo, Funtoo e similares
sudo apt install curl # No Debian, Ubuntu, Linux Mint e similares
sudo pacman -S curl # Arch Linux, Manjaro e similares
sudo yum install curl # Red Hat, CentOS e Fedora (prefira o dnf)
pkg install curl # FreeBSD e sistema relativos
pkg_add curl # OpenBSD
pkgin install curl # NetBSD

Após a instalação, verifique se está tudo ok, por exemplo, vendo a versão: curl --version

Dica 1. Prenchendo Formulário de um Site via Linha de Comando

curl -F "mail=ninguem@nada.com" -F "msg=valeu" http://dandosopa.org/ #OK
curl -X POST -F "mail=ninguem@nada.com" -F "msg=valeu" http://dandosopa.org/ #OK
# cat data.txt #mail=nada@tudo.com&msg=Sei nao #OK
curl --data "mail=querocomer@suasopa.com&msg=Delícia" http://dandosopa.org/ #OK
curl -d "@data.txt" -X POST http://dandosopa.org/ #OK

Dica 2. Fazendo Upload de Arquivos via Linha de Comando

Nesse caso precisamos informar na URL o caminho do arquivo que será responsável pelo recebimento do arquivo, nesse caso eu sei que é upload.php , mas ele poderia ficar na raíz do host, lembrando que, como eu havia dito, ele redireciona para ‘m/’ sem alteração de URL .

curl -i -X POST -H "Content-Type: multipart/form-data" -F "data=@DICAS_COMANDOS" http://dandosopa.org/upload.php #OK
curl -F "data=@DSC03666.JPG" http://dandosopa.org/upload.php >/dev/null 2>/dev/null #OK

Dica 3. Download de Arquivos

curl -O dandosopa.org/downloads/distro.iso

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  841M  100  841M    0     0  46.0M      0  0:00:18  0:00:18 --:--:-- 44.0M

Se você quiser que não mostre os dados, use o parâmetro --silent ou -s : curl --silent dandosopa.org/downloads/distro.iso

Se você errar o nome do arquivo, o curl irá baixar o arquivo 404 , logo é sempre bom você conferir o tamanho do arquivo du -lhs distro.iso , se estiver incorreto veja qual foi a resposta do servidor: cat distro.iso (pode ser que seja erro do servidor se não for 404, por exemplo, 301) , por isso o ideal mesmo é fazer uma HASH do arquivo pós baixado

Observação: Ainda não há nenhum parâmetro que salve sem sobrescrever o arquivo se ele existir, logo você precisa criar uma solução na shell, exemplo:

[ ! -f data.txt ] && curl -O dandosopa.org/downloads/data.txt || echo Arquivo já existe

Dica 4. Download do arquivo salvando com um nome definido por você:

curl dandosopa.org/downloads/distro.iso -o refisefuqui.iso

Não use em conjunto com o -O , caso contrário o curl irá priorizar a ordem que o parâmetro foi informado na linha de comando.

Dica 5. Retomar um download interrompido

curl -C - -O http://dandosopa.org/downloads/distro.iso

Dica 6. Download de múltiplos arquivos

curl -O http://yoursite.com/refisefuqui.iso -O http://dandosopa.org/downloads/data.txt

Dica 7. Baixar URLs de um arquivo

cat urls.txt
dandosopa.org/downloads/distro.iso
dandosopa.org/downloads/data.txt

xargs -n 1 curl -O < urls.txt

Dica 8. Limitar a velocidade do download

curl --limit-rate 100K http://dandosopa.org/downloads/distro.iso -O

Dica 9. Download com barra de progresso

curl -# -O dandosopa.org/downloads/distro.iso

Dica 10. Consultar cabeçalhos HTTP

curl -I terminalroot.com.br

Nem todos os sites permitem essa consulta.

Dica 11. Especiqfique um User Agent

curl https://gnu.terminalroot.com.br/ip.php
# Exemplo Windows 10 Edge:
curl http://localhost --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"

Dica 12. Autenticação Apache

curl -u usuário:senha -O http://dandosopa.org/m/secret/meus-arquivos-secretos.tar.gz

Veja o vídeo sobre curl

Abraços!

Compartilhe

Marcos Oliveira

Autor
Marcos Oliveira
Desenvolvedor de Software
youtube.com/TerminalRootTV

Pacote Promocional com Todos os Cursos

Adquira todos os cursos para se tornar um ninja do Terminal e do Linux.

Artigos Relacionados



Comentários