El comando curl en Linux es una poderosa utilidad que se usa para transferir datos desde o hacia un servidor de red, aprovechando una amplia gama de protocolos como HTTP, HTTPS, FTP y SFTP.
En términos más simples, es una herramienta que te ayuda a transferir datos a través de internet directamente desde tu línea de comandos. Por ejemplo, puedes usar curl para descargar un archivo desde una URL o subir un archivo a un servidor.
Esta herramienta de línea de comandos no se trata solo de transferir archivos. También puedes usar curl para hacer solicitudes HTTP, como GET y POST, desde tu terminal. Esto es extremadamente útil cuando pruebas o interactúas con servicios web y API. Con curl, incluso puedes inspeccionar el contenido de una página web sin abrirla en un navegador, ya que puede buscar y mostrar los datos sin procesar.
Aquí tienes algunas formas diferentes de usar el comando curl:
Uso básico
La forma más sencilla de usar curl es escribir curl seguido de la URL de la página a la que quieres acceder.
curl https://ejemplo.comCuando ejecutas el comando curl https://ejemplo.com en el terminal, envía una solicitud GET al servidor ubicado en https://ejemplo.com. La salida que ves en el terminal es la respuesta del servidor a esta solicitud GET, normalmente el contenido HTML de la página web.
Guardar la salida en un archivo
Por defecto, curl muestra el código fuente de la página que has solicitado. Si quieres guardar esta salida en un archivo, puedes usar la opción -o o -O.
curl -o salida.html https://ejemplo.comLa opción -o te permite especificar un nombre de archivo, mientras que -O utilizará el nombre de archivo de la URL.
Seguir redirecciones
Si la URL que has solicitado redirige a otra página, curl no seguirá la redirección a menos que incluyas la opción -L.
curl -L https://ejemplo.comEnviar solicitudes POST
Puedes usar curl para enviar solicitudes POST. Esto se usa a menudo al enviar formularios.
curl -d "param1=value1¶m2=value2" -X POST https://ejemplo.com/formLa opción -d le dice a curl que vas a enviar datos POST, y la opción -X especifica el método de solicitud que se debe usar.
-d "param1=value1¶m2=value2": Esta opción indica que se están enviando datos en el cuerpo de la solicitud HTTP. La cadena"param1=value1¶m2=value2"representa los datos que se enviarán. En este ejemplo, se están enviando dos pares clave-valor:param1con el valorvalue1yparam2con el valorvalue2. Los parámetros están separados por el carácter&, que es el estándar para separar parámetros en una solicitud HTTP.
Enviar solicitudes GET con parámetros
Puedes enviar una solicitud GET con parámetros adjuntándolos a la URL.
curl https://ejemplo.com/search?query=ejemploEnviar Encabezados
Puedes añadir encabezados a tu solicitud con la opción -H.
curl -H "Accept: application/json" https://ejemplo.com/api-H "Accept: application/json": Esta opción permite agregar encabezados HTTP a la solicitud. En este caso, estamos agregando el encabezadoAcceptcon el valorapplication/json. Este encabezado le indica al servidor que preferimos recibir una respuesta en formato JSON.
Usar Cookies
Puedes decirle a curl que envíe cookies con la opción -b, y que almacene cookies con la opción -c.
curl -b "name=value" -c cookies.txt https://ejemplo.comSubir Archivos
Puedes usar curl para subir archivos a un servidor con la opción -F. Esto envía una solicitud POST y establece el Content-Type a multipart/form-data.
curl -F "file=@ruta/al/archivo/local" https://ejemplo.com/uploadDescargar Archivos
Puedes usar curl para descargar archivos usando FTP, SFTP, HTTP y muchos otros protocolos.
curl -O ftp://ejemplo.com/pub/archivo.zipAutenticación
Si necesitas autenticarte, puedes usar la opción -u seguida del nombre de usuario y contraseña separados por : (dos puntos).
curl -u username:password https://ejemplo.comMás comandos de Linux:
| Operaciones de Directorios | rmdir · cd · pwd · exa · ls |
| Operaciones de Archivos | cat · cp · dd · less · touch · ln · rename · more · head |
| Operaciones de Sistema de Archivos | chown · mkfs · locate |
| Redes | ping · curl · wget · iptables · mtr |
| Búsqueda y Procesamiento de Texto | find · grep · sed · whatis · ripgrep · fd · tldr |
| Información y Gestión del Sistema | env · history · top · who · htop · glances · lsof |
| Gestión de Usuarios y Sesiones | screen · su · sudo · open |







Pingback: Comando AWK en Linux: Guía Completa con Ejemplos » Blog