Solo para visitantes de nuestro blog Obtenga 3 meses adicionales gratis + 10% de descuento en el plan trianual YSBLOG10
Agarra el trato

Explicación del comando curl en Linux con ejemplos (2026)

El comando curl en Linux es una herramienta versátil para transferir datos hacia y desde servidores usando URL. Admite protocolos como HTTP, HTTPS, FTPy más. Con curl, puedes descargar archivos, probar API, enviar encabezados, autenticarte, seguir redirecciones y automatizar tareas de red directamente desde la terminal con opciones compatibles con scripts.

Si trabajas con servidores Linuxya sea alojamiento web o API, aprender el comando curl en Linux es esencial. Es rápido, programable y perfecto para solucionar problemas de sitios web, verificar SSLy la interacción con puntos finales REST. En esta guía, aprenderá qué es curl, cómo instalarlo y ejemplos prácticos de curl que utilizan a diario los administradores de sistemas y los desarrolladores.


¿Qué es el comando curl en Linux?

curl (Client URL) es una utilidad de línea de comandos construida sobre la biblioteca libcurl que transfiere datos usando URL. Admite HTTP/S, FTP/S, SFTP, SCP, SMTP, IMAP y más.

A diferencia de los navegadores, curl se ejecuta de forma no interactiva, lo que lo hace ideal para la automatización y las pruebas de API. pipelines de CI / CDy diagnóstico del servidor. Está disponible en la mayoría de las distribuciones de Linux de forma predeterminada.

Cómo instalar curl en Linux

La mayoría de las distribuciones de Linux incluyen curl. Comprueba primero tu versión:

curl --version

Si falta, instálelo usando su paquete manager:

  • Ubuntu / Debian: sudo apt update && sudo apt install curl
  • RHEL/CentOS/Rocky/Alma: sudo dnf install curlor sudo yum install curl
  • Fedora: sudo dnf install curl
  • Arco: sudo pacman -S curl
  • Alpino: sudo apk add curl

Consejo: En servidores mínimos, considere instalar ca-certificates para evitar SSL errores con URL HTTPS.

Sintaxis básica de curl y opciones comunes

Sintaxis general:

curl [options] <URL>

Opciones útiles para rizos (memorízalas primero):

  • -I (o --head): Obtener únicamente encabezados HTTP.
  • -L:Seguir redirecciones.
  • -o file: Guardar en un archivo (nombre personalizado).
  • -O: Guardar usando el nombre de archivo remoto.
  • -s y -S: Modo silencioso y visualización de errores.
  • -v / -vv: Verboso / extra verboso.
  • -X: Especifique el método HTTP (GET, POST, PUT, DELETE).
  • -H: Añadir encabezado personalizado.
  • --data / --data-raw / --data-binary: Enviar datos corporales.
  • -u: Autorización básica (user:pass).
  • --http2: Forzar HTTP/2.
  • --compressed: Solicitar respuesta comprimida.
  • --retry: Reintentar fallos transitorios.
  • --max-time: Establezca un tiempo total máximo para la transferencia.

Ejemplos esenciales de rizos (de principiante a intermedio)

1) Solicitud GET básica

curl https://example.com

Esto imprime el cuerpo HTML en la terminal.

2) Seguir redirecciones

curl -L http://example.com

Utilice -L cuando sitios redirigen desde HTTP a HTTPS o a URL canónicas.

3) Descargar un archivo (guardarlo con el mismo nombre)

curl -O https://example.com/file.zip

Utilice mayúsculas -O Para conservar el nombre del archivo del servidor. O bien, especifique el suyo propio:

curl -o backup.zip https://example.com/file.zip

4) Reanudar una descarga interrumpida

curl -C - -O https://example.com/large.iso

El -C - La bandera continúa desde donde la dejó la descarga anterior.

5) Mostrar solo encabezados de respuesta

curl -I https://example.com

Útil para comprobar rápidamente el estado HTTP, los encabezados de caché y el tipo de servidor.

6) Incluir detalles de solicitud y respuesta (depuración)

curl -v https://example.com

Usa -v or -vv para una solución de problemas más profunda, incluyendo SSLNegociación TLS.

7) Enviar un encabezado personalizado

curl -H "Accept: application/json" https://api.example.com/v1/status

