Aprenda a usar el comando CURL en Linux con estos ejemplos

Curl es un protocolo con muchas aplicaciones. Qué tal me llamo Ana. Os traigo un nuevo post sobre el sistema operativo mas molón. Encantado linuxeros.

¿Qué es CURL?

RIZO es una herramienta de transferencia de datos. También está disponible como biblioteca para desarrolladores y como CLI para usos basados ​​en terminales. Ambos tienen el mismo motor en su interior (la verdad es que la herramienta CLI es solo el programa que usa la biblioteca debajo del capó).

CURL funciona con cualquier protocolo que haya utilizado. Arriba este sitio para comprobar si CURL funciona con su protocolo de destino o no.

¿Qué puede hacer CURL?

Hmm … Cualquier cosa relacionada con la transferencia de datos. Todo el mundo debe haber utilizado un navegador. Incluso ahora, lea este artículo en su navegador. Lo que hace el navegador es pedir una página y obtenerla como respuesta. Puede escribir y leer cookies. Y luego renderizarlo (muestra contenido, imágenes y ejecuta scripts JS).

CURL puede hacer todo en el navegador, excepto la visualización de la última parte, porque no está relacionada con la transferencia de datos.

Finalmente, CURL puede descargar páginas HTML, completar formularios HTML y enviarlos, descargar archivos de un servidor FTP / HTTP y subir archivos al mismo y leer / escribir cookies.

Esto lo convierte en una excelente herramienta para su uso en secuencias de comandos, depuración y análisis forense, etc.

Ejemplos de comandos de bobinado

Veamos qué puedes hacer con Curl.

1. Obtenga una respuesta de un servidor

Todo lo que viene del servidor es una respuesta a la solicitud. Entonces, obtener una página HTML es lo mismo que descargar un archivo.

Para obtener una respuesta HTML de http: //info.cern.c,,

curl http://info.cern.ch/

