curl
é um utilitário de linha de comando para transferir dados de ou para um servidor projetado para trabalhar sem interação com o usuário. Com curl
, você pode baixar ou carregar dados usando um dos protocolos suportados, incluindo HTTP, HTTPS , SCP , SFTP e FTP . curl
fornece um número de opções que lhe permitem retomar as transferências, limitar a largura de banda, suporte ao proxy, autenticação do Usuário, e muito mais.,
neste tutorial, vamos mostrar-lhe como usar a ferramenta de curl através de exemplos práticos e explicações detalhadas das opções de curl mais comuns.
instalando Curl #
o pacote curl está pré-instalado na maioria das distribuições Linux hoje.
para verificar se o pacote Curl está instalado no seu sistema, abra a sua consola, digite curl
, e carregue em enter. Se tivercurl
instalado, o sistema irá imprimircurl: try 'curl --help' or 'curl --manual' for more information
. Caso contrário, você vai ver algo como curl command not found
.,
Se curl
não estiver instalado pode instalá-lo facilmente usando o Gestor de pacotes da sua distribuição.
Instalar o Curl no Ubuntu e Debian #
sudo apt update
sudo apt install curl
Instalar o Curl no CentOS e Fedora #
sudo yum install curl
Como Usar o Curl #
A sintaxe para o curl
comando é da seguinte maneira:
curl
Em sua forma mais simples, quando chamado sem qualquer opção, curl
exibe o recurso especificado para a saída padrão.,
Por exemplo, para recuperar o example.com
página inicial, você deve executar:
curl example.com
O comando irá imprimir o código-fonte de example.com
página inicial na sua janela de terminal.
Se não for especificado nenhum protocolo, curl
tenta adivinhar o protocolo que deseja usar, e por omissão será HTTP
.
Guardar o resultado num Ficheiro de #
Para salvar o resultado da curl
comando, use o -o
ou -O
opção.,
Minúsculas -o
salva o arquivo com um nome de ficheiro predefinido, que no exemplo abaixo é vue-v2.6.10.js
:
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
em Maiúsculas -O
salva o arquivo com seu nome original do arquivo:
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Download de Vários arquivos #
Para fazer o download de vários arquivos de uma só vez, use vários -O
opções, seguido do URL para o arquivo que você deseja baixar.,
no exemplo a seguir, estamos a descarregar os ficheiros Arch Linux e Debian iso:
Continue um Download #
pode continuar um download usando a opção -C -
. Isto é útil se a sua ligação cair durante o download de um ficheiro grande, e em vez de iniciar o download do zero, você pode continuar o anterior.por exemplo, se estiver a descarregar o Ubuntu 18.,04 arquivo iso com o seguinte comando:
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
, e de repente seu quedas de conexão, você pode continuar o download com:
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Obter os Cabeçalhos HTTP de um URL #
cabeçalhos HTTP são separados por dois pontos de pares chave-valor que contém informações como o agente de usuário, tipo de conteúdo e codificação. Os cabeçalhos são passados entre o cliente e o servidor com o pedido ou a resposta.,ele de recurso especificado:
curl -I --http2 https://www.ubuntu.com/
Testar se um Site oferece Suporte a HTTP/2 #
Para verificar se uma determinada URL suporta o novo HTTP/2 protocolo , buscar os Cabeçalhos de HTTP com -I
juntamente com a --http2
opção:
curl -I --http2 -s https://linuxize.com/ | grep HTTP
-s
opção informa curl
para executar em um silencioso (quiet) e ocultar o indicador de progresso e mensagens de erro.,
Se o servidor remoto suporta HTTP/2, curl
imprime HTTP/2.0 200
:
HTTP/2 200
caso Contrário, a resposta é HTTP/1.1 200
:
HTTP/1.1 200 OK
Se você tem curl versão 7.47.0
ou mais recente, você não precisa usar o --http2
opção, como o HTTP/2 é habilitado por padrão para todas as conexões HTTPS.
Follow Redirects #
By default, curl
doesn’t follow the HTTP Location headers.,ele página você será redirecionado para a www versão:
curl google.com
-L
opção instrui o curl
siga qualquer um redirecionamento, até atingir o destino final:
curl -L google.com
Alterar o User-Agent #
às Vezes, quando o download de um arquivo, o servidor remoto pode ser configurado para bloquear a Curvatura do Agente do Usuário, ou retornar com conteúdos diferentes, dependendo do visitante dispositivo e navegador.,
em situações como esta para emular um navegador diferente, use a opção -A
.
Por exemplo, emula o Firefox 60 utilize:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
Especifica uma Taxa Máxima de Transferência #
--limit-rate
opção permite limitar a velocidade de transferência de dados. O valor pode ser expresso em bytes, kilobytes com o k
sufixo, megabytes com o m
sufixo, e gigabytes com o g
sufixo.,
No exemplo a seguir curl
vai baixar o Ir binário e limitar a velocidade de download de 1 mb:
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Esta opção é útil para prevenir curl
consumir toda a largura de banda disponível.
Transferência de Arquivos via FTP #
Para aceder a um servidor FTP protegido com curl
, use o -u
opção e especifique o nome de usuário e senha, conforme mostrado abaixo:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
uma Vez iniciada a sessão, o comando lista todos os arquivos e diretórios no diretório home do usuário.,
Você pode fazer download de um único arquivo do servidor FTP usando a seguinte sintaxe:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
Para fazer o upload de um arquivo para o servidor FTP, use o -T
seguido pelo nome do arquivo que você deseja carregar:
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Enviar Cookies #
às Vezes, você pode precisar fazer uma solicitação HTTP com cookies específicos para o acesso a um recurso remoto ou depurar um problema.
Por padrão, ao solicitar um recurso com curl
, não são enviados ou armazenados cookies.,
para enviar cookies para o servidor, use o botão -b
seguido de um nome de arquivo contendo os cookies ou uma string.
Por exemplo, para baixar o Oracle Java JDK arquivo rpm jdk-10.0.2_linux-x64_bin.rpm
você precisa para passar um cookie chamado oraclelicense
com o valor de a
:
Usando Proxies #
curl
suporta diferentes tipos de proxies, incluindo HTTP, HTTPS e SOCKS., Para transferir dados através de um servidor proxy, use a opção -x
(--proxy
), seguida pelo URL do proxy.,
O seguinte comando transfere o recurso especificado usando um proxy 192.168.44.1
porto 8888
:
curl -x 192.168.44.1:8888 http://linux.com/
Se o servidor proxy requer autenticação, use o -U
(--proxy-user
) opção seguido do nome de usuário e senha separados por dois-pontos (user:password
):
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
Conclusão #
curl
é uma ferramenta de linha de comando que permite a você transferir dados de ou para um host remoto., É útil para resolver problemas, baixar arquivos e muito mais.
os exemplos mostrados neste tutorial são simples, mas demonstram o mais usado curl
opções e são destinados a ajudá-lo a entender como o curl
comando funciona.
para mais informações sobrecurl
visite a página de documentação do Curl.