Se pueden agregar múltiples encabezados a través de múltiples -H banderas. Esto es común con las API REST.


curl para API: JSON, POST, PUT, DELETE

Enviar JSON en una solicitud POST

curl -X POST https://api.example.com/v1/users \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <TOKEN>" \
  --data '{"name":"Alice","email":"alice@example.com"}'

Usa --data or --data-raw Para cargas útiles JSON. Siempre configurado Content-Type: application/json y encabezados de autenticación si es necesario.

Ejemplos de PUT (actualizar) y DELETE

# Update a user
curl -X PUT https://api.example.com/v1/users/123 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <TOKEN>" \
  --data '{"email":"new@example.com"}'

# Delete a user
curl -X DELETE https://api.example.com/v1/users/123 \
  -H "Authorization: Bearer <TOKEN>"

Carga de datos de formularios y archivos (multiparte)

# Post form fields
curl -X POST https://example.com/form \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data "name=Alice&email=alice@example.com"

# Upload a file
curl -X POST https://api.example.com/v1/upload \
  -H "Authorization: Bearer <TOKEN>" \
  -F "file=@/path/to/report.pdf" \
  -F "meta=quarterly"

Usa -F para cargas de formularios multiparte; curl establece automáticamente los encabezados de límite correctos.


Autenticación con curl (básica, portadora, cookies)

Autenticación básica HTTP

curl -u "username:password" https://secure.example.com/endpoint

Por seguridad, prefiera tokens o variables de entorno en lugar de escribir las contraseñas directamente. También puede usar un .netrc archivo con permisos adecuados para almacenar credenciales.

Tokens portadores (claves API)

curl -H "Authorization: Bearer $API_TOKEN" https://api.example.com/v1/me

Cookies de sesión

# Save cookies during login
curl -c cookies.txt -X POST https://example.com/login \
  -d "user=alice&pass=secret"

# Reuse cookies for subsequent requests
curl -b cookies.txt https://example.com/dashboard

SSLTLS, certificados y proxies

curl realiza la validación del certificado de forma predeterminada cuando se utiliza HTTPS. Si ve SSL Si se producen errores, asegúrese de que los paquetes de CA del sistema estén instalados o especifique una CA personalizada.

# Use a custom CA certificate
curl --cacert /etc/ssl/certs/custom-ca.crt https://secure.example.com

# Client certificate (mutual TLS)
curl --cert client.crt --key client.key https://mtls.example.com

# Temporarily ignore certificate errors (not recommended)
curl -k https://self-signed.local

El soporte de proxy está integrado:

# HTTP proxy
curl -x http://proxy.local:3128 https://example.com

# SOCKS5 proxy
curl -x socks5h://user:pass@proxy.local:1080 https://example.com

-k (--insecure) es solo para pruebas temporales. En producción, corrija las cadenas de confianza en lugar de omitir la validación.


Consejos avanzados de curl para DevOps y hosting

Establecer tiempos de espera y reintentos (scripts resilientes)

# Fail fast after 5 seconds total; retry up to 3 times on transient errors
curl --max-time 5 --retry 3 --retry-delay 2 --retry-connrefused https://api.example.com/health

Capturar el estado y el cuerpo HTTP por separado

