Comando curl de Linux

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

  1. Soporte multiprotocolo: admite casi todos los protocolos de red principales
  2. Operación sin interfaz gráfica: herramienta de línea de comandos pura, adecuada para scripts y tareas automatizadas
  3. Funciones ricas: admite carga y descarga de archivos, envío de formularios, manejo de cookies, etc.
  4. 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 curl
  • URL: 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

curl https://www.example.com

Este comando tan simple obtiene el contenido de la URL especificada y lo muestra en la terminal.

Ejemplo 2: Descargar archivos

Ejemplo

curl -O https://example.com/files/document.pdf

-OEsta opción guardará el archivo localmente usando el nombre del archivo remoto (document.pdf).

Ejemplo 3: Enviar una solicitud POST

Ejemplo

curl -X POST -d "username=admin&password=123456" https://api.example.com/login

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

curl -X POST -H "Content-Type: application/json" \
-d '{"name":"John","age":30}' \
https://api.example.com/users

Ejemplo 5: Usar cookies para mantener la sesión

Ejemplo

curl -c cookies.txt -b cookies.txt https://member.example.com
  • -cGuardar las cookies devueltas por el servidor
  • -bEnviar las cookies almacenadas

Uso avanzado

1. Subida de archivos

Ejemplo

curl -F "file=@localfile.txt" https://upload.example.com

-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

curl -o /dev/null -s -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total: %{time_total}\n" https://example.com

Este comando mostrará:

  • Tiempo de conexión
  • Tiempo hasta el primer byte (TTFB)
  • Tiempo total

3. Usar un servidor proxy

Ejemplo

curl -x http://proxy.example.com:8080 https://target.com

-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

curl --cacert /path/to/cert.pem https://secure-site.com

P2: ¿Cómo mostrar las cabeceras de solicitud y respuesta?

Usa-vo-ila opción:

Ejemplo

curl -v https://example.com  # Mostrar el proceso detallado de comunicación
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

curl --limit-rate 200K -O https://example.com/largefile.iso

Ejercicios prácticos

  1. Intenta descargar datos de una API JSON pública y guardarlos en un archivo
  2. Usa curl para probar el tiempo de respuesta de tu servidor de desarrollo local
  3. Practica el envío de una solicitud GET con cabecera de autenticación
  4. Intenta subir un archivo de prueba al servicio gratuito HTTP bin

Ejemplo

# Ejemplo de práctica
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:

  1. La sintaxis básica y las opciones comunes de curl
  2. Ejemplos de uso en diversos escenarios comunes
  3. Funciones avanzadas y trucos prácticos
  4. 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.

Linux 命令大全Guía completa de comandos de Linux

Otras extensiones