Cuando comenzamos a aprender sobre las herramientas de línea de comandos, tendemos a verlas como de un solo propósito. Se le enseña que el cat
imprime el contenido del archivo, ls
enumera todos los elementos en un directorio y du
muestra el uso del espacio del disco. Sin embargo, muchas herramientas de línea de comandos tienen docenas de opciones, todas prolijamente descritas en sus archivos man
. Algunos de ellos pueden hacer maravillas cuando se combinan con otros comandos.
Por supuesto, no es razonable esperar que alguien recuerde cada opción. Con eso en mente, es bueno refrescar ocasionalmente nuestro conocimiento de los comandos Linux. Una A a la Z de Linux: 40 comandos esenciales que debe conocer Una A a la Z de Linux: 40 comandos esenciales que debe conocer Linux es la tercera rueda que se ignora a menudo para Windows y Mac. Sí, en la última década, el sistema operativo de código abierto ha ganado mucha tracción, pero todavía está lejos de ser considerado ... Leer más, porque puede descubrir nuevos usos para ellos.
Esta vez, nos estamos centrando en cURL, una herramienta para transferir datos a través de una serie de protocolos de Internet como HTTP (S), FTP, Telnet, LDAP, IMAP, POP3, SMTP y más.
En términos simplificados, cURL realiza varias solicitudes de un cliente a un servidor, estableciendo una conexión entre ellas por medio de un protocolo específico y sus métodos asociados. Por ejemplo, como cliente HTTP, cURL puede enviar una solicitud para ver o descargar contenido (método de solicitud GET) o publicar contenido a través de un formulario en un sitio web (método de solicitud POST). Muchas aplicaciones web y servicios permiten a cURL interactuar con sus API (Interfaz de programación de aplicaciones).
Debido a que su funcionalidad se superpone en cierta medida, cURL y wget Dominar Wget & Learning Algunos trucos de descarga aseados Dominar Wget y aprender trucos de descarga aseados Algunas veces, no basta con guardar un sitio web localmente desde su navegador. A veces necesitas un poco más de potencia. Para esto, hay una pequeña y ordenada herramienta de línea de comando conocida como Wget. Wget es ... Leer más a menudo se comparan entre sí. Ambas herramientas pueden descargar contenido de Internet, pero wget admite descargas recursivas, raspado web y, en general, se siente más fácil de usar. Si solo desea descargar archivos del terminal Descargar videos web con la línea de comando usando Movgrab [Linux] Descargar videos web con la línea de comandos usando Movgrab [Linux] Use la línea de comando para descargar videos rápidamente de YouTube, Vimeo, Ted, Discovery y más de 40 otros sitios usando un programa simple. Se llama MovGrab y es un gran programa gratuito para Linux. Hemos demostrado ... Leer más, wget es probablemente una mejor opción.
Por otro lado, si necesita métodos avanzados de autenticación HTTP y desea cargar archivos y descargarlos, vale la pena aprender a cURL. Además, wget solo es compatible con HTTP (S) y FTP, mientras que cURL cubre una amplia gama de protocolos. Esto significa que cURL puede hacer más cosas interesantes, y aquí hay diez ejemplos para demostrarlo.
1. Obtenga el informe meteorológico
Si alguien te dice que revises el clima de la terminal, esperarías ver algunos números aburridos. No con este comando.
curl http://wttr.in/LOCATION
La información es proporcionada por una aplicación CLI llamada wego, pero si no desea instalarla, cURL puede obtener el pronóstico desde su interfaz web wttr.in. Todo lo que necesita es la ubicación para la que desea el pronóstico. Simplemente escriba el nombre de una ciudad, su código de aeropuerto o su dirección IP actual. Una nueva característica muestra la información sobre las fases lunares si escribe:
curl wttr.in/Moon
2. Descargar archivos y reanudar descargas
La descarga de archivos es algo que normalmente hacemos en el navegador. A veces querrá usar un administrador de descargas. Obtenga un administrador de descargas gratuito para acelerar sus descargas. Obtenga un administrador de descargas gratuito para acelerar sus descargas. Su navegador no hace un buen trabajo al administrar grandes descargas. Si estás harto de bajas velocidades de descarga y fallas, prueba con un administrador de descargas. Recomendamos 9 herramientas gratuitas para administrar sus descargas. Lee mas ; por ejemplo, al descargar varios archivos a la vez, o cuando desea pausar descargas. Aunque cURL no es una opción popular para descargas simultáneas (en su lugar, se recomienda wget), puede usarlo para ese fin combinando sus poderosas opciones (interruptores). Primero necesitarás un enlace directo al archivo. En este ejemplo, usaremos un PDF de la revista Linux Voice.
curl -O -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf
El interruptor O mayúscula (-O) hace que cURL guarde el archivo con el nombre de archivo predeterminado (normalmente el del enlace). Si quisiera guardarlo con un nombre diferente, usaría minúscula o, seguido del nuevo nombre:
curl -o magazine.pdf -C - https://www.linuxvoice.com/issues/016/Linux-Voice-Issue-016.pdf
Por defecto, los archivos se guardan en el directorio actual (compruébelo con el comando pwd
). Para guardarlos en otro lugar, proporcione la ruta después del cambio -o. El interruptor -C - permite a CURL reanudar la descarga. Pausarás presionando Ctrl + C en el terminal, y continuarás ejecutando el mismo comando de descarga nuevamente:
cURL muestra el progreso de la descarga en un formato de tabla, con columnas que contienen información sobre la velocidad de descarga, el tamaño total del archivo, el tiempo transcurrido y más. Si no le gusta esto, puede optar por una barra de progreso más simple añadiendo - # o -progress-bar a su comando cURL.
Para descargar varios archivos a la vez, simplemente liste los enlaces uno tras otro:
curl -O file1.txt -O file2.pdf -O file3.zip
Con la ayuda de otras herramientas de línea de comandos, podemos descargar por lotes todas las imágenes PNG y JPG de un blog de Tumblr:
curl http://concept-art.tumblr.com/ | grep -o 'src="[^"]*.[png-jpg]"' | cut -d\" -f2 | while read l; do curl "$l" -o "${l##*/}"; done
En este caso, cut
y grep
recopilan información sobre los nombres de los archivos y lo formatean de modo que solo se muestren los archivos con las extensiones especificadas. Si ejecuta el comando sin la última tubería:
curl http://concept-art.tumblr.com/ | grep -o 'src="[^"]*.[png-jpg]"' | cut -d\" -f2
Obtendrá una lista de archivos que cumplen nuestros criterios, pero no se descargarán. cURL puede obtener una lista de imágenes de un rango de páginas, siempre que el blog use la paginación estándar:
curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src="[^"]*.[png-jpg]"' | cut -d\" -f2
Puede modificar el rango cambiando los números entre corchetes. Nuevamente, este comando solo listará las imágenes; para descargarlos, ejecute el comando completo en el directorio donde desea guardar las imágenes:
curl http://concept-art.tumblr.com/page/[1-7] | grep -o 'src="[^"]*.[png-jpg]"' | cut -d\" -f2 | while read l; do curl "$l" -o "${l##*/}"; done
Si está bien versado en expresiones regulares RegExr: herramienta de prueba de expresión regular basada en web RegExr: herramienta de prueba de expresión regular basada en web Lea más, puede mejorar el aspecto y la eficacia de este comando, y compartir el resultado en los comentarios.
3. Administrar archivos en un servidor FTP
No escuchamos mucho sobre FTP en estos días, pero eso no significa que sea obsoleto. De hecho, muchos proyectos de fuente abierta y distribuciones de Linux comparten su software en servidores FTP. Dado que FTP es compatible con cURL, puede usarlo como un simple cliente FTP FileZilla: por qué este cliente FTP triunfa sobre sus competidores FileZilla: por qué este cliente FTP triunfa sobre sus competidores Las aplicaciones portátiles lo hacen independiente. Almacenado en una memoria USB o en su carpeta de Dropbox, todas sus herramientas esenciales estarán a su alcance dondequiera que vaya. No tendrá que instalar nada tampoco. Lea más para cargar y descargar archivos. Puede navegar por los archivos en un servidor FTP accediendo a los directorios:
curl ftp://ftp.debian.org/debian/
Para ingresar un subdirectorio, escriba su nombre seguido de una barra inclinada (/).
La descarga de archivos es similar a las descargas de HTTP descritas en la sección anterior. Puede usar -o o -O, y agregar -C - si desea pausar las descargas.
curl -O ftp://ftp.heanet.ie/mirrors/linuxmint.com/stable/17.3/linuxmint-17.3-kde-64bit.iso
Aunque cURL no admite descargas recursivas (recuerde, ¡wget does!), Puede descargar un rango de archivos a la vez. La única condición es que los nombres de archivo sigan un patrón. Por ejemplo, podemos descargar desde un servidor de alojamiento de fondo de pantalla donde los fondos de pantalla se llaman "wallpaperNUMBER":
curl -O ftp://ftp.myserver.com/files/wallpaper[0-120].jpg"
Algunos servidores FTP requieren autenticación antes de poder descargar archivos. cURL le permite iniciar sesión con la opción -u (usuario):
curl -u username:password -O ftp://ftp.protectedserver.com/files/example.txt
También puede cargar archivos en un servidor FTP con la opción -T (transferencia):
curl -u username:password -T /home/user/Documents/test.txt ftp://ftp.myserver.com
Aquí también puede definir múltiples archivos como un rango. Esta característica a veces se llama "globbing". Si los nombres de los archivos no siguen un patrón, simplemente -T "{file1.txt, image27.jpg"}"
entre llaves ( -T "{file1.txt, image27.jpg"}"
). Por el contrario, si tienen nombres similares, aplique la misma lógica del ejemplo de descarga de Tumblr y use corchetes ( -T "photo[1-50].jpg""
). Asegúrese de proporcionar la ruta completa a los archivos si no están en su directorio actual.
4. Verifique si un sitio web está caído
Todos hemos estado allí. Un sitio web que realmente necesita de repente deja de funcionar. Entonces Facebook no se cargará. Enfrentado con un verdadero problema del primer mundo, ¿qué haces?
Puede buscarlo en Google, pedirle a un amigo que lo pruebe, o usar uno de esos sitios de servicio único que le informan si un sitio web está caído. O podría simplemente encender la terminal y ejecutar cURL:
curl -Is https://www.twitter.com -L | grep HTTP/
La I mayúscula que cambio (-I) comprueba el encabezado HTTP de una página web y la opción -L (ubicación) se agrega para hacer que cURL siga las redirecciones. Esto significa que no tiene que escribir la URL completa de Facebook; solo escriba facebook.com y cURL se encargará del resto gracias a -L. Si hay alguna redirección, se mostrarán con su propio estado HTTP.
El mensaje que nos interesa es "200 OK", lo que significa que todo está bien con el sitio web. Si de hecho está inactivo, verás algo como esto:
Los códigos de estado HTTP son solo informativos según lo permita tu comprensión de ellos. Este método no es completamente confiable, porque un sitio web puede devolver un código de estado que indica una solicitud procesada con éxito, pero estará vacío cuando lo abra en el navegador. Aún así, en la mayoría de los casos, debe corresponderse con la situación real, y le hará saber qué ocurre o que está inactivo.
5. Expandir URL acortadas
Las URL acortadas no son intrínsecamente malas. Sin ellos, sería difícil compartir enlaces en Twitter Cómo vencer el límite de 140 personajes de Twitter Cómo vencer el límite de 140 personajes de Twitter El límite de 140 caracteres de Twitter puede ser una molestia. Afortunadamente, hay formas de evitarlo. Leer más y otras redes sociales de carácter limitado. Algunos servicios de acortamiento de URL Pruebe 10 diferentes acortadores de URL que le brindan beneficios complementarios Pruebe 10 diferentes acortadores de URL que le brindan beneficios complementarios ¿De qué manera tan diferente puede acortar un localizador uniforme de recursos? Bueno, el sistema de acortamiento es casi un trabajo ordinario, pero el truco parece estar en los extras que vienen con el servicio de acortamiento .... Leer más también ofrecen análisis útiles. Pero siempre existe el riesgo de que alguien intente ocultar contenido malicioso detrás de una URL acortada, o que un duende encubra una Rickroll Beyond Parody: 5 chistes en Internet que se convirtieron en algo más grande más allá de la parodia: 5 chistes en Internet que se convirtieron en algo más grande Leer más (o algo mucho, mucho peor). Si alguna vez sospechas de una URL acortada por alguna razón, cURL puede ayudarte a expandirla y descubrir a dónde conduce exactamente:
curl -sIL http://buff.ly/1lTcZSM | grep ^Location;
o
curl -sI http://buff.ly/1lTcZSM | sed -n 's/Location: *//p';
Puede combinar cURL con grep
o sed
; la principal diferencia está en el formateo. Sed es una de esas herramientas que todo usuario de Linux debe saber. Cada friki de Linux necesita saber Sed y Awk. Aquí está el por qué ... Todo friki de Linux necesita saber Sed y Awk. He aquí por qué ... Dos de las utilidades de Linux más infravaloradas criminalmente son, sin duda, el arcano Sed y Awk. Pero, ¿qué son? ¿Cómo se usan? ¿Y cómo hacen que sea más fácil procesar el texto? Lea más, y complementa cURL en este y algunos otros casos de uso. No olvidemos que cURL puede descargar archivos de una URL acortada (siempre que la URL realmente apunte a un archivo):
curl -L -o filename.txt http://short.url
La sintaxis es la misma que con otras descargas de cURL, y la opción -L se ocupa de la redirección de una URL acortada a la original.
6. Demuestra tu aprecio por el arte ASCII
Es cierto que esto no es particularmente útil, pero parece genial. Con la ayuda de pv
, una herramienta para supervisar el progreso de los datos, cURL puede mostrar animaciones ASCII en la terminal.
curl -s http://artscene.textfiles\.com/vt100/wineglas.vt | pv -L9600 -q
Las opciones -s y -q mantienen ambos comandos en modo silencioso (silencioso). La opción -L aquí se refiere al comando pv y le permite modificar la tasa de transferencia de datos en bytes por segundo. En otras palabras, si la animación se mueve demasiado rápido o demasiado lento, intente jugar con ese número. Además de las animaciones, cURL puede mostrar arte ASCII simple y estático:
La Web tiene muchos sitios web con todo tipo de arte ASCII: desde piezas increíblemente detalladas y de alta calidad hasta material raro, tonto e incluso NSFW. Esta técnica de arte digital se remonta a la década de 1960, y hoy es parte de la cultura e historia de Internet 7 Tendencias de Internet antiguas que afectan la Web hoy 7 Tendencias de Internet antiguas que afectan la Web Hoy la web de hoy puede no verse o parecerse a la web de la década de 1990, pero te sorprendería de cuánto es realmente igual cuando te sumerges debajo de la superficie. Lea más, mantenido vivo en numerosas colecciones y herramientas que le permiten convertir texto e imágenes al arte ASCII Arte ASCII: Imagen y texto al convertidor ASCII Arte ASCII: Imagen y texto al convertidor ASCII Lea más. Puedes usarlo para decorar tu terminal o para bromear con tus amigos, lo que sea que flote tu bote.
7. Experimenta con las redes sociales
Usar las redes sociales desde la terminal no es nada nuevo: ya le hemos mostrado clientes de línea de comando de Twitter para Linux 5 Clientes de Twitter Slimline y Command Line para Ubuntu 5 Clientes de Twitter Slimline y Command Line para Ubuntu Durante un tiempo, la comunidad Linux ha sido desesperadamente gritando por un buen cliente de Twitter. Decidimos encuestar el panorama actual del cliente Linux de Twitter, buscando aplicaciones livianas y utilizables, con algunos resultados interesantes. Lee mas . Si bien es probable que no cambie a cURL como su herramienta de socialización en línea, es bueno saber que puede publicar en Facebook con él, como se describe aquí Cómo publicar en Facebook desde la línea de comandos Ahora que FBCMD está muerto Cómo publicar en Facebook desde Línea de comandos ahora que FBCMD está muerto Imagine abrir una ventana de comandos en su PC, escribir un comando de una sola línea y publicar instantáneamente en Facebook sin siquiera abrir un navegador u otra aplicación. Lee mas . Notarás que, técnicamente, cURL no lo hace por sí mismo; una combinación de herramientas hace el trabajo.
En cuanto a Twitter, solía ser posible administrarlo directamente desde la terminal con cURL. Luego Twitter cambió su API, y ahora hay un cliente especial de cURL para Twitter llamado Twurl. No es lo más fácil de usar, especialmente para un principiante, y requiere autenticación con la plataforma publicitaria de Twitter. Esto tiene sentido si eres un desarrollador o un usuario avanzado, pero no tanto si solo quieres tuitear desde la línea de comandos. Aún así, hay formas de divertirse con Twitter. Puede usar cURL para verificar el conteo de seguidores de un usuario:
curl -s https://twitter.com/username | grep -o '[0-9, ]* Followers';
8. Encuentra tu dirección IP externa
Encontrar su dirección IP local es bastante fácil: simplemente ejecute ifconfig
o consulte su applet de gestión de red. Para la IP externa, la mayoría de las personas utilizan sitios web especializados para obtener esta información. Aún así, algunas cosas son más fáciles de hacer desde la terminal. 5 Cosas más fáciles de hacer en la línea de comandos de Linux 5 cosas más fáciles de hacer en la línea de comandos de Linux Leer más, y esta podría ser una de ellas. También puede crear un alias Cómo definir alias de línea de comando en cualquier sistema operativo. Cómo definir alias de línea de comando en cualquier sistema operativo. Hemos hablado de ello y recomendamos manejar el terminal de línea de comando de su computadora varias veces en el pasado. Tina escribió un buen manual para usuarios de Windows con la Guía para principiantes del comando de Windows ... Lea más sobre el comando cURL. Hay varios servicios en línea que cooperan con cURL:
curl ipinfo.io
curl -s https://4.ifcfg.me
curl -s http://whatismyip.akamai.com
curl ifconfig.me
curl -s icanhazip.com
Algunos pueden decirle más sobre cualquier dirección IP externa:
curl ipinfo.io/207.46.13.41
curl ifconfig.me/207.46.13.41
Todo lo que tienes que hacer es elegir un servicio. Si no está seguro, simplemente inclúyalos en su alias, como soluciones de respaldo.
9. Pegar texto y compartir imágenes
Romper su flujo de trabajo nunca es bueno para la productividad y el enfoque. 5 Herramientas que lo ayudan a enfocarse y lograr un trabajo real. 5 Herramientas que lo ayudan a enfocarse y lograr un trabajo real La batalla por una mejor productividad y existencia libre de distracciones no puede ganarse solo con el autocontrol. Las aplicaciones y herramientas corren al rescate. Lee mas . Si haces la mayor parte de tu trabajo en la terminal, cambiar a un navegador solo para compartir algunos archivos puede ser poco práctico, si no molesto. Afortunadamente, algunos servicios de pegado y uso compartido de archivos nacieron para trabajar con cURL, por lo que puede usarlos directamente desde la terminal, sin una cuenta de usuario.
Clbin y Sprunge.us tienen una sintaxis similar. Con Clbin, canaliza un archivo local o la salida de un comando, y devuelve un enlace al texto cargado:
cat textfile.txt | curl -F 'clbin=<-' https://clbin.com
También es compatible con cargas de imágenes (PNG, JPG y GIF):
curl -F '[email protected]"' https://clbin.com
Si quieres usar Sprunge.us en su lugar, escribe:
cat textfile.txt | curl -F 'sprunge=<-' http://sprunge.us
Sprunge.us no admite cargas de imágenes por ahora.
Ix.io se basa en el mismo principio que los dos servicios anteriores, con algunas características adicionales. Para cargar un archivo, escriba:
cat file.txt | curl -F 'f:1=<-' ix.io
o
curl -F 'f:[email protected]' ix.io
Cuando obtiene un enlace al texto cargado, puede modificar su URL para mostrar el resaltado de sintaxis (con ix.io/yourpaste+
, ix.io/yourpaste/
, o ix.io/yourpaste/language
para un lenguaje de programación o scripting específico) . También es posible limitar cuántas veces se puede ver un enlace modificando el número después del valor de 'read:1'
:
cat file.txt | curl -F 'f:1=<-' -F 'read:1=2' ix.io
Ix.io está destinado principalmente a archivos basados en texto, como el código fuente o los registros del sistema. Si desea cargar una variedad de formatos de archivo, use Transfer.sh. Admite imágenes, cifrado de archivos y mantiene sus archivos en línea durante dos semanas. Puede cargar hasta 5 GB de datos en Transfer.sh. Así es cómo:
curl --upload-file bunnies.jpg" https://transfer.sh/bunnies.jpg"
Usted es libre de definir el nombre del archivo cargado. Para cargar varios archivos, enumérelos uno después del otro con la opción -F:
curl -i -F filedata=@/tmp/hello.txt -F filedata=@/tmp/hello2.txt https://transfer.sh/
10. Verifique el correo no leído en GMail
Existe un enorme potencial para desbloquear en cURL si está dispuesto a profundizar en los detalles de los protocolos relacionados con el correo electrónico (SMTP, POP, IMAP). Para una verificación rápida de correo electrónico, este comando servirá. Analiza su feed de GMail y formatea la salida (asunto y remitente del correo electrónico) con los comandos tr
, awk
, sed
y / o grep
. Tenga en cuenta que esta solución es extremadamente insegura porque expone sus credenciales de inicio de sesión a cualquier persona que tenga acceso a su terminal. La primera versión muestra el nombre del remitente, mientras que la segunda solo imprime temas de correo electrónico no leídos:
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | tr -d '\n' | awk -F '' '{for (i=2; i<=NF; i++) {print $i}}' | sed -n "s/\(.*\)\(.*\).*/\2 - \1/p"
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | grep -oPm1 "(?<=)[^<]+" | sed '1d'
¿Qué más puede hacer CURL?
cURL rara vez se utiliza como un comando independiente. La mayoría de las personas lo usan como parte de un script o una aplicación. Aún así, es posible crear soluciones prácticas con cURL, como hemos demostrado aquí. Muchos de estos ejemplos fueron adaptados de CommandLineFu CommandLineFu: Increíble colección de Command Line Gems [Linux y Mac] CommandLineFu: Increíble colección de Command Line Gems [Linux y Mac] Explora una variedad de comandos asombrosamente útiles. Si usted es un veterano administrador de sistemas o un neófito de línea de comandos que se esfuerza por descubrir más, CommandLineFu es una colección de comandos impulsada por el voto que sirve miles de ideas ... Leer más, una fantástica fuente de ataques inteligentes a la línea de comandos, y no deberías considerarlos como inamovibles.
Con suficiente conocimiento y experiencia, podemos modificar cada comando, formatearlo de manera diferente o reemplazarlo por completo con una mejor solución. ¿Puedes mejorar nuestros comandos sugeridos por cURL? ¿Conoces otros usos interesantes para cURL? Comparte tus consejos en los comentarios.
Créditos de las imágenes: Introducción a la línea de comando de Osama Khalid a través de Flickr.