Latest · July 10, 2022 0

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

Se você segue as instruções de instalação focadas em 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 é baixar um arquivo por meio da linha de comando. No entanto, isso é enganoso, pois o cURL é uma ferramenta incrivelmente poderosa que pode fazer muito mais.

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

Na maioria das distribuições Linux, o cURL é 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, então você pode instalá-lo facilmente usando o Centro de Software.

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

Antes de prosseguirmos, precisamos ter certeza de que o cURL já está instalado em nosso sistema.

Em distribuições baseadas em Debian/Ubuntu, use o seguinte comando para instalar o cURL:

Em distribuições baseadas em Arch:

No Fedora/CentOS/RHEL:

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

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

Para começar, basta digitar curl maketecheasier.com no seu terminal e pressione Digitar.

Se você não estiver 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 que não seja www. Se você pesquisou um servidor que não existe ou não está online, você receberá uma mensagem de erro informando que o cURL não pôde resolver o host.

Para que o 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 úteis, 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 em sua pasta Downloads. Navegue até a pasta com seu gerenciador de arquivos favorito e clique duas vezes no arquivo que você acabou de criar. Ele deve abrir um instantâneo da saída HTML da página inicial deste site.

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

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

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

Para mostrar um exemplo do mundo real, interrompi um download da ISO de teste do Debian de propósito pressionando Ctrl e C no meio de agarrá-lo.

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

O download foi iniciado com sucesso de onde parou.

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

Se os arquivos que você está baixando forem enumerados (por exemplo, arquivo1, arquivo2 e assim por diante), você poderá usar colchetes para obter o intervalo completo de arquivos e “#” na saída especificada 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. Como você não precisa especificar uma saída, deve usar este comando quando o terminal estiver aberto no diretório para o qual 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 precisar redigitar a URL usando colchetes:

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

Isto irá autenticar nosso amigo bonobo_bob no servidor FTP e baixar o arquivo na pasta Downloads.

Se por algum motivo você deseja baixar um arquivo grande e dividi-lo em pedaços, você pode fazê-lo com cURL’s --range bandeira. Com --range, você deve especificar o byte em que 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, o 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-199999999etc. 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 assim:

Existem muitos sinalizadores e usos para cURL:

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

Resumindo, o Wget é a “caixa de ferramentas de todos” para pegar coisas da Internet, enquanto o cURL expande isso com um controle mais granular 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 é reinstalando o pacote de certificados comuns em sua distribuição.

Para sistemas baseados em Debian/Ubuntu:

Para Fedora/CentOS/RHEL:

Para sistemas baseados em Arch:

Observe que no Arch você pode querer limpar o cache do 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, existem vários desenvolvedores (como as pessoas por trás do NodeJS) que não oferecem escolha a não ser usar curl juntamente com um comando de acesso root que é executado através 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 alguma coisa. Atores maliciosos estão por toda parte e podem se infiltrar em repositórios como o AUR do Arch, então instalar usando curl em combinação com comandos de acesso root geralmente não é mais inseguro do que fazê-lo através do seu gerenciador de pacotes.

Sim! Inicie o Navegador Tor (ou um serviço to autônomo) 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 autônomos do Tor usarão 9050 como sua porta de escuta, enquanto o navegador Tor usará a porta 9150.

O cURL provou ser resiliente em meio à mudança da 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, confira alguns dos comandos mais úteis do Linux. 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 é especialista em tecnologia e crescimento de negócios 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.