Comando CURL de Linux: Aprendiendo a través de Ejemplos

Ser un ingeniero informático implica realizar diversas tareas, como verificar la conectividad de red, descargar archivos o configurar autenticaciones. Por lo general, estas tareas requieren diferentes herramientas. Bueno, no con cURL. La utilidad cURL de Linux ayuda con la mayoría de las cosas que un ingeniero informático necesita.

En este tutorial, aprenderás sobre cada función de línea de comandos que proporciona cURL.

¡Sigue leyendo y mejora tus habilidades con cURL!

Prerrequisitos

Este tutorial comprende demostraciones paso a paso. Para seguir adelante, asegúrate de tener lo siguiente:

  • A Windows XP+ PC – This tutorial uses Windows 10 Enterprise edition.
  • A user account on the remote Linux SSH host with sudo permissions.

Instalación de cURL Linux (Ubuntu)

Como cualquier otra herramienta, antes de aprovechar cURL, primero debes instalarlo en tu máquina. Puedes instalar cURL en cualquier sistema operativo basado en *nix, pero se usa más popularmente en Ubuntu.

cURL es una utilidad de línea de comandos que te permite realizar toneladas de tareas de la siguiente manera:

  • Muestra el estado de varias configuraciones de red de máquinas Windows o servidores Linux
  • Transfiere datos hacia o desde servidores
  • Admite múltiples protocolos, como HTTP, FTP, IMAP, POP3, SCP y SFTP.

Para instalar cURL en tu máquina Ubuntu:

1. Conéctate a tu host Ubuntu con tu cliente SSH favorito.

2. Ejecuta los siguientes comandos, que no proporcionan salida pero crean un directorio llamado ~/install_curl_demo y cambian a ese directorio. Este directorio contendrá todos los recursos que crearás en este tutorial.

mkdir ~/install_curl_demo
cd ~/install_curl_demo

3. A continuación, ejecuta el comando apt update para actualizar el índice de paquetes del sistema.

Este comando asegura que el gestor de paquetes apt pueda encontrar la fuente adecuada al descargar cualquier paquete dependiente.

sudo apt update 
Updating the Ubuntu machine with the latest packages

4. Ahora, ejecuta el comando apt install a continuación para instalar cURL en tu máquina.

sudo apt install curl
Installing cURL on the Ubuntu machine

5. Finalmente, ejecuta el siguiente comando para verificar la versión de cURL instalada en tu máquina. Hacerlo asegura que hayas instalado cURL correctamente.

curl --version
Checking cURL’s version installed

Autenticación de Sitios Web

Diferentes protocolos que admite curl, como FILE, FTP, HTTP, HTTPS, POP3, SCP, SFTP, TELNET, etc., y no es necesario trabajar con ninguna interacción del usuario.

Si necesita autenticarse en algún sitio web usando el comando curl, deberá especificar el usuario y la contraseña en la propia URL. Pero si establece el nombre de usuario, cURL solicitará una contraseña.

Ejecute el siguiente comando curl, reemplazando [email protected]:password con su nombre de usuario y contraseña y la URL del sitio web con la suya para autenticarse.


curl -u [email protected]:password --basic <https://wordpress.com/posts/automateinfra.com> 
Authenticating user with password

Descarga de archivos con nombre original o cambiado

Descargar archivos o paquetes puede ser parte de su rutina diaria como administrador. Si es así, cURL seguramente le hará un favor. El comando curl, complementado con las opciones -O o -o, le permite descargar archivos manteniendo el nombre original o estableciendo uno diferente.

Ejecute los siguientes comandos para descargar el paquete NGINX con el nombre original (-O) como (*nginx-1.20.2.tar.gz*) y con un nombre diferente (-o) como *mytar.gz*.

# Descarga el paquete NGINX con el nombre original nginx-1.20.2.tar.gz
curl -O <http://nginx.org/download/nginx-1.20.2.tar.gz>
# Descarga el paquete NGINX con el nuevo nombre mytar.gz
curl -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package

Ahora, ejecute el siguiente comando para descargar el paquete NGINX con el nombre mytar2.gz. Pero esta vez, solo verá una barra de progreso en lugar de ver muchos detalles en la salida.

curl -# -o mytar.gz <http://nginx.org/download/nginx-1.20.2.tar.gz>
Downloading the NGINX package but only showing a progress bar

Por último, ejecuta el comando ls a continuación para listar todos los archivos en el directorio actual.

ls

