cURL (Client URL) Protocolos de Internet desde Consola
Tabla de contenido:
- Instalar Curl
- Instalar Curl en Ubuntu y Debian
- Instalar Curl en CentOS y Fedora
- Cómo usar Curl
- Guardar la salida en un archivo
- Descargar múltiples archivos
- Reanudar una descarga
- Obtener los encabezados HTTP de una URL
- Cambiar el agente de usuario
- Especifique una tasa de transferencia máxima
- Transferir archivos a través de FTP
- Enviar cookies
- Usando proxies
- Conclusión
curl
es una utilidad de línea de comandos para transferir datos desde o hacia un servidor diseñado para funcionar sin interacción del usuario. Con
curl
, puede descargar o cargar datos utilizando uno de los protocolos compatibles, incluidos HTTP, HTTPS, SCP, SFTP y FTP.
curl
ofrece una serie de opciones que le permiten reanudar las transferencias, limitar el ancho de banda, el soporte de proxy, la autenticación del usuario y mucho más.
En este tutorial, le mostraremos cómo usar la herramienta de rizo a través de ejemplos prácticos y explicaciones detalladas de las opciones de rizo más comunes.
Instalar Curl
El paquete curl está preinstalado en la mayoría de las distribuciones de Linux hoy en día.
Para verificar si el paquete Curl está instalado en su sistema, abra su consola, escriba
curl
y presione Intro. Si tiene
curl
instalado, el sistema imprimirá
curl: try 'curl --help' or 'curl --manual' for more information
. De lo contrario, verá algo como el
curl command not found
.
Si
curl
no está instalado, puede instalarlo fácilmente usando el administrador de paquetes de su distribución.
Instalar Curl en Ubuntu y Debian
sudo apt update
sudo apt install curl
Instalar Curl en CentOS y Fedora
Cómo usar Curl
La sintaxis para el comando
curl
es la siguiente:
curl
En su forma más simple, cuando se invoca sin ninguna opción,
curl
muestra el recurso especificado en la salida estándar.
Por ejemplo, para recuperar la página de inicio de
example.com
ejecutaría:
curl example.com
El comando imprimirá el código fuente de la página de inicio de
example.com
en la ventana de su terminal.
Si no se especifica ningún protocolo,
curl
intenta adivinar el protocolo que desea utilizar, y el valor predeterminado será
HTTP
.
Guardar la salida en un archivo
Para guardar el resultado del comando
curl
, use la opción
-o
u
-O
.
Minúscula
-o
guarda el archivo con un nombre de archivo predefinido, que en el siguiente ejemplo es
vue-v2.6.10.js
:
curl -o vue-v2.6.10.js
Mayúsculas
-O
guarda el archivo con su nombre de archivo original:
Descargar múltiples archivos
Para descargar varios archivos a la vez, use múltiples opciones
-O
, seguidas de la URL del archivo que desea descargar.
En el siguiente ejemplo estamos descargando los archivos iso de Arch Linux y Debian:
curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso \
-O
Reanudar una descarga
Puede reanudar una descarga utilizando la opción
-C -
. Esto es útil si su conexión se cae durante la descarga de un archivo grande, y en lugar de comenzar la descarga desde cero, puede continuar con el anterior.
Por ejemplo, si está descargando el archivo iso Ubuntu 18.04 con el siguiente comando:
curl -O
y de repente su conexión se cae, puede reanudar la descarga con:
Obtener los encabezados HTTP de una URL
Los encabezados HTTP son pares clave-valor separados por dos puntos que contienen información como agente de usuario, tipo de contenido y codificación. Los encabezados se pasan entre el cliente y el servidor con la solicitud o la respuesta.
Use la opción
-I
para recuperar solo los encabezados HTTP del recurso especificado:
curl -I --http2
La opción
-L
indica a
curl
que siga cualquier redireccionamiento hasta que llegue al destino final:
Cambiar el agente de usuario
A veces, al descargar un archivo, el servidor remoto puede configurarse para bloquear el Curl User-Agent o para devolver diferentes contenidos según el dispositivo visitante y el navegador.
En situaciones como esta para emular un navegador diferente, use la opción
-A
.
Por ejemplo, para emular Firefox 60, usaría:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0"
Especifique una tasa de transferencia máxima
La opción
--limit-rate
permite limitar la velocidad de transferencia de datos. El valor puede expresarse en bytes, kilobytes con el sufijo
k
, megabytes con el sufijo
m
y gigabytes con el sufijo
g
.
En el siguiente ejemplo,
curl
descargará el binario Go y limitará la velocidad de descarga a 1 mb:
curl --limit-rate 1m -O
Esta opción es útil para evitar que el
curl
consuma todo el ancho de banda disponible.
Transferir archivos a través de FTP
Para acceder a un servidor FTP protegido con
curl
, use la opción
-u
y especifique el nombre de usuario y la contraseña como se muestra a continuación:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Una vez conectado, el comando enumera todos los archivos y directorios en el directorio de inicio del usuario.
Puede descargar un solo archivo del servidor FTP utilizando la siguiente sintaxis:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
Para cargar un archivo en el servidor FTP, use
-T
seguido del nombre del archivo que desea cargar:
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Enviar cookies
En ocasiones, es posible que deba realizar una solicitud HTTP con cookies específicas para acceder a un recurso remoto o para solucionar un problema.
Por defecto, cuando solicita un recurso con
curl
, no se envían ni almacenan cookies.
Para enviar cookies al servidor, use el
-b
seguido de un nombre de archivo que contenga las cookies o una cadena.
Por ejemplo, para descargar el archivo rpm JDK de Oracle Java
jdk-10.0.2_linux-x64_bin.rpm
, deberá pasar una cookie llamada
oraclelicense
con el valor
a
:
curl -L -b "oraclelicense=a" -O
Usando proxies
curl
admite diferentes tipos de servidores proxy, incluidos HTTP, HTTPS y SOCKS. Para transferir datos a través de un servidor proxy, use la opción
-x
(
--proxy
), seguida de la URL del proxy.
El siguiente comando descarga el recurso especificado usando un proxy en el puerto
192.168.44.1
8888
:
curl -x 192.168.44.1:8888
Si el servidor proxy requiere autenticación, use la opción
-U
(
--proxy-user
) seguida del nombre de usuario y la contraseña separados por dos puntos (
user:password
):
curl -U username:password -x 192.168.44.1:8888
Conclusión
curl
es una herramienta de línea de comandos que le permite transferir datos desde o hacia un host remoto. Es útil para solucionar problemas, descargar archivos y más.
Los ejemplos que se muestran en este tutorial son simples, pero demuestran las opciones de
curl
más utilizadas y están destinadas a ayudarlo a comprender cómo funciona el comando
curl
.
Para obtener más información sobre
curl
visite la página de documentación de Curl.
Comando Echo en Linux con ejemplos
El comando echo es uno de los comandos más básicos y de uso más frecuente en Linux. Los argumentos pasados a echo se imprimen en la salida estándar.
Comando de corte de Linux con ejemplos
Cut es una utilidad de línea de comandos que le permite cortar partes de líneas de archivos específicos o datos canalizados e imprimir el resultado en la salida estándar. En este tutorial, le mostraremos cómo usar el comando de corte de Linux a través de ejemplos prácticos y explicaciones detalladas de las opciones de corte más comunes.
Comando de fecha de Linux con ejemplos
El comando de fecha muestra o establece la fecha del sistema. Se usa más comúnmente para imprimir la fecha y la hora en diferentes formatos y calcular fechas futuras y pasadas.