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.com
Cuando 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.com
La 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.com
Enviar 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/form
La 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:param1
con el valorvalue1
yparam2
con 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=ejemplo
Enviar 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 encabezadoAccept
con 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.com
Subir 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/upload
Descargar Archivos
Puedes usar curl para descargar archivos usando FTP, SFTP, HTTP y muchos otros protocolos.
curl -O ftp://ejemplo.com/pub/archivo.zip
Autenticació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.com
Má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 |
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.