¿Qué es el comando curl en Linux y qué se puede hacer con él?

El comando curl en Linux es una excelente manera de automatizar el proceso de carga y descarga de datos desde un servidor. Curl admite todos los protocolos importantes como HTTP, HTTPS, SFTP, FTP y más.

Funciones como pausar y reanudar transferencias, limitar el ancho de banda, soporte de proxy y autenticación de usuario lo convierten en una utilidad de línea de comandos perfecta para la transferencia de datos.

Echemos un vistazo profundo y exploremos qué es curl y cómo usarlo.

¿Qué es el comando curl?

Curl se desarrolló inicialmente para automatizar la descarga periódica de tipos de cambio desde una página web. Los tipos de cambio en tiempo real proporcionaron equivalentes de coronas suecas en dólares estadounidenses a los usuarios de IRC. La popularidad de curl creció exponencialmente a medida que la gente comenzó a utilizar sus aplicaciones generalizadas.

Curl es uno de los proyectos de código abierto más antiguos y populares que jamás haya existido. El nombre significa URL del cliente y se usa en innumerables sistemas en todo el mundo. Curl encuentra su uso en una variedad de aplicaciones como desarrollo web y pruebas de errores.

Los desarrolladores no necesitan escribir los comandos manualmente; pueden agruparlos en scripts y usarlos para automatizar operaciones complejas. A continuación, se muestran algunos ejemplos de cómo utilizar curl.

Instalación de curl en Linux

Aunque este popular paquete viene preinstalado en la mayoría de las distribuciones de Linux, puedes descargar curl fácilmente si aún no está instalado en la tuya. Utilice los siguientes comandos para instalar curl en su máquina.

En Ubuntu y Debian:

 sudo apt install curl

En distribuciones basadas en RHEL como CentOS y Fedora:

 sudo yum install curl

Para instalar curl en Arch Linux, escriba:

 sudo pacman -S curl

Relacionado Cómo administrar los servicios de systemd mediante el comando systemctl en Linux

Cómo usar el comando curl

Curl usa la siguiente sintaxis para todos sus comandos:

 curl options url

… donde las opciones y la URL cambian según la tarea en cuestión. Curl descarga el código fuente de la URL, siempre que no mencione la opción / tarea. La última versión de curl también adivina el protocolo, si no se menciona en la URL, y lo establece de forma predeterminada en HTTP.

Aquí hay algunos comandos curl útiles para realizar varias tareas funcionales:

Descargar un archivo usando curl

Puede descargar recursos a través de una URL específica usando curl. Este comando tiene dos banderas que puede usar; -o y -O .

  • El comando -O guarda el archivo en el directorio actual con el mismo nombre que en el servidor remoto.
  • El comando -o , por otro lado, le permite elegir el nombre y la ubicación del archivo.

A continuación, se muestra un ejemplo de estos dos comandos:

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

El archivo se descarga en el directorio actual, con su nombre original como en el servidor remoto.

 curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz

Cuando ejecute el comando mencionado anteriormente, curl descargará y guardará el archivo como newfile.tar.gz . Tenga en cuenta que deberá especificar el nombre del archivo y la ruta al directorio como entrada.

Reanudar una descarga interrumpida usando curl

Las descargas pueden interrumpirse debido a varias razones, como interrupciones de la red o un enlace caducado. La función para reanudar una descarga interrumpida ayuda en tales situaciones al evitar la molestia de descargar el archivo completo nuevamente.

Utilice el indicador -C con -o o -O para reanudar una descarga interrumpida utilizando curl.

 curl -C -O http://yourdomain.com/yourfile.tar.gz

Descarga de varios archivos usando curl

No existe un comando dedicado para descargar varios archivos simultáneamente a través de curl, pero puede usar los indicadores -o u -O varias veces en el mismo comando para lograr resultados similares.

Por ejemplo:

 curl -O http://website1.com/file1.iso -O https://website2.com/file2.iso

El comando mencionado anteriormente descargará los archivos ISO de ambas URL simultáneamente en el directorio actual.

Obtener los encabezados HTTP de una página web

Los encabezados HTTP contienen información crucial, como el agente de usuario, el tipo de contenido y la codificación. Puede solicitar el encabezado HTTP de una URL utilizando los indicadores -I (i en mayúscula, no L) y –http2 :

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

Producción:

El comando -I muestra información diversa, incluidos los detalles del software del servidor, la fecha, el tipo de contenido, el estado de X-cache y más.

Especificar una tasa de transferencia máxima

Las transferencias de archivos suelen adquirir la mayor parte de su ancho de banda, lo que le impide realizar cualquier otra tarea.

Para abordar este problema, puede establecer una tasa de transferencia máxima para sus descargas usando curl. Utilice el método –limit-rate seguido de un modificador k , m o g (denota kilobytes, megabytes o gigabytes respectivamente).

El siguiente comando restringe la velocidad de transferencia a 1 MBps:

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

Producción:

Transferir archivos a través de FTP y curl

Puede transferir archivos usando el Protocolo de transferencia de archivos accediendo a cualquier servidor FTP usando curl. Curl le brinda la funcionalidad para descargar y cargar archivos después de conectarse al servidor FTP.

Utilice el siguiente comando para conectarse a un servidor FTP:

 curl -u username:password ftp://ftp.example.com/

… donde el nombre de usuario y la contraseña son las credenciales para iniciar sesión en el servidor.

Puede descargar cualquier archivo del servidor especificando la URL del archivo en el siguiente comando:

 curl -u username:password -O ftp://ftp.example.com/file.tar.gz

También puede cargar archivos al servidor FTP usando la bandera -T :

 curl -T newfile.tar.gz -u username:password ftp://ftp.example.com

El comando -T seguido del archivo especificado lo carga en el servidor FTP.

Relacionado Cómo transferir archivos de forma segura en Linux con sftp

Usar proxies con curl

Curl admite una gran cantidad de proxies diferentes como HTTPS, HTTP y SOCKS. Puede utilizar estos proxies para transferir datos de forma segura utilizando curl.

Utilice el siguiente comando para configurar proxies en curl:

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

La opción -x lo conecta al puerto 8888 en el servidor 192.168.44.1. Asegúrese de reemplazar los detalles del proxy en el comando con el proxy al que desea conectarse. El servidor proxy mencionado anteriormente no requiere autenticación, pero puede acceder a un proxy protegido utilizando la siguiente sintaxis:

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

Especifique el nombre de usuario y la contraseña separados por una C olon junto al indicador -U .

Ver detalles de la versión

Este comando es útil cuando desea verificar la información de la versión del paquete. Utilice la marca –version para ver la versión curl:

 curl --version

La salida debe mencionar la versión curl, sus protocolos y características.

Identificación de los beneficios del comando curl en Linux

Curl viene equipado con muchas opciones para automatizar la transferencia de datos en su máquina. La función para reanudar las descargas interrumpidas y la compatibilidad con FTP es útil en varias aplicaciones.

Los ejemplos de este tutorial tienen como objetivo mostrar los comandos curl más populares con sus respectivos códigos para ayudarlo a comprender mejor el comando curl.