T01E14 - Saca toda la potencia de Linux en Android

¿Quieres tener toda la potencia de Linux en Android? La solución viene de la mano de Termux.

Cuando viajo, y no por cuestiones de trabajo, es decir, cuando mi mujer me obliga a despegarme del teclado, no suelo llevarme el portátil. Mas que nada porque si me llevara el portátil, probablemente, terminaría conectado a cualquier WiFi, en lugar de lo que tenemos que hacer, que es salir del mundo 2D, de la pantalla y disfrutar.

Sin embargo, eso no quiere decir, que no siga con mi rutina habitual, de mirar mis RSS, el Twitter, y esas cosillas que hacemos para, supuestamente, estar informados. Es decir, que del todo no me despego del mundo virtual, porque conmigo viaja mi Android.

Claro, que si tengo mi Android a mano, también puedo tener toda la potencia de Linux. Y, ¿Como tener toda la potencia de Android en Linux? Para esto tenemos Termux.

Termux. Toda la potencia de Linux en Android

Termux. Toda la potencia de Linux en Android

Si llevas un tiempo siguiendo atareao.es ya habrás leído algún artículo sobre Termux.

  • Termux es un emulador de terminal para Android, que funciona directamente sin necesidad de rootear o configurar tu dispositivo.
  • Cuando lo instalas en tu móvil Android tendrás un sistema mínimo… pero esto es solo la punta del iceberg de las posibilidades que ofrece. Puedes instalar cientos de paquetes utilizando el gestor de paquetes apt.

¿Que nos ofrece Termux?

  • Seguridad. Acceso remoto utilizando el cliente OpenSSH.
  • Cientos de paquetes. Puedes elegir entre,
    • Diferentes shells como Bash, Fish o Zsh, por ejemplo
    • Diferentes editores como nano, vim, o Emacs
    • Acceder a cualquier API vía curl
    • Realizar sincronizaciones con rsync

Vamos que puedes hacer cualquier cosa que haces con el emulador de terminal de tu Ubuntu o de la distribución GNU/Linux que utilices.

  • Tu mente ya va mas deprisa que mis palabras. Ya empiezas a babear pensando en las posibilidades enormes que tienes. Si… efectivamente, puedes instalar Git. Y si puedes instalar y hacer funcionar git puedes hacer casi cualquier cosa que se te pueda ocurrir…
  • Pero como no solo de git vive el hombre… Y si te digo que también tienes a tu disposición Python, Perl, PHP, Ruby o Node.js… (creo que la cabeza te va a explotar ¿no es cierto?)
  • Solo tienes que conectar un teclado bluetooth y tendrás un emulador de terminal corriendo a toda potencia entre tus dedos.

Trabajando con Termux

Antes que nada te recomiendo que visites la wiki de Termux, para que veas el funcionamiento de este emulador de terminal para Android. Te lo comento porque necesitas unas nociones básicas para comprender el funcionamiento de esta potente herramienta.

Dicho esto, algunos apuntes para facilitarte la vida, en el caso de que no conectes un teclado bluetooth, que creo que es lo mas recomendable,

  • Aumentar y reducir el tamaño de letra, a base de pellizcos.
  • Si haces una pulsación larga aparecerá un menú contextual, que dependiendo de lo que hagas, te permitirá realizar determinadas acciones…
    • Copiar y pegar
    • Seleccionar texto
    • Compartir un texto
    • Resetear el terminal
    • Matar un proceso
    • Mostrar la ayuda, que básicamente es la wiki
  • El teclado. Si no estás utilizando un teclado bluetooth, te faltará la tecla Control y por supuesto las flechas de desplazamiento. Esto es fundamental para el trabajo con el terminal. Para resolverlo,
    • Volumen Abajo se corresponde con Control
    • Volumen Arriba + E se corresponde con Esc
    • Volumen Arriba + T se corresponde con Tab
    • Volumen Arriba + W se corresponde con Cursor arriba
    • Volumen Arriba + A se corresponde con Cursor izquierda
    • Volumen Arriba + S se corresponde con Cursor abajo
    • Volumen Arriba + D se corresponde con Cursor derecha

    Hay muchos mas atajos de teclado, pero con estos ya te puedes mover con soltura. De cualquier forma, insisto, visita la wiki de Termux, para estar perfectamente informado.

Accediendo a $HOME

Acceder al directorio $HOME no es posible para otras aplicaciones. Sin embargo, puedes compartir archivos con permiso de lectura mediante la herramienta termux-open.

Si necesitaras acceso de lectura y escritura, ejecuta termux-setup-storage y da los permisos necesarios. Esto creará un directorio $HOME/storage con acceso directo a los distintos directorios de sdcard.

Posibilidades con Termux

Termux te permite hacer casi cualquier cosa que te puedas imaginar. Así, por ejemplo tienes a tu disposición,

  • Entornos de desarrollo para Java, Python, Ruby, Rust, PHP, y mas…
  • Editores, desde editores de audio y video como puede ser el potente ffmpeg, pasando por editores de texto como Emacs, Vim, nano, joe, hasta editores de imagen como imagemagick.
  • Entornos gráficos. Puedes habilitar X11, configurar VNC tanto en modo servidor como cliente a utilizar gestores de ventana como pueden ser Fluxbox o Openbox

Gestión de paquetes

Para gestionar los paquetes en Termux, es recomendable utilizar pkg, que no es mas que un interfaz de apt. La ventaja es que simplifica la instalación o actualización de paquetes, así por ejemplo, no es necesario que realices apt update cada vez que instalas un paquete.

Para instalar un paquete, es tan sencillo como,

pkg install [paquete]

Para desinstalar un paquete

pkg uninstall [paquete]

Para listar los paquetes instalados

pkg list-all

También puedes instalar paquetes deb utilizando dpkg.

Por otro lado, existen algunos paquetes específicos que requieren de derechos de root y que se encuentran en un repositorio aparte. Te recomiendo que visites la wiki de Termux.

Por otro lado, existen otros gestores de paquetes, como puede ser npm, pip, gem y mas que puedes utilizar perfectamente.

Además existen otros repositorios no oficiales, que te permitirán instalar muchos paquetes además de los aquí indicados.

Conclusión

¿Entiendes ahora mi emoción con esta aplicación para Android verdad? Termux abre todo un mundo de posibilidades para hacer casi cualquier cosa. Desde aprender Linux utilizando las páginas de manual man hasta poder levantar o tumbar un servicio desde el móvil.