A continuación, puedes verificar que los archivos nginx-1.20.2.tar.gz, mytar.gz, y mytar2.gz existen.

Verifying downloaded NGINX packages

Establecimiento del Tiempo de Conexión

Los sitios web de carga rápida son siempre ideales, y cURL tiene una forma de probar qué tan rápido puede conectarse un usuario a su sitio web. ¿Cómo? Al establecer un tiempo de espera de conexión, donde el comando curl intenta conectarse a un sitio web dentro de un período de tiempo específico.

Establecer un tiempo de espera de conexión te permite determinar cuánto tiempo tarda un servidor en responder a una solicitud de datos que realizas.

Ejecuta el siguiente comando para intentar conectarte al sitio adamtheautomator.com durante 20 segundos antes de que la solicitud se agote.

curl --connect-timeout 20 -I adamtheautomator.com

Puedes ver a continuación que la opción -I te permite incluir encabezados en la salida de información del sitio web.

Connecting to a website with a connection timeout

Recuperación de Datos Usando la Petición GET

Has visto que establecer un tiempo de espera de conexión proporciona información sobre un sitio web en la sección “Establecimiento del Tiempo de Conexión”. Pero si esa información no es suficiente, considera enviar una petición GET.

Ejecuta el siguiente comando curl para usar una petición GET HTTP (–get) y recuperar datos del sitio web https://adamtheautomator.com.

curl --get <https://adamtheautomator.com>

A continuación, puedes ver la fuente real del sitio web adamtheautomator.com.

Retrieving data using the Get request

Enviando una solicitud POST

En lugar de obtener datos, también puedes enviar datos enviando una solicitud POST con el comando curl. El parámetro -d te permite enviar los datos especificados en una solicitud POST al servidor HTTP como lo hace un navegador cuando un usuario ha completado un formulario HTML.

Ejecuta el siguiente comando curl para enviar una solicitud POST al sitio ptsv2.com.

curl -d "name=curl" <https://ptsv2.com/t/hello>
Sending the POST request on a website

Ahora, ve a https://reqbin.com/ en tu navegador web para probar si la POST fue exitosa.

A continuación, notarás que el estado muestra (200 (OK), lo que significa que la solicitud se envió correctamente.

Verifying the POST request

Buscar definiciones de palabras

¿Sabías que también puedes usar cURL como un diccionario? ¡Sí! cURL te permite buscar definiciones de palabras usando el protocolo DICT. Se pueden buscar muchos términos relacionados con IT utilizando el protocolo DICT, como reloj, ubuntu, RDP, etc.

La sintaxis del comando curl usando el protocolo DICT es la siguiente:

curl [protocol:[dictionary_URL]:[word]

Ejecuta cada comando a continuación para buscar definiciones de palabras en el diccionario disponible en el sitio web público dict.org.

 # Buscar definiciones de palabras para ubuntu 
curl dict://dict.org/d:ubuntu
 # Buscar definiciones de palabras para reloj
curl dict://dict.org/d:clock

Como puedes ver a continuación, la primera búsqueda de definición de la palabra ubuntu no pudo encontrar una respuesta relevante y devolvió no se encontraron coincidencias. Pero la segunda devolvió un par de definiciones para la palabra reloj.

Searching the word definition

Prueba del Protocolo HTTP2 del Sitio Web

El comando curl es sin duda adecuado para descargar, cargar y autenticar sitios web. Pero otra cosa que hace que curl sea una gran herramienta es que puedes verificar si una URL específica admite el nuevo protocolo HTTP/2.

Ejecuta el siguiente comando curl para verificar si el sitio web https://adamtheautomator.com/ admite el protocolo HTTPS (–http2).

curl -I --http2 -s <https://adamtheautomator.com/> | grep HTTP

Verás una respuesta HTTP/2 200 en la salida como la que se muestra a continuación, lo que significa que el sitio utiliza el protocolo HTTP2.

Testing Website HTTP2 protocol using Curl Command

Conclusión

cURL, siendo una herramienta gratuita, cuenta con muchas características. Y en este tutorial, has experimentado diferentes ejemplos de primera mano de cómo usar cURL en Linux. Ya sea descargando archivos, autenticando sitios web, enviando solicitudes POST o GET, etc., cURL no te decepcionará.

¿Por qué no construir sobre este conocimiento recién adquirido? ¿Quizás aprender cómo transferir archivos y ejecutar comandos y scripts usando el comando curl? ¿O descubrir comandos de API de cURL?

Source:
https://adamtheautomator.com/curl-linux/