Para obtener la lista de publicaciones en respuesta de un servidor ( https://jsonplaceholder.typicode.com/posts),

curl https://jsonplaceholder.typicode.com/posts

Como sabemos cómo obtener una respuesta de un servidor, puede descargar un archivo (por ejemplo, el logotipo de Google).

curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

El comando anterior descartará los datos binarios de las imágenes que no puede ver en la terminal. Debe guardarlos y luego usar la vista previa de la foto para verlos.

Tenga en cuenta que se pueden colocar diferentes banderas de opciones en cualquier lugar del comando en lugar de organizarlas estrictamente. Así que no te preocupes si pones alguna opción en la última, mientras que los ejemplos tenían una bandera al principio.

2. Guarde el archivo con el nombre de archivo predeterminado.

Cada archivo que se sirve en Internet tiene un nombre de archivo. Para usar el mismo nombre de archivo que el nombre descargado, use la marca -O.

curl -O http://www.google.com/robots.txt

3. Guarde el archivo con un nombre personalizado.

Para guardar el nombre del archivo con su propio nombre, use la marca -o, seguida (estrictamente) de un nombre personalizado.

curl -O http://www.google.com/robots.txt googleRobots.txt

4. Descarga varios archivos

Para descargar varios archivos, sepárelos con un espacio en blanco.

curl url1 url2 url3

Si desea utilizar la marca -O para todas las URL, utilice

curl url1 url2 url3 -O -O -O 

Se debe tomar la misma decisión para cada bandera. Esto se debe a que la primera aparición de una bandera en particular es para la primera URL, la segunda bandera es para la segunda URL y así sucesivamente.

5. Descarga un conjunto de archivos

curl tiene la capacidad incorporada para descargar varios archivos del servidor. Esto se puede ilustrar con el siguiente ejemplo.

curl http://www.google.com/logo/logo[1-9].png

El comando anterior descarga archivos desde logo1.png, logo2.png, logo3.png y hasta logo9.png.

6. Descargue un archivo solo si es el último

Para descargar un archivo solo si la hora de modificación del archivo es posterior a la hora especificada.

curl url -z "DD MMM YY MM:HH:SS"

7. Reanudar la descarga

Si ya ha transferido parcialmente un archivo, puede reanudar la transferencia utilizando el indicador -C. El desplazamiento desde el que debe continuar la transferencia debe pasarse como parámetro de la bandera -C.

curl -C 1024 http://seeni.linuxhandbook.org/files/largeFile.mpv -O

8. Sube un archivo

Para cargar un archivo en el servidor, debe usar la marca -T, seguida de la ruta del archivo en su sistema local.

curl -T uploadFile.txt http://upload.linuxhandbook.org/files

9. Elimina el archivo.

Para eliminar un archivo llamado deleteFile.txt en un servidor, puede usar la marca -X, que está destinada a cualquier verbo / método HTTP (como GET, POST, PUT, DELETE, PATCH). La mayoría de los servidores FTP tendrán configurado el método DELETE, si no todos los métodos HTTP avanzados.

curl -X DELETE http://upload.linuxhandbook.org/files/deleteFile.txt

También puede modificar el comando anterior para que cada método HTTP realice la tarea correspondiente. Por ejemplo, si su servidor permite un método TRUNCATE (este es un método HTTP ficticio, no uno estándar) que elimina solo el contenido del archivo, no el archivo, puede usar un comando similar al que se muestra a continuación.

curl -X  TRUNCATE http://upload.linuxhandbook.org/files/mysql.dump

Las principales aplicaciones de la permanente se enumeran arriba. Pero puede haber dificultades con las que tengamos que lidiar, como redireccionamientos, autenticación de usuarios, certificados SSL, etc. Veamos algunos de estos suplementos y cómo lidiar con los rizos en la siguiente sección.

10. Evite los redireccionamientos

Cuando solicite http://www.google.com, solo se proporcionará la página regional como www.google.co.in. Esto se hace mediante redireccionamientos (paquetes HTTP con códigos de estado en el rango 300-399).

Puede evitar los redireccionamientos con la opción L.

curl -L  http://www.google.com

11. Autenticación

Cuando el servidor está configurado para servir solo a determinadas personas con credenciales, recibirán un nombre de usuario y una contraseña. Uno puede iniciar sesión usando la bandera -u.

curl -u username:password http://seeni.linuxhandbook.org/files/tasks.txt

12. Restringir la transferencia de datos

Si desea imponer un límite de transferencia de datos, use un límite de marca. El siguiente comando intenta descargar el archivo de límite de velocidad como 10K.

curl --limit-rate 10K http://seeni.linuxhandbook.org/files/logoDetails.tgz

13. Mostrar / ocultar el estado de la transferencia

Si la respuesta se redirige desde la terminal, como descarga, carga y permanente, muestra automáticamente un medidor de estado / progreso de la transferencia.

Si no desea ver la barra de progreso, simplemente agregue el comando -s flag. El progreso no se mostrará para una respuesta dirigida a la terminal.

14. Ignore los certificados SSL

¿Recuerda las situaciones en las que tiene que otorgar una excepción de certificado de seguridad para visitar algunos sitios web? Si confía en las fuentes y desea transferir datos, puede ignorar la validación del certificado SSL utilizando la marca -k.

curl -k https://notSoSecure.org/files/logoDetails.tgz

Para mostrar la información del encabezado junto con los datos transferidos, use la bandera -i.

curl -i http://www.google.com/robots.txt

Si solo desea los encabezados y no los datos, use la bandera -I

curl -I http://www.google.com/robots.txt

17. Cambio de agente de usuario

Algunos sitios web y servidores no permiten que ciertos tipos de dispositivos accedan a sus sistemas. Pero, ¿cómo saben que estamos usando un tipo específico de dispositivo? Esto se debe al campo de encabezado HTTP del User-Agent. Podemos cambiar este agente de usuario con la bandera -A.

curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png

18. Envío de datos al servidor

Si el servidor necesita algunos datos, como un token o una clave de API, use la marca -d para enviar los datos. Los datos a enviar deben seguir la bandera en el comando. Se puede utilizar «&» para combinar varios datos. Esto generalmente se realiza mediante solicitudes GET y POST en los navegadores. Esta es una de las formas en que puede enviar la información de su formulario.

curl -d "token=34343abvfgh&name="seeni"" http://api.restful.org/getcontent

19. Escribir cookies en un archivo

Las cookies son pequeñas piezas de información que le permiten mantener una sesión HTTP sin estado. Si desea obtener más información sobre las cookies, consulte este gran recurso.

Para guardar cookies en un archivo, se debe usar la marca -c, seguida del nombre del archivo de cookies.

curl -c googleCookie.txt http://www.google.com/files

20. Leer cookies de un archivo

Para leer una cookie del archivo, se puede usar la marca -b, seguida del nombre del archivo de la cookie.

curl -b googleCookie.txt http://www.google.com/files

Tenga en cuenta que la bandera -b lee solo la cookie del archivo. Por lo tanto, si el servidor envía otra cookie, es posible que deba usar la opción -c para escribirlas.

21. Iniciar una nueva sesión

Si desea iniciar una nueva sesión descartando las cookies, use la bandera -j. Se inicia una nueva sesión, incluso si ha proporcionado el archivo de cookies con el indicador -b.

curl -b googleCookie.txt http://www.google.com/files -j

¡Felicidades! Has llegado al final. Si encuentra útil este artículo, compártalo con sus amigos y síganos en las redes sociales. Si tiene alguna sugerencia sobre este artículo u otro tema, no dude en publicarla a continuación.

El Blog lo escribimos para colaborar y servir de referencia a la gente Linux. Esperamos que os guste.

Leave a Reply