
Quizás a muchos no les importe que el kernel (núcleo) del Sistema Operativo Android sea Linux. Pero a otros muchos, sobre todo si son usuarios avanzados de GNU/Linux, sí les importa, y mucho. Entonces, ¿dónde está Linux en mi Android? Digamos que Linux está debajo de otras capas que ha ido añadiendo Google para que el uso de Linux se haga de forma totalmente transparente al usuario general, manteniendo la potencia del kernel pero ocultando la complejidad.
Sin embargo, Linux está ahí y se puede aprovechar para tareas de administración, desarrollo, automatización o simplemente para aprender. La forma más directa de hacerlo es mediante una consola de comandos que nos permita interactuar con el sistema, igual que haríamos en una distribución de escritorio.
Consola de comandos Linux en Android: opciones disponibles

La mejor herramienta clásica que he encontrado para tener una consola en Android es Android Terminal Emulator, desarrollada por Jack Palevich. Con esta aplicación disponemos de una Consola de Comandos de Linux en nuestro teléfono móvil (u otro dispositivo) Android, completamente funcional y muy ligera.
Si bien hay aplicaciones con interfaz gráfica que realizan casi todas las tareas que se pueden hacer desde la línea de comandos, y que son más sencillas para quienes nunca han usado Linux, la terminal nos da una flexibilidad y una potencia mucho mayores, concentradas en tan sólo 74 Kbytes en el caso de Android Terminal Emulator.
También hay otras aplicaciones, como por ejemplo Root Explorer, que sirve para moverse por las carpetas de almacenamiento del dispositivo Android y realizar copias, borrados y movimientos de carpetas y/o documentos, así como crear carpetas nuevas. Son herramientas muy prácticas, pero no suelen ser gratuitas y no sustituyen la versatilidad de los comandos.
Además de estas aplicaciones clásicas, en los dispositivos más recientes Google ha apostado por ofrecer una terminal Linux nativa integrada en Android. En determinados modelos compatibles se puede activar un entorno de desarrollo de Linux desde las opciones de desarrollador, que descarga varios cientos de megabytes y habilita una app llamada Terminal. Esta solución oficial proporciona:
- Ejecución nativa de comandos Bash y GNU/Linux sin configuraciones complicadas.
- Soporte para SSH, ideal para la administración remota de servidores.
- Posibilidad de automatizar tareas mediante scripts directamente en el teléfono.
- Mejor integración con el sistema y mayor seguridad al ser una solución desarrollada por Google.
Aun así, en muchos dispositivos y versiones, la forma más universal de disponer de una consola seguirá siendo instalar aplicaciones tipo Android Terminal Emulator o similares, e incluso combinarlas con herramientas como BusyBox para ampliar el conjunto de comandos disponibles.
Android Terminal Emulator: primeros pasos y acceso root

