GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de comandos curl de Linux para principiantes (5 ejemplos)

Si bien los navegadores web son el medio principal a través del cual los usuarios descargan cosas de Internet, existen algunos comandos de Linux que también le permiten hacer esto. Estas herramientas son útiles en sistemas sin periféricos donde no hay GUI.

En este tutorial, discutiremos uno de esos comandos:curl - que, entre otras cosas, te permite descargar cosas de la Web. Tenga en cuenta que los ejemplos discutidos en este artículo se prueban en Ubuntu 16.04 LTS.

Comando curl de Linux

El comando curl le permite descargar y cargar datos a través de la línea de comandos en Linux. La siguiente es su sintaxis:

curl [options] [URL...]

Y esto es lo que dice la página del manual sobre este comando:

 curl is a tool to transfer data from or to a server, using one of the
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,
IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,
TELNET and TFTP). The command is designed to work without user inter?
action.

curl offers a busload of useful tricks like proxy support, user authen?
tication, FTP upload, HTTP post, SSL connections, cookies, file trans?
fer resume, Metalink, and more. As you will see below, the number of
features will make your head spin!

curl is powered by libcurl for all transfer-related features. See
libcurl(3) for details.

Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una mejor idea de cómo funciona curl.

P1. ¿Cómo funciona el comando curl?

El uso básico es bastante simple:simplemente pase la URL como entrada al comando curl y redirija la salida a un archivo.

Por ejemplo:

curl http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent > test.torrent

Tenga en cuenta que también puede usar la opción -o aquí.

-o, --output <file>
Write output to <file> instead of stdout.

Volviendo a nuestro ejemplo, mientras los datos se descargaban en el archivo 'test.torrent' en mi sistema, se produjo el siguiente resultado en la línea de comando:

Esto es lo que dice la página del manual sobre este medidor de progreso que se muestra en la salida:

 curl normally displays a progress meter during operations, indicating
the amount of transferred data, transfer speeds and estimated time
left, etc.

curl displays this data to the terminal by default, so if you invoke
curl to do an operation and it is about to write data to the terminal,
it disables the progress meter as otherwise it would mess up the output
mixing progress meter and response data.

If you want a progress meter for HTTP POST or PUT requests, you need to
redirect the response output to a file, using shell redirect (>), -o
[file] or similar.

It is not the same case for FTP upload as that operation does not spit
out any response data to the terminal.

If you prefer a progress "bar" instead of the regular meter, -# is your
friend.

Q2. ¿Cómo hacer que curl use el mismo nombre de archivo de descarga?

En el ejemplo anterior, verá que teníamos que especificar explícitamente el nombre del archivo descargado. Sin embargo, si lo desea, puede obligar a curl a usar el nombre del archivo que se está descargando como el nombre del archivo local. Esto se puede hacer usando la opción de línea de comando -O.

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

Entonces, en este caso, se produjo un archivo llamado 'ubuntu-18.04-desktop-amd64.iso.torrent' en la salida de mi sistema.

Q3. ¿Cómo descargar varios archivos usando curl?

Esto tampoco es complicado, simplemente pase las URL de la siguiente manera:

curl -O [URL1] -O [URL2] -O [URL3] ...

Por ejemplo:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso.torrent

Aquí está el comando anterior en acción:

Para que pueda ver el progreso de descarga de ambas URL en el resultado.

P4. ¿Cómo resolver el problema de 'movido'?

A veces, cuando pasa una URL al comando curl, obtiene errores como "Movido" o "Movido permanentemente". Esto suele suceder cuando la URL de entrada se redirige a otra URL. Por ejemplo, abre un sitio web, digamos oneplus.com, y lo redirige a una URL de su país de origen (como oneplus.in), por lo que recibe un error como el siguiente:

Si desea que curl siga la redirección, use la opción de línea de comando -L en su lugar.

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

P5. ¿Cómo reanudar una descarga desde el punto de interrupción?

A veces, una descarga se interrumpe en el medio. Entonces, naturalmente, para ahorrar tiempo y datos, cuando vuelva a intentarlo. es posible que desee que comience desde el punto en el que se interrumpió. Curl te permite hacer esto usando la opción de línea de comando -C.

Por ejemplo:

 curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

La siguiente captura de pantalla muestra el comando curl reanudando la descarga después de que se interrumpió.

Conclusión

Como puede ver, el comando curl es una utilidad útil si desea descargar cosas a través de la línea de comandos. Acabamos de arañar la superficie aquí, ya que la herramienta ofrece muchas más funciones. Una vez que haya terminado de practicar las opciones de la línea de comandos discutidas en este tutorial, puede dirigirse a la página del manual de curl para obtener más información al respecto.


Linux
  1. Tutorial de comando cd de Linux para principiantes (8 ejemplos)

  2. Tutorial de comandos de comunicación de Linux para principiantes (5 ejemplos)

  3. Tutorial de comando Linux df para principiantes (8 ejemplos)

  4. Tutorial de comando de fecha de Linux para principiantes (8 ejemplos)

  5. Tutorial de comando de nombre de host de Linux para principiantes (5 ejemplos)

Linux who Command Tutorial para principiantes (8 ejemplos)

Tutorial de comandos Linux nl para principiantes (7 ejemplos)

Tutorial de comandos de Linux nm para principiantes (10 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)