Butterfly: tu terminal en el navegador web

¿Qué es Butterfly?

Butterfly es un simple emulador de terminal escrito en Python que se puede usar desde un navegador web… y viene con algunos trucos debajo de la manga bien interesantes, que otros terminales deberían copiar.

terminal butterfly

¿Cómo probar Butterfly?

Butterfly es desarrollado en Python, y se instala en cuestión de minutos. Tan sólo hay que ejecutar el comando pip install butterfly como root (para usar pip es necesario tener instalado el paquete python-pip primero). Luego, hay que iniciar el servidor mediante el comando butterfly.server.py, y finalmente hay que acceder al terminal ingresando en el navegador web la dirección http://127.0.0.1:57575. Para iniciar sesión en el shell con un usuario diferente, hay que añadir su nombre a la URL, así: http://127.0.0.1:57575/user/root.

sudo pip install butterfly
butterfly.server.py --unsecure

Algunos trucos sobre Butterfly

Acceder al terminal desde el explorador web está de moda, no hay duda. Sin embargo, Butterfly viene con algunos trucos extras que lo hacen realmente útil.

Tal vez el mejor de todos sea la selección rápida del historial. A través del atajo Shift+Ctrl+Flecha arriba se puede cambiar al modo de selección y luego utilizando los atajos Ctrl+Shift+Flecha arriba y Ctrl+Mayús+Flecha abajo se puede seleccionar el texto del historial que se desee. Luego, sólo hay que presionar Enter para pegar el texto seleccionado.

terminal butterfly

El estilo visual está basado en CSS por lo que es completamente editable. Además, es posible extender fácilmente el comportamiento del terminal a través de JavaScript (así está desarrollada la función de selección rápida, por ejemplo).

Cómo instalar  Butterfly de forma definitiva

Para ejecutar Butterfly desde el inicio del sistema usando systemd hay que descargar el archivo butterfly.service y ponerlo en /etc/systemd/system/ o equivalente. Luego, hay que ejecutar:

sudo systemctl enable butterfly
sudo systemctl start butterfly

Listo. Ahora Butterfly va a estar siempre disponible.

Cómo acceder desde un equipo remoto a Butterfly

En cuanto a características de acceso remoto, su creador hace énfasis en que de momento no es seguro y recomienda hacerlo solo en una LAN para realizar pruebas.

El comando a ejecutar sería el siguiente:

butterfly.server.py --host="0.0.0.0"

Cómo ejecutar un shell específico

Por ejemplo, para ejecutar fish, hay que utilizar el siguiente comando:

butterfly.server.py --shell=/bin/fish

Para más información, recomiendo visitar la página de Github del proyecto.


9 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   toñolocotedelan_te dijo

    Es lindo.
    También lo habia visto aqui https://plus.google.com/+CybercitiBiz/posts/NCnwp7VQ2dW

  2.   vitodumas dijo

    Acabo de probarlo.

    Está curioso, pero yo no usaría un navegador como terminal.
    No es que sea paranoico, pero más o menos…

    Además, no encuentro la ventaja ni el razonamiento que lo justifique.
    Seguramente será que no lo comprendo.

    Por otra parte, mi terminal está más guapa que eso y bastante más tuneada.

  3.   NotFromBrooklyn dijo

    😀 Parece que Pablo y yo leemos los mismos blogs.

    1.    usemoslinux dijo

      En realidad, lo vi en G+ y me pareció interesante. 🙂

  4.   Ruben Reynaldo dijo

    Si la desean usar como una app de GTK3:

    from gi.repository import Gtk
    from gi.repository import Gdk
    from gi.repository import GObject
    from gi.repository import GLib
    from gi.repository import WebKit
    import threading
    import time

    # Use threads
    GLib.threads_init()

    class App(object):
    def __init__(self):
    window = Gtk.Window()
    webView = WebKit.WebView()
    window.add(webView)
    window.show_all()

    self.window = window
    self.webView = webView

    def run(self):
    Gtk.main()

    def show_html(self):
    GLib.idle_add(self.webView.load_uri, ‘http://127.0.0.1:57575/’)

    app = App()

    thread = threading.Thread(target=app.show_html)
    thread.start()

    app.run()
    Gtk.main()

  5.   LTV dijo

    Estimado
    Buena herramienta en el aprtado de butterfly.server.py –unsecurez es unsecure y funciona, por favor corregir

    Hasta pronto..

    1.    usemoslinux dijo

      Gracias x el aviso! Corregido. 🙂

  6.   Fico dijo

    Descargado a mis Favoritos. Gracias, UsemosLinux !!!

    1.    usemoslinux dijo

      De nada! Un abrazo! Pablo.