Una vez instalada la aplicación, la ejecutamos y le damos permisos de root con la aplicación Superusuario o el gestor de permisos de root que tengamos instalado. Esto es imprescindible si queremos acceder a todas las rutas del sistema y realizar copias de seguridad avanzadas.
Lo primero que veremos será el comando que hayamos configurado para que se ejecute nada más abrir la consola o el comando que viene por defecto con la aplicación. En la siguiente línea tenemos el prompt de Linux, el símbolo del dólar ‘$’, que indica que estamos como usuario sin privilegios.
Antes de nada, lo que tenemos que hacer es acceder al root o superusuario de Linux por la consola con el comando de Linux «su». Antes debemos desplegar el teclado: pulsamos la tecla Menú de nuestro Android y elegimos la opción «Toggle soft Keyboard». Ya aparece nuestro teclado y podemos escribir el comando y pulsar retorno de carro:
$ su
El prompt de la consola de comandos de Linux cambiará al símbolo de almohadilla ‘#’. Ya estamos como superusuario (root). A partir de ahora, mucho cuidado, porque cualquier comando tiene capacidad de modificar el sistema de forma profunda.
Copia de seguridad de la carpeta efs con Android Terminal Emulator
Vamos a utilizar Android Terminal Emulator para hacer una copia de seguridad de la carpeta «efs» a la tarjeta de memoria. Si eres root y no tienes copia de seguridad de esta carpeta, deberías crearla cuanto antes, ya que perder esos datos puede ser fatal para tu Android.
En la carpeta /efs se encuentran archivos con datos críticos del terminal, como el IMEI o el PRODUCT CODE. Muchos recoverys modernos ya permiten hacer esta copia de forma automática, pero nunca está de más saber hacerlo manualmente desde la consola.
1. Creamos en nuestra tarjeta de memoria la carpeta «efs» con el comando «mkdir»:
# mkdir /sdcard/efs
2. Copiamos la carpeta «efs» de nuestro Android, con todas las subcarpetas, a la carpeta «efs» de la tarjeta de memoria. Para ello utilizamos el comando «cp» con la opción «-r» (copia recursiva):
# cp -r /efs/* /sdcard/efs
3. Podemos entrar en la carpeta /sdcard/efs:
# cd /sdcard/efs
4. Y ver el contenido que hemos copiado con un listado detallado:
# ls -l
Con esto nos aseguramos un backup ante un posible desastre. Es muy recomendable copiar esa carpeta de la tarjeta interna a una tarjeta externa o a tu ordenador, porque si el teléfono deja de arrancar y los ficheros solo están en la memoria interna, no servirán de mucho.
Comandos útiles de Linux para Android Terminal Emulator

Nuestro Android tiene un pequeño Linux en sus entrañas, y como muchos saben, la potencia de Linux está en sus comandos. A continuación se muestran algunos comandos prácticos que puedes utilizar con Terminal Emulator (y apps similares) para sacar más partido al sistema.
Cambiar la hora del sistema vía comando
Como root (tras ejecutar el comando su):
Para ajustar la hora del sistema:
# date --set "2012-11-20 16:25"
Para escribir la hora en el reloj de hardware (BIOS del dispositivo, si está disponible):
# hwclock --set --date="2012-11-20 16:25"
Para comprobar el valor almacenado en el reloj de hardware:
# hwclock
Listar comandos disponibles en el sistema
En muchos Android los ejecutables del sistema se encuentran en /system/bin. Para ver todos los comandos disponibles por defecto:
ls /system/bin
Si además tienes BusyBox instalado, dispondrás de un amplio conjunto de utilidades adicionales (cp, mv, grep, tar, etc.). Un ejemplo de ayuda de BusyBox podría verse así:
./adb shell busybox --help
BusyBox combina muchas herramientas de Unix en un solo binario, lo que facilita contar con comandos avanzados en sistemas embebidos como Android.
Montar la partición /system en modo escritura y lectura
Esto es lo que hacen internamente aplicaciones como Root Explorer cuando les damos permisos de root. En la carpeta /system/app tenemos acceso a los APK de las aplicaciones de sistema. Si montamos /system en modo escritura, podremos copiar ficheros en dicha carpeta, por ejemplo para reemplazar una app de sistema dañada.
Montar la partición de /system en modo escritura:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
Montar la partición de /system en modo solo lectura para volver al estado original:
mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
Los nombres de dispositivo (/dev/block/mtdblock3) y el tipo de sistema de archivos pueden variar según el modelo, pero la idea es siempre la misma: remontar /system con los permisos adecuados.
Integración con Android SDK y comandos ADB

