Comando curl en Linux | Guía completa 2026

comando-curl
comando-curl

El comando curl es una herramienta potente y versátil que permite transferir datos hacia o desde un servidor desde la terminal. Aunque se utiliza principalmente en Linux, también está disponible en otros sistemas operativos.

Además, curl es compatible con numerosos protocolos, como HTTP, HTTPS, FTP y SFTP. Por esta razón, se emplea habitualmente para descargar archivos, consultar páginas web, probar servidores e interactuar con API REST.

Muchos usuarios comparan curl con wget. Sin embargo, aunque ambos comandos permiten descargar contenido, no funcionan exactamente de la misma manera. Por un lado, curl ofrece un mayor control sobre las solicitudes, los encabezados, la autenticación y los datos enviados. Por otro lado, wget resulta especialmente cómodo para realizar descargas recursivas o mantener procesos de descarga en segundo plano.

Por tanto, curl es una excelente opción para desarrolladores, administradores de sistemas y usuarios que necesitan trabajar con servicios web desde la terminal.

👉 Y recuerda, si quieres aprender más de Linux, pincha en este curso de Linux gratis

👉 También te dejo por aquí una guía de comandos Linux por categorías

Utilidad del comando curl

El comando curl destaca por su flexibilidad. Entre sus principales ventajas se encuentran las siguientes:

  • Ligero: no necesita un navegador ni una interfaz gráfica.
  • Automatización: puede integrarse fácilmente en scripts de shell.
  • Interoperabilidad: es compatible con diferentes protocolos y servicios.
  • Depuración: permite revisar encabezados, respuestas y errores de servidores.
  • Integración con API: facilita el envío de solicitudes GET, POST, PUT o DELETE.

Además, puede combinarse con otras herramientas de Linux para procesar las respuestas obtenidas.

Sintaxis básica comando curl

La sintaxis general es la siguiente:

curl [opciones] [URL]

En esta estructura:

  • opciones permite modificar el comportamiento del comando.
  • URL representa la dirección del servidor o recurso con el que se quiere interactuar.

Ejemplos comunes

  • Descargar un archivo

Para descargar un archivo y conservar su nombre original, utiliza la opción -O:

curl -O https://example.com/archivo.txt
#-O: Guarda el archivo con su nombre original.
  • Hacer una solicitud GET

Por defecto, curl utiliza el método GET:

curl https://api.example.com/datos
#Por defecto, curl utiliza el método GET para recuperar datos.
  • Enviar una solicitud POST

Para enviar información mediante una solicitud POST, utiliza -d:

curl -X POST -d "nombre=Juan&edad=30" https://www.ejemplo.com/api
#-X POST: Especifica el método HTTP.
#-d: Envía datos en el cuerpo de la solicitud.
  • Enviar encabezados (Headers)

La opción -H permite añadir encabezados personalizados:

curl -H "Authorization: Bearer token123" https://api.example.com/seguro
#-H: Añade un encabezado personalizado.
  • Guardar la salida en un archivo
curl https://example.com -o salida.html
#-o: Guarda la salida en un archivo específico.
  • Seguir redirecciones
curl -L https://example.com
#-L: Sigue redirecciones HTTP 3xx.
  • Usar Autenticación
curl -u usuario:contraseña https://example.com/protegido
#-u: Especifica credenciales de usuario.
  • Descargar con barra de progreso
curl -# -O https://example.com/archivo_grande.zip
#-#: Muestra una barra de progreso.
  • Enviar encabezado en formato JSON

Cuando una API espera información en formato JSON, es necesario indicar el tipo de contenido:

curl -X GET -H "Content-Type: application/json" https://api.example.com/test
  • Subir un Archivo
curl -T mi_archivo.txt https://www.ejemplo.com/upload/nuevo_nombre.txt
#-T: Sube el archivo especificado.

Opciones clave comando curl

  • -I: Solo obtiene encabezados (solicitud HEAD).
curl -I https://example.com
  • -v: Salida detallada, mostrando encabezados de solicitud y respuesta.
curl -v https://example.com
  • -k: Ignora errores de certificados SSL
curl -k https://example.com
  • –retry: Reintenta solicitudes fallidas.
curl --retry 3 https://example.com
  • –data-raw: Envía datos en bruto en el cuerpo de una solicitud.
curl -X POST --data-raw '{"clave":"valor"}' -H "Content-Type: application/json" https://api.example.com

Ejemplo de interacción con una API REST

Supongamos que trabajas con una API que requiere autenticación y devuelve respuestas en JSON:

En primer lugar, se envían las credenciales para obtener un token:

curl -X POST -d "usuario=admin&contraseña=secreta" https://api.example.com/autenticar

A continuación, el token recibido puede utilizarse para consultar un recurso protegido:

curl -H "Authorization: Bearer tu_token_aquí" https://api.example.com/datos

Por tanto, curl permite completar procesos de autenticación y consulta sin necesidad de utilizar una aplicación gráfica.

Buenas prácticas

En primer lugar, utiliza -v o –trace cuando necesites diagnosticar problemas de conexión.

Además, evita emplear -k salvo que estés trabajando en un entorno de pruebas controlado.

Asimismo, comprueba siempre la dirección antes de enviar credenciales, tokens o información sensible.

Por otro lado, cuando automatices solicitudes, valida tanto el código de estado HTTP como el contenido de la respuesta.

Finalmente, guarda las contraseñas y los tokens en variables de entorno o gestores de secretos, en lugar de escribirlos directamente dentro de los scripts.

Ejemplo en video

Para complementar esta guía, hemos preparado un video donde se muestra paso a paso cómo usar el comando curl en Linux.

De este modo, podrás ver de forma práctica algunos de los ejemplos explicados en el artículo:

https://youtube.com/shorts/wGH8bJ5Pc7g

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *