GNU/Linux >> Tutoriales Linux >  >> Linux

Comando Curl en Linux con ejemplos

curl es una utilidad de línea de comandos para transferir datos desde o hacia un servidor diseñado para funcionar sin la interacción del usuario. Con curl , puede descargar o cargar datos utilizando uno de los protocolos admitidos, incluidos HTTP, HTTPS, SCP, SFTP y FTP. curl proporciona una serie de opciones que le permiten reanudar las transferencias, limitar el ancho de banda, compatibilidad con proxy, autenticación de usuarios y mucho más.

En este tutorial, le mostraremos cómo usar la herramienta curl a través de ejemplos prácticos y explicaciones detalladas de las opciones de curl más comunes.

Instalando Curl #

Actualmente, el paquete curl está preinstalado en la mayoría de las distribuciones de Linux.

Para verificar si el paquete Curl está instalado en su sistema, abra su consola, escriba curl y presione Intro. Si tienes curl instalado, el sistema imprimirá curl: try 'curl --help' or 'curl --manual' for more information . De lo contrario, verá algo como curl command not found .

Si curl no está instalado, puede instalarlo fácilmente usando el administrador de paquetes de su distribución.

Instalar Curl en Ubuntu y Debian #

sudo apt updatesudo apt install curl

Instalar Curl en CentOS y Fedora #

sudo yum install curl

Cómo usar Curl #

La sintaxis del curl El comando es el siguiente:

curl [options] [URL...]

En su forma más simple, cuando se invoca sin ninguna opción, curl muestra el recurso especificado en la salida estándar.

Por ejemplo, para recuperar example.com página de inicio que ejecutarías:

curl example.com

El comando imprimirá el código fuente del example.com página de inicio en la ventana de su terminal.

Si no se especifica ningún protocolo, curl intenta adivinar el protocolo que desea usar, y por defecto será HTTP .

Guardar la salida en un archivo #

Para guardar el resultado del curl comando, use el -o o -O opción.

Minúsculas -o guarda el archivo con un nombre de archivo predefinido, que en el siguiente ejemplo es vue-v2.6.10.js :

curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Mayúsculas -O guarda el archivo con su nombre de archivo original:

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Descargar varios archivos #

Para descargar varios archivos a la vez, use varios -O opciones, seguido de la URL del archivo que desea descargar.

En el siguiente ejemplo, descargamos los archivos iso de Arch Linux y Debian:

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso  \     -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

Reanudar una descarga #

Puede reanudar una descarga usando -C - opción. Esto es útil si su conexión se cae durante la descarga de un archivo grande y, en lugar de comenzar la descarga desde cero, puede continuar con la anterior.

Por ejemplo, si está descargando el archivo iso de Ubuntu 18.04 usando el siguiente comando:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

y de repente tu conexión se cae, puedes reanudar la descarga con:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Obtener los encabezados HTTP de una URL #

Los encabezados HTTP son pares clave-valor separados por dos puntos que contienen información como agente de usuario, tipo de contenido y codificación. Los encabezados se pasan entre el cliente y el servidor con la solicitud o la respuesta.

Utilice el -I opción para obtener solo los encabezados HTTP del recurso especificado:

curl -I --http2 https://www.ubuntu.com/

Probar si un sitio web admite HTTP/2 #

Para verificar si una URL en particular es compatible con el nuevo protocolo HTTP/2, obtenga los encabezados HTTP con -I junto con --http2 opción:

curl -I --http2 -s https://linuxize.com/ | grep HTTP

El -s opción le dice a curl para ejecutar en silencio (silencioso) y ocultar el medidor de progreso y los mensajes de error.

Si el servidor remoto admite HTTP/2, curl imprime HTTP/2.0 200 :

HTTP/2 200

De lo contrario, la respuesta es HTTP/1.1 200 :

HTTP/1.1 200 OK

Si tiene la versión curl 7.47.0 o posterior, no necesita usar el --http2 porque HTTP/2 está habilitado de forma predeterminada para todas las conexiones HTTPS.

Seguir redirecciones #

Por defecto, curl no sigue los encabezados de ubicación HTTP.

Si intenta recuperar la versión que no es www de google.com , notará que en lugar de obtener la fuente de la página, será redirigido a la versión www:

curl google.com

El -L opción instruye a curl para seguir cualquier redirección hasta que llegue al destino final:

curl -L google.com

Cambiar el usuario-agente #

A veces, al descargar un archivo, el servidor remoto puede configurarse para bloquear el agente de usuario de Curl o devolver diferentes contenidos según el dispositivo y el navegador del visitante.

En situaciones como esta para emular un navegador diferente, use el -A opción.

Por ejemplo, para emular Firefox 60 usarías:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

Especifique una tasa de transferencia máxima #

El --limit-rate La opción le permite limitar la tasa de transferencia de datos. El valor se puede expresar en bytes, kilobytes con el k sufijo, megabytes con m sufijo y gigabytes con g sufijo.

En el siguiente ejemplo curl descargará el binario Go y limitará la velocidad de descarga a 1 mb:

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Esta opción es útil para evitar curl consumiendo todo el ancho de banda disponible.

Transferir archivos a través de FTP #

Para acceder a un servidor FTP protegido con curl , utilice el -u y especifique el nombre de usuario y la contraseña como se muestra a continuación:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Una vez que haya iniciado sesión, el comando enumera todos los archivos y directorios en el directorio de inicio del usuario.

Puede descargar un solo archivo desde el servidor FTP usando la siguiente sintaxis:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Para subir un archivo al servidor FTP, use -T seguido del nombre del archivo que desea cargar:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Enviar cookies #

En ocasiones, es posible que deba realizar una solicitud HTTP con cookies específicas para acceder a un recurso remoto o para depurar un problema.

De forma predeterminada, al solicitar un recurso con curl , no se envían ni almacenan cookies.

Para enviar cookies al servidor, utilice -b interruptor seguido de un nombre de archivo que contiene las cookies o una cadena.

Por ejemplo, para descargar el archivo rpm de Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm deberá pasar una cookie llamada oraclelicense con valor a :

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Usando Proxies #

curl admite diferentes tipos de proxies, incluidos HTTP, HTTPS y SOCKS. Para transferir datos a través de un servidor proxy, use -x (--proxy ), seguida de la URL del proxy.

El siguiente comando descarga el recurso especificado usando un proxy en 192.168.44.1 puerto 8888 :

curl -x 192.168.44.1:8888 http://linux.com/

Si el servidor proxy requiere autenticación, use -U (--proxy-user ) seguido del nombre de usuario y contraseña separados por dos puntos (user:password ):

curl -U username:password -x 192.168.44.1:8888 http://linux.com/

Conclusión #

curl es una herramienta de línea de comandos que le permite transferir datos desde o hacia un host remoto. Es útil para solucionar problemas, descargar archivos y más.

Los ejemplos que se muestran en este tutorial son simples, pero demuestran el curl más utilizado opciones y están destinados a ayudarlo a comprender cómo curl trabajo de mando.

Para más información sobre curl visite la página de documentación de Curl.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. Comando wc Linux con ejemplos

  2. Comando de clasificación de Linux con ejemplos

  3. Comando Linux Tee con ejemplos

  4. Comando de cabeza de Linux con ejemplos

  5. Comando JQ en Linux con ejemplos

15 comandos ps de Linux con ejemplos

Comando de CD de Linux con ejemplos

Comando de vigilancia de Linux con ejemplos

Comando de espera en Linux con ejemplos

Comando de exportación de Linux con ejemplos

Comando IP de Linux con ejemplos