Comando curl de Linux
Guía completa de comandos de Linux
¿Qué es el comando curl?
curl (Client URL) es una potente herramienta de línea de comandos utilizada para transferir datos en sistemas Linux/Unix. Admite múltiples protocolos, incluidos HTTP, HTTPS, FTP, SFTP, etc. Es una herramienta indispensable en el trabajo diario de desarrolladores y administradores de sistemas.
Características principales de curl
- Soporte multiprotocolo: admite casi todos los protocolos de red principales
- Operación sin interfaz gráfica: herramienta de línea de comandos pura, adecuada para scripts y tareas automatizadas
- Funciones ricas: admite carga y descarga de archivos, envío de formularios, manejo de cookies, etc.
- Multiplataforma: se puede usar en Linux, macOS y Windows
Estructura básica de sintaxis
El formato básico de sintaxis del comando curl es el siguiente:
curl [options] [URL...]
Descripción de parámetros
options: varios parámetros opcionales para controlar el comportamiento de curlURL: una o más URL a las que acceder
Explicación detallada de opciones y parámetros comunes
1. Control básico de solicitudes
| Opción | Descripción | Ejemplo |
|---|---|---|
-X |
Especificar el método HTTP | curl -X POST https://example.com |
-d |
Enviar datos POST | curl -d "name=John" https://example.com |
-G |
Enviar los datos de -d como parámetros GET | curl -G -d "q=keyword" https://search.com |
-H |
Añadir cabecera de solicitud | curl -H "Content-Type: application/json" https://api.com |
2. Control de salida
| Opción | Descripción | Ejemplo |
|---|---|---|
-o |
Guardar la salida en un archivo | curl -o output.html https://example.com |
-O |
Guardar usando el nombre de archivo remoto | curl -O https://example.com/file.zip |
-s |
Modo silencioso (no muestra el progreso) | curl -s https://api.com/data.json |
-v |
Mostrar el proceso detallado de comunicación | curl -v https://example.com |
3. Autenticación y seguridad
| Opción | Descripción | Ejemplo |
|---|---|---|
-u |
Autenticación con nombre de usuario y contraseña | curl -u user:pass https://secure.com |
-k |
Ignorar la verificación del certificado SSL | curl -k https://self-signed.com |
--cacert |
Especificar el certificado CA | curl --cacert cert.pem https://secure.com |
4. Otras opciones útiles
| Opción | Descripción | Ejemplo |
|---|---|---|
-L |
Seguir redirecciones | curl -L https://short.url |
-I |
Obtener solo la información de las cabeceras | curl -I https://example.com |
--limit-rate |
Limitar la velocidad de transferencia | curl --limit-rate 100K https://largefile.com |
Análisis de ejemplos prácticos
Ejemplo 1: Obtener contenido de una página web
Ejemplo
Este comando tan simple obtiene el contenido de la URL especificada y lo muestra en la terminal.
Ejemplo 2: Descargar archivos
Ejemplo
-OEsta opción guardará el archivo localmente usando el nombre del archivo remoto (document.pdf).
Ejemplo 3: Enviar una solicitud POST
Ejemplo
Este comando envía el nombre de usuario y la contraseña a la interfaz de inicio de sesión.
Ejemplo 4: Solicitud POST con datos JSON
Ejemplo
-d '{"name":"John","age":30}' \
https://api.example.com/users
Ejemplo 5: Usar cookies para mantener la sesión
Ejemplo
-cGuardar las cookies devueltas por el servidor-bEnviar las cookies almacenadas
Uso avanzado
1. Subida de archivos
Ejemplo
-FSe utiliza para el envío de formularios de tipo multipart/form-data, comúnmente usado en la subida de archivos.
2. Probar el tiempo de respuesta de un sitio web
Ejemplo
Este comando mostrará:
- Tiempo de conexión
- Tiempo hasta el primer byte (TTFB)
- Tiempo total
3. Usar un servidor proxy
Ejemplo
-xLa opción especifica la dirección y el puerto del servidor proxy.
Preguntas frecuentes
P1: ¿Cómo resolver el error de verificación de certificado de curl?
Cuando te encuentres con un error de certificado SSL, puedes usar temporalmente-kla opción para ignorar la verificación (no se recomienda en entornos de producción), o configurar correctamente el certificado CA:
Ejemplo
P2: ¿Cómo mostrar las cabeceras de solicitud y respuesta?
Usa-vo-ila opción:
Ejemplo
curl -i https://example.com # Mostrar solo las cabeceras de respuesta
P3: ¿Cómo limitar la velocidad de descarga?
Usa--limit-ratela opción (la unidad puede ser K, M):
Ejemplo
Ejercicios prácticos
- Intenta descargar datos de una API JSON pública y guardarlos en un archivo
- Usa curl para probar el tiempo de respuesta de tu servidor de desarrollo local
- Practica el envío de una solicitud GET con cabecera de autenticación
- Intenta subir un archivo de prueba al servicio gratuito HTTP bin
Ejemplo
curl https://httpbin.org/get
curl -o test.json https://api.github.com/users/octocat
curl -X POST -F "file=@test.txt" https://httpbin.org/post
Resumen
curl es una potente herramienta de transferencia de datos de red en el sistema Linux. Después de estudiar este artículo, deberías haber dominado:
- La sintaxis básica y las opciones comunes de curl
- Ejemplos de uso en diversos escenarios comunes
- Funciones avanzadas y trucos prácticos
- Soluciones a problemas comunes
Para conocer más detalles, puedes consultar la documentación oficial de curl o usarman curlpara consultar la página del manual. Con la acumulación de experiencia práctica, descubrirás que curl puede realizar tareas mucho más allá de estas funciones básicas.