curl
es una utilidad de línea de comandos para transferir datos desde o hacia un servidor diseñado para funcionar sin interacción del usuario. Con curl
, puede descargar o cargar datos utilizando uno de los protocolos compatibles, incluidos HTTP, HTTPS , SCP , SFTP y FTP . curl
proporciona una serie de opciones que le permiten reanudar las transferencias, limitar el ancho de banda, Soporte de proxy, autenticación de usuario 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 #
El paquete curl está preinstalado en la mayoría de las distribuciones Linux actuales.
para comprobar si el paquete Curl está instalado en su sistema, abra la consola, escriba curl
y presione ENTRAR. Si usted tiene curl
instalado, el sistema de impresión 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 utilizando el administrador de paquetes de su distribución.
Instalar Curl en Ubuntu y Debian #
sudo apt update
sudo apt install curl
Instalar Curl en CentOS y Fedora #
sudo yum install curl
Cómo Utilizar Curl #
La sintaxis de la etiqueta curl
comando es como sigue:
curl
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 la página de inicio example.com
debe ejecutar:
curl example.com
el comando imprimirá el código fuente de la página de inicio example.com
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 de la curl
comando, utilice el -o
o -O
opción.,
minúscula -o
guarda el archivo con un nombre de archivo predefinido, que en el ejemplo siguiente es vue-v2.6.10.js
:
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
mayúscula -O
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, utilice varias opciones -O
, seguido de la URL del archivo que desea descargar.,
en el siguiente ejemplo estamos descargando los archivos iso de Arch Linux y Debian:
reanudar una descarga #
Puede reanudar una descarga utilizando la opción -C -
. Esto es útil si su conexión se cae durante la descarga de un archivo grande, y en lugar de iniciar la descarga desde cero, puede continuar con el anterior.
por ejemplo, si está descargando Ubuntu 18.,04 archivo iso usando el siguiente comando:
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
y de repente su conexión se cae, puede 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.,él especificó el recurso:
curl -I --http2 https://www.ubuntu.com/
pruebe si un sitio web admite HTTP/2 #
para verificar si una URL en particular admite el nuevo protocolo HTTP/2 , obtenga los encabezados HTTP con -I
junto con la opción --http2
:
curl -I --http2 -s https://linuxize.com/ | grep HTTP
la opción -s
le dice a curl
que se ejecute en silencio (silencioso) y oculte 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 una versión más reciente, no necesita usar la opción --http2
porque HTTP/2 está habilitado de forma predeterminada para todas las conexiones HTTPS.
Follow Redirects #
de forma predeterminada, curl
no sigue los encabezados de ubicación HTTP.,la página será redirigida a la versión www:
curl google.com
la opción-L
indica acurl
que siga cualquier redirección hasta que llegue al destino final:
curl -L google.com
cambie el agente de usuario #
a veces, al descargar un archivo, el servidor remoto puede configurarse para bloquear el agente de usuario curl o para devolver diferentes contenidos dependiendo del dispositivo y el navegador del visitante.,
en situaciones como esta para emular un navegador diferente, utilice la opción -A
.
por ejemplo, Para emula Firefox 60 se debería utilizar:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
Especifica una Velocidad de Transferencia Máxima #
El --limit-rate
opción le permite limitar la tasa de transferencia de datos. El valor se puede expresar en bytes, kilobytes con el sufijo k
, megabytes con el sufijo m
, y gigabytes con el sufijo g
.,
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 que curl
consuma todo el ancho de banda disponible.
transferir archivos a través de FTP #
para acceder a un servidor FTP protegido con curl
, utilice la opción -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/
archivos y directorios en el directorio personal del usuario.,
Puede descargar un solo archivo desde el servidor FTP utilizando la siguiente sintaxis:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
para cargar un archivo al servidor FTP, utilice el -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 #
a veces 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 el interruptor -b
seguido de un nombre de archivo que contenga las cookies o una cadena.
por ejemplo, para descargar el archivo rpm Oracle Java JDK jdk-10.0.2_linux-x64_bin.rpm
deberá pasar una cookie llamada oraclelicense
con el valor a
:
usando Proxies #
curl
soporta diferentes tipos de proxies, incluyendo HTTP, HTTPS y Socks., Para transferir datos a través de un servidor proxy, utilice la opción -x
(--proxy
), seguida de la URL del proxy.,
el siguiente comando descarga el recurso especificado usando un proxy en 192.168.44.1
port 8888
:
curl -x 192.168.44.1:8888 http://linux.com/
si el servidor proxy requiere autenticación, use el -U
(--proxy-user
) opción seguida 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 las opciones curl
más utilizadas y están destinados a ayudarlo a comprender cómo funciona el comando curl
.
para obtener más información acerca de curl
visite la página de documentación de Curl.