{"id":15180,"date":"2019-03-13T15:37:40","date_gmt":"2019-03-13T18:37:40","guid":{"rendered":"https:\/\/blog.hostinger.io\/pt-tutoriais\/?p=15180"},"modified":"2026-08-11T06:32:44","modified_gmt":"2026-08-11T09:32:44","slug":"comando-curl-linux","status":"publish","type":"post","link":"\/pt\/tutoriais\/comando-curl-linux","title":{"rendered":"O que \u00e9 o comando cURL? Entenda a sintaxe, as op\u00e7\u00f5es e veja exemplos"},"content":{"rendered":"<p class=\"wp-block-paragraph\">O comando cURL (client URL) &eacute; uma ferramenta de linha de comando para transferir dados de ou para um servidor. Na forma mais simples, voc&ecirc; especifica uma URL e os dados que deseja enviar ou receber. Ele suporta v&aacute;rios protocolos, incluindo HTTP, HTTPS e FTP, e funciona na maioria dos sistemas operacionais.<\/p><p class=\"wp-block-paragraph\">O comando cURL no Linux permite que seu sistema troque dados com servidores pela internet. Essa ferramenta &eacute; essencial para v&aacute;rias tarefas, como baixar arquivos e testar o funcionamento de APIs.<\/p><p class=\"wp-block-paragraph\">Neste tutorial, vamos explicar o que &eacute; o comando cURL, como instal&aacute;-lo e qual &eacute; a sua sintaxe. Voc&ecirc; tamb&eacute;m vai conhecer v&aacute;rios exemplos pr&aacute;ticos de uso do cURL.<\/p><h2 id=\"h-what-is-the-curl-command\" class=\"wp-block-heading\">O que &eacute; o comando cURL?<\/h2><p class=\"wp-block-paragraph\">O comando cURL (client URL) &eacute; uma ferramenta poderosa usada para transferir dados de e para servidores. Ele funciona por meio da interface de linha de comando (CLI) e suporta v&aacute;rios protocolos, como HTTP, HTTPS, FTP e SMTP. Essa flexibilidade o torna muito eficiente para tarefas como <strong>testar APIs<\/strong>, baixar arquivos e interagir diretamente com servidores web.<\/p><p class=\"wp-block-paragraph\">Embora alternativas como o Postman ofere&ccedil;am uma interface gr&aacute;fica de usu&aacute;rio (GUI) para essas tarefas, o cURL continua sendo um dos favoritos dos desenvolvedores por sua simplicidade, rapidez e compatibilidade com uma ampla variedade de protocolos. Para quem usa <a href=\"\/pt\/tutoriais\/comandos-linux\/\">comandos do Linux<\/a> no dia a dia, o cURL &eacute; uma ferramenta indispens&aacute;vel.<\/p><h2 id=\"h-installing-curl\" class=\"wp-block-heading\">Instala&ccedil;&atilde;o do cURL<\/h2><p class=\"wp-block-paragraph\">O comando cURL j&aacute; vem pr&eacute;-instalado por padr&atilde;o na maioria dos sistemas operacionais Linux. Para verificar se ele est&aacute; configurado, abra o terminal ou <a href=\"\/pt\/tutoriais\/comandos-linux\/\">conecte-se via SSH<\/a> caso use um servidor virtual privado (VPS) remoto.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; usa uma <a href=\"\/pt\/servidor-vps\">VPS da Hostinger<\/a>, tamb&eacute;m pode se conectar ao sistema com um clique usando o <strong>terminal do navegador<\/strong>. Basta abrir a p&aacute;gina de gerenciamento da VPS no hPanel e clicar no bot&atilde;o no canto superior direito.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/pt\/alojamento-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p class=\"wp-block-paragraph\">Depois de acessar a CLI do seu sistema, execute o seguinte comando para verificar se o cURL est&aacute; instalado:<\/p><pre class=\"wp-block-preformatted\">curl --version<\/pre><p class=\"wp-block-paragraph\">Se o sistema tiver o cURL, a CLI vai mostrar o n&uacute;mero da vers&atilde;o instalada. Caso contr&aacute;rio, voc&ecirc; ver&aacute; o erro <strong>Command not found<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6a9ef3671ebbb\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a9ef3671ebbb\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/08\/saidas-do-terminal-versao-do-curl.png\/public\" alt=\"O terminal exibe a vers&atilde;o do cURL\" class=\"wp-image-57599\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Para instalar o cURL, execute os comandos abaixo, um ap&oacute;s o outro. Lembre-se de substituir <strong>apt<\/strong> pelo gerenciador de pacotes correspondente ao seu sistema operacional Linux:<\/p><pre class=\"wp-block-preformatted\">sudo apt update &amp;&amp; sudo apt upgrade<\/pre><pre class=\"wp-block-preformatted\">sudo apt install curl<\/pre><h2 id=\"h-curl-command-basic-syntax-and-options\" class=\"wp-block-heading\">Sintaxe b&aacute;sica e op&ccedil;&otilde;es do comando cURL<\/h2><p class=\"wp-block-paragraph\">A sintaxe b&aacute;sica do comando cURL &eacute; a seguinte:<\/p><pre class=\"wp-block-preformatted\">curl [options] [URL]<\/pre><p class=\"wp-block-paragraph\">Aqui vai o detalhamento da sintaxe:<\/p><ul class=\"wp-block-list\">\n<li><strong>curl<\/strong> &ndash; nome do comando que indica ao sistema que voc&ecirc; est&aacute; executando o cURL.<\/li>\n\n\n\n<li><strong>Op&ccedil;&otilde;es<\/strong> &ndash; flags adicionais que alteram o comportamento do comando cURL.<\/li>\n\n\n\n<li><strong>URL<\/strong> &ndash; endere&ccedil;o do servidor ou endpoint de destino.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Como h&aacute; v&aacute;rias op&ccedil;&otilde;es dispon&iacute;veis, consulte a <a href=\"https:\/\/curl.se\/docs\/optionsall.html\" target=\"_blank\" rel=\"noopener\">documenta&ccedil;&atilde;o do cURL<\/a> para ver a lista completa. Entre elas, estas s&atilde;o algumas das mais usadas:<\/p><ul class=\"wp-block-list\">\n<li><strong>&ndash;help<\/strong> &ndash; exibe o manual e as op&ccedil;&otilde;es do comando cURL.<\/li>\n\n\n\n<li><strong>-O<\/strong> &ndash; baixa o arquivo original da URL especificada.<\/li>\n\n\n\n<li><strong>-L<\/strong> &ndash; segue URLs de redirecionamento.<\/li>\n\n\n\n<li><strong>-I<\/strong> &ndash; busca apenas o cabe&ccedil;alho.<\/li>\n\n\n\n<li><strong>-d<\/strong> &ndash; envia dados de formul&aacute;rio.<\/li>\n\n\n\n<li><strong>-F<\/strong> &ndash; envia dados complexos ou arquivos.<\/li>\n\n\n\n<li><strong>-X<\/strong> &ndash; especifica o m&eacute;todo de transfer&ecirc;ncia de dados.<\/li>\n<\/ul><p><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                Os comandos do Linux diferenciam mai&uacute;sculas de min&uacute;sculas. Certifique-se de usar as op&ccedil;&otilde;es com as letras mai&uacute;sculas e min&uacute;sculas corretas para evitar erros.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">O comando cURL permite enviar ou receber dados de um endpoint usando diferentes m&eacute;todos HTTP:<\/p><ul class=\"wp-block-list\">\n<li><strong>GET<\/strong> &ndash; m&eacute;todo padr&atilde;o que busca dados do servidor.<\/li>\n\n\n\n<li><strong>POST<\/strong> &ndash; envia dados para o endpoint.<\/li>\n\n\n\n<li><strong>PUT<\/strong> &ndash; cria um recurso no endpoint ou atualiza um j&aacute; existente.<\/li>\n\n\n\n<li><strong>DELETE<\/strong> &ndash; remove dados do endpoint.<\/li>\n<\/ul><h2 id=\"h-curl-command-examples\" class=\"wp-block-heading\">Exemplos de comandos do cURL<\/h2><p class=\"wp-block-paragraph\">Nesta se&ccedil;&atilde;o, vamos ver v&aacute;rios exemplos pr&aacute;ticos do comando cURL para diferentes tarefas.<\/p><h3 id=\"h-getting-a-web-page\" class=\"wp-block-heading\">Acessar uma p&aacute;gina da web<\/h3><p class=\"wp-block-paragraph\">O uso mais b&aacute;sico do comando cURL &eacute; buscar o conte&uacute;do HTML de uma p&aacute;gina da web. Para isso, basta executar o cURL com o endpoint de destino:<\/p><pre class=\"wp-block-preformatted\">curl https:\/\/www.google.com<\/pre><p class=\"wp-block-paragraph\">O comando cURL vai exibir o c&oacute;digo HTML da p&aacute;gina da web como sa&iacute;da padr&atilde;o na sua CLI.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6a9ef36721c2d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a9ef36721c2d\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/08\/O-curl-pega-o-conteudo-HTML-de-uma-pagina-da-web.png\/w=1024,h=1024,fit=scale-down\" alt=\"O cURL busca o conte&uacute;do HTML de uma p&aacute;gina da web\" class=\"wp-image-57597\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode enviar solicita&ccedil;&otilde;es HTTP para v&aacute;rias URLs usando um &uacute;nico comando:<\/p><pre class=\"wp-block-preformatted\">curl https:\/\/www.example1.com https:\/\/example2.com<\/pre><h3 id=\"h-saving-output-to-a-file\" class=\"wp-block-heading\">Salvar a sa&iacute;da em um arquivo<\/h3><p class=\"wp-block-paragraph\">Voc&ecirc; pode salvar a sa&iacute;da do comando cURL em um arquivo adicionando o operador de redirecionamento (&gt;) ao comando. Isso &eacute; &uacute;til para armazenar o resultado para acompanhamento ou arquivamento.<\/p><p class=\"wp-block-paragraph\">Por exemplo, o c&oacute;digo a seguir vai salvar o conte&uacute;do HTML do Google em <strong>file1.txt<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl https:\/\/www.google.com &gt; file1.txt<\/pre><p class=\"wp-block-paragraph\">O comando vai criar o arquivo automaticamente caso ele ainda n&atilde;o exista. Se <strong>file1.txt<\/strong> j&aacute; existir, o cURL vai sobrescrev&ecirc;-lo.<\/p><h3 id=\"h-downloading-a-file-with-its-original-name\" class=\"wp-block-heading\">Baixar um arquivo com o nome original<\/h3><p class=\"wp-block-paragraph\">Um dos usos mais comuns do cURL &eacute; baixar um arquivo remoto da internet, de forma semelhante ao <a href=\"\/pt\/tutoriais\/como-usar-o-comando-wget-no-linux\/\">wget<\/a>. Para isso, use a op&ccedil;&atilde;o <strong>-O<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -O http:\/\/www.example.com\/path\/file.zip<\/pre><p class=\"wp-block-paragraph\">O comando vai baixar o arquivo especificado, chamado <strong>file.zip<\/strong>, para o diret&oacute;rio de trabalho atual. Sem a op&ccedil;&atilde;o <strong>-O<\/strong>, o cURL vai exibir o conte&uacute;do do arquivo na sa&iacute;da padr&atilde;o da CLI.<\/p><h3 id=\"h-following-redirects\" class=\"wp-block-heading\">Seguir redirecionamentos<\/h3><p class=\"wp-block-paragraph\">Se uma URL redirecionar para outra p&aacute;gina, o cURL n&atilde;o vai seguir o redirecionamento e retornar&aacute; o status <strong>301<\/strong> ou <strong>302<\/strong>. Por exemplo, vamos verificar <strong>googlr.com<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl http:\/\/www.googlr.com<\/pre><p class=\"wp-block-paragraph\">Como essa URL redireciona para <strong>google.com<\/strong>, o cURL n&atilde;o segue o redirecionamento e retorna o status 301, indicando que o documento foi movido.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6a9ef3672ddaa\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a9ef3672ddaa\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/08\/o-curl-retorna-o-codigo-de-status-301-redirecionamento.png\/w=1024,h=1024,fit=scale-down\" alt=\"O cURL retorna o status de redirecionamento 301\" class=\"wp-image-57598\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Para seguir automaticamente o redirecionamento e exibir o conte&uacute;do de <strong>google.com<\/strong>, adicione a op&ccedil;&atilde;o -L ou <strong>&ndash;location<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -L http:\/\/www.googlr.com<\/pre><p class=\"wp-block-paragraph\">Se a URL redirecionar v&aacute;rias vezes, voc&ecirc; pode limitar quantos redirecionamentos o cURL vai seguir usando a op&ccedil;&atilde;o <strong>&ndash;max-redirs<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -L --max-redirs 3 http:\/\/www.googlr.com<\/pre><h3 id=\"h-fetching-only-headers\" class=\"wp-block-heading\">Buscar apenas os cabe&ccedil;alhos<\/h3><p class=\"wp-block-paragraph\">Em alguns casos, buscar apenas o <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\" target=\"_blank\" rel=\"noopener\">cabe&ccedil;alho<\/a> da resposta do endpoint &eacute; mais &uacute;til do que recuperar todo o conte&uacute;do. Isso reduz a sa&iacute;da, facilita a an&aacute;lise e minimiza o consumo de largura de banda.<\/p><p class=\"wp-block-paragraph\">As informa&ccedil;&otilde;es nos cabe&ccedil;alhos de resposta geralmente s&atilde;o suficientes para fins de teste. Por exemplo, elas incluem o status da resposta HTTP, as chamadas de API restantes e os redirecionamentos.<\/p><p class=\"wp-block-paragraph\">Para buscar apenas os cabe&ccedil;alhos com o cURL, adicione a op&ccedil;&atilde;o <strong>-I<\/strong> (i mai&uacute;sculo) ou <strong>&ndash;head<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -I http:\/\/www.google.com<\/pre><h3 class=\"wp-block-heading\">Solicita&ccedil;&otilde;es autenticadas<\/h3><p class=\"wp-block-paragraph\">Ao enviar uma solicita&ccedil;&atilde;o para um endpoint protegido, como uma API interna, geralmente voc&ecirc; precisa autentic&aacute;-la incluindo as credenciais no comando cURL.<\/p><p class=\"wp-block-paragraph\">No entanto, o comando e a op&ccedil;&atilde;o variam de acordo com o m&eacute;todo de autentica&ccedil;&atilde;o. Por exemplo, se voc&ecirc; usa um nome de usu&aacute;rio e uma senha, execute:<\/p><pre class=\"wp-block-preformatted\">curl -u username:password &lt;URL&gt;<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode omitir <strong>:password<\/strong> e inseri-la separadamente depois, evitando que a credencial apare&ccedil;a no hist&oacute;rico do Bash.<\/p><p class=\"wp-block-paragraph\">Se voc&ecirc; usa um token Bearer, use a seguinte sintaxe:<\/p><pre class=\"wp-block-preformatted\">curl -H \"Authorization: Bearer &lt;token&gt;\" &lt;URL&gt;<\/pre><p class=\"wp-block-paragraph\">O comando &eacute; parecido se voc&ecirc; usa uma chave de API no cabe&ccedil;alho para autentica&ccedil;&atilde;o:<\/p><pre class=\"wp-block-preformatted\">curl -H \"Authorization: ApiKey &lt;API key&gt;\" &lt;URL&gt;<\/pre><p class=\"wp-block-paragraph\">Se a sua API precisar especificamente da chave de autoriza&ccedil;&atilde;o diretamente na URL, voc&ecirc; pode adicion&aacute;-la usando o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">curl \"https:\/\/api.example.com\/data?api_key=api_key\"<\/pre><h3 id=\"h-submitting-form-data\" class=\"wp-block-heading\">Envio de dados de formul&aacute;rio<\/h3><p class=\"wp-block-paragraph\">O cURL permite enviar dados facilmente para formul&aacute;rios em um endpoint. Isso &eacute; &uacute;til para automatizar o processo com um script Bash ou quando voc&ecirc; n&atilde;o quer interagir com a interface web do destino.<\/p><p class=\"wp-block-paragraph\" id=\"h-submitting-form-data\">Para enviar dados de formul&aacute;rio com o cURL, voc&ecirc; precisa especificar o par <strong>chave-valor<\/strong>. A <strong>chave<\/strong> corresponde ao nome do campo do formul&aacute;rio, enquanto o <strong>valor<\/strong> indica os dados que voc&ecirc; quer inserir. A sintaxe &eacute; a seguinte:<\/p><pre class=\"wp-block-preformatted\">key1=value1&amp;key2=value2<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; precisa de duas op&ccedil;&otilde;es, <strong>-X<\/strong> para definir o m&eacute;todo de envio e <strong>-d<\/strong> para indicar ao cURL que deseja inserir dados. O comando completo pode ficar assim:<\/p><pre class=\"wp-block-preformatted\">curl -X POST -d \"username=johndoe&amp;password=secret\" https:\/\/example.com\/login<\/pre><p class=\"wp-block-paragraph\">No exemplo, o cURL usa a solicita&ccedil;&atilde;o POST para inserir as credenciais no formul&aacute;rio da p&aacute;gina de login.<\/p><p class=\"wp-block-paragraph\">Ao enviar dados de formul&aacute;rio, certifique-se de que eles sigam o <a href=\"https:\/\/www.w3schools.com\/tags\/ref_urlencode.ASP\" target=\"_blank\" rel=\"noopener\">formato de codifica&ccedil;&atilde;o de URLs<\/a>. Por exemplo, substitua <strong>espa&ccedil;os<\/strong> por <strong>%20<\/strong> e o caractere <strong>&amp;<\/strong> por <strong>%26<\/strong>.<\/p><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode inserir dados de um arquivo usando a sintaxe a seguir. Certifique-se de que o arquivo contenha os dados no formato correto de pares chave-valor.<\/p><pre class=\"wp-block-preformatted\">curl -X POST -d @data.txt https:\/\/example.com\/login<\/pre><h3 id=\"h-uploading-a-file\" class=\"wp-block-heading\">Enviar um arquivo<\/h3><p class=\"wp-block-paragraph\">Se voc&ecirc; quiser enviar um arquivo local ou dados mais complexos para um endpoint, use a op&ccedil;&atilde;o <strong>-F<\/strong>. Essa op&ccedil;&atilde;o usa o m&eacute;todo POST por padr&atilde;o, ent&atilde;o n&atilde;o &eacute; necess&aacute;rio especific&aacute;-lo manualmente com <strong>-X<\/strong>.<\/p><p class=\"wp-block-paragraph\" id=\"h-uploading-a-file\">Por exemplo, o c&oacute;digo a seguir envia um arquivo de texto para o endpoint:<\/p><pre class=\"wp-block-preformatted\">curl -F \"file=@test.txt\" https:\/\/example.com\/upload<\/pre><p class=\"wp-block-paragraph\">Se voc&ecirc; quiser enviar v&aacute;rios arquivos, basta list&aacute;-los no comando, cada um come&ccedil;ando com a op&ccedil;&atilde;o <strong>-F<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -F \"file=@\/path\/to\/image.jpg\" -F \"file=@\/path\/to\/image2.jpg\" https:\/\/example.com\/upload<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode enviar arquivos usando o cURL pelo <a href=\"\/pt\/tutoriais\/ftp-o-que-e-como-funciona\/\">protocolo de transfer&ecirc;ncia de arquivos (FTP)<\/a>. Nesse caso, use a op&ccedil;&atilde;o <strong>-T<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -T \/path\/to\/file ftp:\/\/ftp.example.com\/remote\/path\/<\/pre><p class=\"wp-block-paragraph\">Para usar o protocolo seguro de transfer&ecirc;ncia de arquivos (SFTP) ou um servidor FTP protegido, adicione as credenciais de autentica&ccedil;&atilde;o antes da op&ccedil;&atilde;o <strong>-T<\/strong>:<\/p><pre class=\"wp-block-preformatted\">curl -u username:password -T \/path\/to\/file sftp:\/\/sftp.example.com\/remote\/path\/<\/pre><h3 id=\"h-setting-custom-headers\" class=\"wp-block-heading\">Como definir cabe&ccedil;alhos personalizados<\/h3><p class=\"wp-block-paragraph\">Os cabe&ccedil;alhos de solicita&ccedil;&atilde;o personalizados permitem interagir com o servidor web ou a API de uma maneira espec&iacute;fica. Com eles, voc&ecirc; pode adicionar metadados espec&iacute;ficos para obter uma resposta personalizada, o que &eacute; &uacute;til ao testar a funcionalidade do endpoint.<\/p><p class=\"wp-block-paragraph\">Voc&ecirc; pode definir um cabe&ccedil;alho personalizado com a op&ccedil;&atilde;o <strong>-H<\/strong> usando esta sintaxe:<\/p><pre class=\"wp-block-preformatted\">curl -H \"Header: value\" &lt;URL&gt;<\/pre><p class=\"wp-block-paragraph\">Por exemplo, voc&ecirc; pode especificar o tipo de conte&uacute;do que quer enviar no cabe&ccedil;alho. Aqui est&aacute; o comando:<\/p><pre class=\"wp-block-preformatted\">curl -X POST -H \"Content-Type: application\/json\" -d '{\"form\":\"JSONdata\"}' https:\/\/api.example.com\/<\/pre><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode definir um cabe&ccedil;alho personalizado para especificar o tipo de conte&uacute;do que aceita como resposta. Por exemplo, se quiser que o endpoint responda em JSON, use o seguinte:<\/p><pre class=\"wp-block-preformatted\">curl -H \"Accept: application\/json\" https:\/\/api.example.com\/data<\/pre><p class=\"wp-block-paragraph\">Ao testar a API, voc&ecirc; pode definir um cabe&ccedil;alho personalizado para especificar a vers&atilde;o a ser usada. O comando fica assim:<\/p><pre class=\"wp-block-preformatted\">curl -H \"X-API-Version: 2\" https:\/\/api.example.com\/v2\/data<\/pre><h3 id=\"h-using-different-protocols\" class=\"wp-block-heading\">Usar protocolos diferentes<\/h3><p class=\"wp-block-paragraph\">Dependendo do endpoint, talvez voc&ecirc; precise usar protocolos diferentes com o cURL. Por exemplo, talvez voc&ecirc; queira usar o SFTP para transferir arquivos, enquanto testar um servidor de e-mail exige o SMTP.<\/p><p class=\"wp-block-paragraph\">Para usar o cURL com protocolos diferentes, basta especificar o protocolo no in&iacute;cio da URL do endpoint, antes de <strong>:\/\/<\/strong>. Por exemplo, este comando transfere dados usando SMTP:<\/p><pre class=\"wp-block-preformatted\">curl --url smtp:\/\/smtp.example.com --mail-from \"user@example.com\" --mail-rcpt \"recipient@example.com\" -T email.txt<\/pre><p class=\"wp-block-paragraph\">O comando envia uma mensagem de <strong>user@example<\/strong>.com para <strong>recipient@example.com<\/strong> pelo servidor de e-mail <strong>smtp.example.com<\/strong>, usando o protocolo SMTP.<\/p><h2 id=\"h-conclusion\" class=\"wp-block-heading\">Conclus&atilde;o<\/h2><p class=\"wp-block-paragraph\">O comando cURL no Linux permite que seu sistema se conecte a um servidor e transfira dados de e para ele. Ele se destaca pela compatibilidade com v&aacute;rios protocolos e pela possibilidade de incluir informa&ccedil;&otilde;es adicionais, como cabe&ccedil;alhos personalizados.<\/p><p class=\"wp-block-paragraph\">Embora o cURL j&aacute; venha instalado na maioria das distribui&ccedil;&otilde;es Linux, voc&ecirc; pode instal&aacute;-lo manualmente usando o gerenciador de pacotes. O uso b&aacute;sico desse comando &eacute; buscar o conte&uacute;do de uma p&aacute;gina da web ou a resposta de uma API.<\/p><p class=\"wp-block-paragraph\">Voc&ecirc; tamb&eacute;m pode baixar arquivos com a op&ccedil;&atilde;o <strong>-O<\/strong> ou envi&aacute;-los com a op&ccedil;&atilde;o <strong>-F<\/strong>. Al&eacute;m disso, use <strong>-H<\/strong> para definir um cabe&ccedil;alho de solicita&ccedil;&atilde;o personalizado, por exemplo, para adicionar um token de autentica&ccedil;&atilde;o ou especificar a vers&atilde;o da API.<\/p><p class=\"wp-block-paragraph\">Para enviar dados de formul&aacute;rio usando o cURL, use a op&ccedil;&atilde;o <strong>-d<\/strong>. J&aacute; para enviar recursos mais complexos, como arquivos, adicione a op&ccedil;&atilde;o <strong>-F<\/strong>.<\/p><h2 id=\"h-curl-command-faq\" class=\"wp-block-heading\">Perguntas frequentes (FAQ) sobre o comando cURL<\/h2><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1786438848490\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Para que serve o comando cURL no Linux?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>No Linux, o comando cURL permite se conectar a um servidor remoto e transferir dados de e para ele. Ele &eacute; &uacute;til para v&aacute;rias tarefas, como baixar um arquivo de um site e enviar solicita&ccedil;&otilde;es a uma API para testes.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1786438850481\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Quais protocolos o cURL suporta?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>O cURL suporta v&aacute;rios protocolos de transfer&ecirc;ncia de dados, incluindo HTTP, HTTPS, FTP e SMTP. Para usar um protocolo espec&iacute;fico, basta inseri-lo no in&iacute;cio da URL, antes de u003cstrongu003e:\/\/u003c\/strongu003e. Por exemplo, use o endpoint u003cstrongu003eftp:\/\/www.example.comu003c\/strongu003e se quiser usar FTP.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1786438851029\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Como fa&ccedil;o para verificar se o cURL est&aacute; instalado no meu sistema?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Para verificar se o cURL est&aacute; instalado no sistema, execute o comando u003cstrongu003ecurl u002du002dversionu003c\/strongu003e. Se a CLI mostrar um n&uacute;mero de vers&atilde;o, o cURL est&aacute; instalado. Caso contr&aacute;rio, ela exibir&aacute; o erro u003cstrongu003eCommand not foundu003c\/strongu003e.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>O comando cURL (client URL) &eacute; uma ferramenta de linha de comando para transferir dados de ou para um servidor. Na forma mais simples, voc&ecirc; especifica uma URL e os dados que deseja enviar ou receber. Ele suporta v&aacute;rios protocolos, incluindo HTTP, HTTPS e FTP, e funciona na maioria dos sistemas operacionais. O comando cURL [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/pt\/tutoriais\/comando-curl-linux\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Comando cURL no Linux: como usar, op\u00e7\u00f5es e exemplos","rank_math_description":"Aprenda a usar o comando cURL no Linux, entenda sua sintaxe e principais op\u00e7\u00f5es e veja exemplos para baixar arquivos, testar APIs e transferir dados.","rank_math_focus_keyword":"comando curl","footnotes":""},"categories":[7708],"tags":[6389],"class_list":["post-15180","post","type-post","status-publish","format-standard","hentry","category-vps","tag-o-que-e-comando-curl"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/curl-command\/","default":1},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/comando-curl-linux\/","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/comment-utiliser-la-commande-curl-sous-linux\/","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/comando-curl\/","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/apa-itu-curl\/","default":0},{"locale":"nl-NL","link":"https:\/\/www.hostinger.com\/nl\/tutorials\/wat-is-een-curl\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/curl-command\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/curl-command\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/curl-command\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/curl-command\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/curl-command\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/curl-command\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/curl-command\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/comando-curl\/","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/comando-curl\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/comando-curl\/","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/comando-curl-linux\/","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/curl-befehl","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/15180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/comments?post=15180"}],"version-history":[{"count":13,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/15180\/revisions"}],"predecessor-version":[{"id":50665,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/15180\/revisions\/50665"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media?parent=15180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/categories?post=15180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/tags?post=15180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}