status=$(curl -s -o /tmp/body.txt -w "%{http_code}" https://example.com/health)
echo "Status: $status"
cat /tmp/body.txt

El -w La opción (escritura) expone métricas útiles como tiempo, tamaño y protocolo.

Medida de rendimiento

curl -o /dev/null -s -w "dns:%{time_namelookup} connect:%{time_connect} ttfb:%{time_starttransfer} total:%{time_total}\n" https://example.com

Descargar varios archivos

# Brace expansion (if server path structure matches)
curl -O https://example.com/logs/2024-12-{01..31}.log

Para lotes grandes o paralelismo, considere usar GNU Parallel o xargs con curl.


Solución de problemas de errores de curl

  • Problemas de conexión: Usa -v y cheque DNS, cortafuegos y variables de proxy (http_proxy, https_proxy).
  • SSL errores: Instalar ca-certificates, verificar la hora del sistema o utilizar --cacert.
  • Tiempos de espera: Aumentar --max-time o establecer --connect-timeout.
  • HTTP 4xx/5xx: Inspeccciona -I encabezados, verificar autenticación y carga útil, habilitar -v.
  • Límites de velocidad: Añadir retroceso con --retry, y respetar las cuotas de API.

curl vs wget: ¿cuándo usar cuál?

  • rizo: Ideal para API, encabezados personalizados, autenticación, protocolos granulares y control detallado. solicita características.
  • obtener: Ideal para descargas recursivas de sitios web y duplicación. Fuerte. descargar Características, más sencillas para búsquedas masivas.
  • En los servidores, muchos administradores instalan ambos. Para las pruebas REST y la automatización, curl suele ser la primera opción.

Mejores prácticas de seguridad con curl

  • Evite colocar secretos en el historial del shell; utilice variables de entorno o .netrc (restringir permisos a 600).
  • No confíes en -k en producción; arreglar cadenas de confianza de certificados.
  • Validar las entradas si se crean scripts que interpolan URL o encabezados.
  • Utilice tokens API con el mínimo privilegio y rótelos periódicamente.
  • Enmascarar tokens en los registros de CI y preferir --silent con manejo explícito de errores.

Casos de uso reales en servidores Linux

  • Controles de salud: Consulta /health puntos finales en unidades cron o systemd.
  • Ganchos de implementación: Notificar a los webhooks (Slack, Git, CI) después de los lanzamientos.
  • Verificación de respaldo: Validar el almacenamiento de objetos o las URL de CDN después de la carga.
  • SSL validación: Confirme las cadenas de certificados y su vencimiento en el entorno de prueba antes de su lanzamiento.
  • Prueba de contenido: Obtener encabezados para confirmar el estado de la caché (por ejemplo, Cache-Control, ETag).

At YouStable, nuestra manageLos ingenieros de hosting usan curl a diario para probar el tiempo de actividad, verificar HTTPS en nuevos dominios y validar las integraciones de API. Si prefiere centrarse en su aplicación mientras nosotros nos encargamos del diagnóstico y el rendimiento a nivel de servidor, nuestro manageLos planes d pueden ayudar.


Preguntas Frecuentes

¿Para qué se utiliza curl en Linux?

curl se utiliza para transferir datos a través de URL. Las tareas habituales incluyen la descarga de archivos, la prueba y depuración de solicitudes HTTP/HTTPS, el envío de encabezados, la autenticación con API, la carga de archivos y la automatización de tareas de red en scripts o pipelines de CI/CD.

¿Cómo envío encabezados con curl?

Use el -H bandera. Ejemplo: curl -H "Accept: application/json" -H "Authorization: Bearer <TOKEN>" https://api.example.com/v1/data. Agrega uno -H por encabezado.

¿Cómo envío una solicitud POST con curl?

Usa -X POST con --data or -F Para formularios. Para JSON: curl -X POST -H "Content-Type: application/json" --data '{"id":1}' https://api.example.comPara subir archivos: curl -F "file=@/path/to/file.txt" https://api.example.com/upload.

¿Cómo sigo redirecciones en curl?

Use el -L : curl -L http://example.comEsto es útil cuando un sitio redirige de HTTP a HTTPS o utiliza reglas de redirección canónicas.

¿Cómo puedo solucionarlo? SSL ¿Errores de certificado con curl?

Instalar o actualizar ca-certificates, asegúrese de que la hora del sistema sea correcta o especifique una CA personalizada con --cacert. Evitar -k excepto para pruebas temporales; arregle la cadena de certificados para lograr seguridad de nivel de producción.


Conclusión

El comando curl en Linux es Imprescindible para desarrolladores, administradores de sistemas y propietarios de sitios web. Con unas pocas opciones básicas, puedes descargar archivos, probar API, manage Encabezados y automatice flujos de trabajo de forma fiable. Guarde los ejemplos anteriores e integre curl en sus herramientas diarias para agilizar las tareas de diagnóstico e implementación.

Compartir via:

Sanjeet Chauhan

Sanjeet Chauhan es bloguero y experto en SEO, dedicado a ayudar a los sitios web a crecer orgánicamente. Comparte estrategias prácticas, consejos prácticos y conocimientos para impulsar el tráfico, mejorar el posicionamiento y maximizar la presencia online.

Deja Tu Comentario

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *

Ir al Inicio