Android SDK es el kit de desarrollo necesario para programar e implementar todo tipo de aplicaciones para el sistema operativo de Google. Pero además de crear apps, también permite administrar y depurar dispositivos desde un ordenador GNU/Linux, Windows o macOS mediante la herramienta ADB (Android Debug Bridge).
Algunos comandos ADB útiles son:
- Instalar una aplicación:
adb install aplicacion.apk - Desinstalar una aplicación (usando el nombre de paquete):
adb uninstall com.aplicacion - Reinstalar una aplicación conservando datos:
adb install -r aplicacion.apk - Instalar en la tarjeta SD, si el sistema lo permite:
adb install -s aplicacion.apk - Revisar el registro del sistema:
adb logcat - Ver procesos del sistema con un formato más legible:
adb logcat -v process - Copiar archivos del PC al smartphone:
adb push c:\prueba.txt /sdcard/prueba.txt - Comprobar dispositivos conectados:
adb devices - Reiniciar el dispositivo:
adb reboot - Reiniciar en modo bootloader (para cambios de firmware):
adb reboot bootloader - Reiniciar en modo recovery:
adb reboot recovery - Remontar la partición de sistema en modo escritura:
adb remount - Abrir una shell en el dispositivo:
adb shell - Lanzar un comando concreto desde el SDK:
adb shell [comando]
Incluso es posible conectar Android al PC vía WiFi configurando ADB para escuchar en un puerto TCP, lo que permite trabajar sin cables. Una vez activado, se puede usar:
adb connect direccion-ip:puerto
Otros comandos básicos de Linux muy prácticos

Con Android Terminal Emulator u otras terminales similares podemos usar una gran variedad de comandos estándar de Linux para gestionar archivos, procesos y red directamente desde el móvil:
- Listar archivos y directorios (formato simple, largo o recursivo):
lsls -lls -R - Copiar un fichero y renombrarlo:
cp nombrefichero.doc /sdcard/nombrefichero.docmv nombrefichero.doc nombrefichero2.doc - Borrar un fichero:
rm nombrefichero.doc - Ver espacio usado en un sistema de archivos (adaptando la ruta apropiada):
df /etc - Cambiar el propietario de un fichero:
chown root nombrefichero.doc - Crear un fichero con contenido:
echo "Me llamo elblogdenegu" > nombre.txt - Guardar un listado de archivos en un fichero:
ls -l /system/app > /sdcard/milistadodeaplicaciones.txt - Ver los procesos del sistema:
ps - Matar un proceso concreto con su ID:
kill IDDELPROCESO - Ver qué IPs están conectadas a tu sistema (útil si compartes conexión):
netstat - Mostrar variables de entorno:
export - Comprobar conectividad local con ping:
ping localhost
Ejecutar scripts y automatizar tareas en Android
Otra de las grandes ventajas de tener una consola de comandos Linux en Android es la posibilidad de ejecutar scripts para realizar acciones desatendidas. Si guardas un script en tu dispositivo, puedes ejecutarlo así:
sh nombrescript.sh
Esto es especialmente útil para usuarios avanzados, desarrolladores y administradores de sistemas, que pueden automatizar copias de seguridad, limpieza de ficheros temporales, recopilación de logs o pruebas de aplicaciones directamente desde el teléfono.
Otros usuarios pueden usar estos scripts para aprender Linux sobre la marcha, aprovechar comandos GNU/Linux comunes y familiarizarse con el entorno sin necesidad de encender un ordenador.
Esto es solo un pequeño ejemplo de todo lo que se puede hacer con la Consola de Comandos de Linux en Android. El potencial es enorme para quienes quieran ir más allá de la interfaz gráfica y tener un control profundo del sistema.
Coméntanos tus consejos o trucos que sueles utilizar.
Código QR:
¡Advertencia nº 1: esta aplicación y el uso de la consola no son aptos para quienes no se desenvuelvan bien con el Sistema Operativo Linux!
¡Advertencia nº 2: Si utilizas Android Terminal Emulator o cualquier otra consola de comandos en Android lo estarás haciendo bajo tu propia responsabilidad. Ni el autor ni el editor se responsabilizan de posibles daños que pueda sufrir tu Android por un uso indebido o inadecuado de esta herramienta!
La combinación de la potencia del kernel Linux con una consola en Android convierte a tu móvil en una herramienta extremadamente versátil para aprender, administrar y experimentar, siempre que sepas lo que haces y sigas buenas prácticas de seguridad.





