Latest · December 13, 2021 0

Como usar cURL para transferência de dados de linha de comando e muito mais

Se você está seguindo as instruções de instalação voltadas para o terminal para aplicativos Linux há algum tempo, provavelmente já se deparou com o curl comando em algum ponto ou outro. cURL é uma ferramenta de linha de comando para transferir dados com URLs. Um dos usos mais simples é fazer o download de um arquivo por meio da linha de comando. No entanto, isso é enganoso, pois cURL é uma ferramenta incrivelmente poderosa que pode fazer muito mais.

Originalmente escrito por Daniel Sternberg em 1996 para obter dados financeiros de servidores da web e transmiti-los aos canais de IRC, o cURL evoluiu para se tornar uma ferramenta poderosa para obter dados sem ter que usar um navegador. Se você está sempre usando o terminal, esta será uma das ferramentas mais importantes do seu arsenal.

Na maioria das distribuições do Linux, cURL está pré-instalado no sistema e você pode usá-lo imediatamente. Mesmo que não esteja instalado, ele também é encontrado na maioria dos repositórios, portanto, você pode instalá-lo facilmente usando o Software Center.

Para Windows, ele não possui um comando “semelhante ao curl” e o macOS tem o cURL pré-instalado, mas não oferece tantos sinalizadores quanto a versão do Linux.

Antes de prosseguirmos, temos que nos certificar de que cURL já está instalado em nosso sistema.

Em distros baseadas em Debian / Ubuntu, use o seguinte comando para instalar cURL:

Em distros baseadas em Arch:

No Fedora / CentOS / RHEL:

Para o macOS, ele já vem pré-instalado, portanto, você não precisa fazer nada.

Cada sinalizador em cURL que pode ser usado no Linux deve funcionar na versão Windows.

Para começar, basta digitar curl maketecheasier.com em seu terminal e pressione Entrar.

Se você não está obtendo nenhuma saída, é porque o servidor deste site não está configurado para responder a solicitações de conexão aleatórias para seu domínio não www. Se você pesquisar um servidor que não existe ou não está online, receberá uma mensagem de erro dizendo que o cURL não conseguiu resolver o host.

Para fazer com que cURL faça algo realmente útil, teremos que especificar um protocolo. Em nosso exemplo, estamos usando o protocolo HTTPS para consultar a página inicial deste site. Modelo curl https://www.maketecheasier.com.

Se tudo correr bem, você deve estar olhando para uma gigantesca parede de dados. Para tornar esses dados um pouco mais utilizáveis, podemos dizer ao cURL para colocá-los em um arquivo HTML:

Este comando coloca o conteúdo da saída do nosso site em um arquivo HTML na pasta Downloads. Navegue até a pasta com seu gerenciador de arquivos favorito e clique duas vezes no arquivo que você acabou de criar. Deve abrir um instantâneo da saída HTML da página inicial deste site.

Da mesma forma, você pode usar o -o sinalize para obter o mesmo resultado:

A maioria dos sites redireciona automaticamente o tráfego do protocolo “http” para o “https”. No cURL, você pode conseguir a mesma coisa com o -L bandeira. Isso seguirá automaticamente os redirecionamentos 301 até atingir uma página ou arquivo legível.

Ao baixar arquivos grandes, dependendo da velocidade da sua Internet, as interrupções podem ser extremamente irritantes. Felizmente, cURL tem uma função de currículo. Passando no -C flag cuidará desse problema em um instante.

Para mostrar um exemplo do mundo real, interrompi o download do ISO de lançamento de teste do Debian propositalmente pressionando Ctrl e C no meio de agarrá-lo.

Para o nosso próximo comando, estamos anexando o -C bandeira. Por exemplo,

O download começou com sucesso de onde parou.

Como cURL não tem a maneira mais intuitiva de baixar vários arquivos, existem dois métodos, cada um com seu próprio compromisso.

Se os arquivos que você está baixando forem enumerados (por exemplo, arquivo1, arquivo2 e assim por diante), você pode usar colchetes para obter a gama completa de arquivos e “#” dentro da saída que você especificar com o -o bandeira. Para tornar isso um pouco menos confuso, aqui está um exemplo:

Uma maneira mais simples de fazer isso é com -O (--remote-name) Este sinalizador faz com que o cURL baixe o arquivo remoto em um arquivo local com o mesmo nome. Já que você não tem que especificar uma saída, você deve usar este comando quando o terminal estiver aberto no diretório que você deseja baixar os arquivos.

Se você tiver uma grande quantidade de arquivos enumerados para baixar, --remote-name-all é um sinalizador melhor para isso:

Você pode até especificar arquivos não enumerados vindos do mesmo site sem ter que digitar novamente o URL usando colchetes:

Baixe arquivos que requerem autenticação (por exemplo, ao obter de um servidor FTP privado) com o -u bandeira. Cada solicitação de autenticação deve ser feita com o nome de usuário primeiro e a senha depois, com dois pontos separando os dois. Aqui está um exemplo para tornar as coisas simples:

Isso autenticará nosso amigo bonobo_bob no servidor FTP e fará o download do arquivo na pasta Downloads.

Se por algum motivo você deseja baixar um arquivo grande e dividi-lo em partes, você pode fazer isso com cURL’s --range bandeira. Com --range, você deve especificar o byte no qual deseja iniciar até aquele em que deseja terminar. Se você não especificar um fim para o intervalo, ele apenas fará o download do restante do arquivo.

No comando abaixo, cURL fará o download dos primeiros 100 MB da imagem de instalação do Arch Linux:

Para os próximos 100 MB, use --range 100000000-199999999, etc. Você pode encadear esses comandos usando o && operando:

Se você seguiu a estrutura de comando acima ao pé da letra, oito arquivos devem aparecer onde você pediu ao cURL para baixá-los.

Para reunir esses arquivos, você terá que usar o cat comando se você estiver no Linux ou macOS assim:

Para Windows, você terá que usar o copy comando como este:

Existem muitos sinalizadores e usos para cURL:

Ambos lançados no mesmo ano (1996), cURL e Wget são praticamente programas irmãos do observador casual. Mergulhe um pouco mais fundo, no entanto, e você verá que essas duas irmãs têm propósitos diferentes.

Resumindo, o Wget é a “caixa de ferramentas de todo mundo” para obter coisas da Internet, enquanto o cURL expande isso com um controle mais granulado para usuários avançados e administradores de sistema.

Se você receber um erro que diz algo como “o emissor do certificado do par foi marcado como não confiável”, a maneira mais fácil de corrigir isso é reinstalar o pacote de certificados comuns em sua distro.

Para sistemas baseados em Debian / Ubuntu:

Para Fedora / CentOS / RHEL:

Para sistemas baseados em Arch:

Note que no Arch você pode querer limpar o cache do seu pacote usando pacman -Scc antes de reinstalar o pacote de certificados.

Se você ainda receber esse erro, pode haver algo errado no servidor.

Embora não seja a maneira mais comum de instalar aplicativos Linux, há uma série de desenvolvedores (como as pessoas por trás do NodeJS) que não oferecem escolha a não ser usar curl ao lado de um comando de acesso root que é executado por meio do bash (por exemplo, curl [argument] | sudo -E bash -) para instalar o software.

Pode parecer um pouco assustador, mas se as pessoas por trás do aplicativo forem confiáveis, é muito improvável que você quebre algo. Atores mal-intencionados estão em toda parte e podem se infiltrar em repositórios como o AUR do Arch, instalando usando curl em combinação com comandos de acesso root geralmente não é mais inseguro do que fazê-lo por meio de seu gerenciador de pacotes.

Sim! Inicie o navegador Tor (ou um serviço independente) e use o --proxy bandeira. O Tor fornece um proxy local que você pode usar para mascarar seu IP em outros aplicativos. Aqui está um exemplo de cURL usado com Tor:

Os serviços independentes do Tor usarão 9050 como porta de escuta, enquanto o navegador Tor usa a porta 9150.

cURL provou ser resiliente em meio às mudanças na estrutura do mundo Linux, mantendo sua posição como uma ferramenta importante no arsenal do usuário de terminal.

Se você é novo na linha de comando, verifique alguns dos comandos Linux mais úteis. Se você simplesmente deseja pesquisar na Web em vez de baixar dados da Internet, também pode navegar no terminal.

Receba atualizações de nossos tutoriais mais recentes.

Miguel é um especialista em crescimento de negócios e tecnologia há mais de uma década e escreve software há ainda mais tempo. De seu pequeno castelo na Romênia, ele apresenta perspectivas frias e analíticas para coisas que afetam o mundo da tecnologia.