jackpal / Android-Terminal-Emulator

author
6 minutes, 12 seconds Read

#The Android Shell

Un «shell» es un programa que escucha la entrada del teclado de un usuario y realiza acciones según las indicaciones del usuario. Los dispositivos Android vienen con un programa de shell simple. Este programa shell no está documentado en su mayoría. Ya que mucha gente tiene curiosidad sobre él, pensé en escribir algo de documentación para él.

Currently this documentation is incomplete, sorry!

##Problemas comunes

El shell incorporado tiene un manejo de errores muy limitado. Cuando escribes mal el nombre de un comando te dirá «permiso denegado», aunque el verdadero problema es que no ha podido encontrar el comando:

$ dirdir: permission denied <---- this is a misleading error message, should say 'dir: not found'$ ls... listing of current directory

#La variable PATH

El shell de Android ejecutará cualquier programa que encuentre en su PATH. El PATH es una lista de directorios separados por dos puntos (‘:’). Puede averiguar cuál es el PATH de su shell utilizando el comando echo incorporado:

$ echo $PATH/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

Dependiendo de su shell, puede ver un resultado diferente.

#Comandos incorporados

Cada shell tiene algunos comandos incorporados. Algunos comandos incorporados comunes son:

  • echo — imprime texto en stdout.
  • set — establece variables del shell
  • export — hace que las variables del shell estén disponibles para los programas de la línea de comandos
  • cd — cambia el directorio actual.
  • pwd — imprime el nombre del directorio actual.

#ComandosPara saber qué comandos tienes a tu disposición, utiliza el comando «ls» en cada uno de los directorios de la variable PATH.

##Encontrar documentación para los comandos de Android.

Muchos de los comandos de Android están basados en comandos estándar de Linux (o bsd). Si tienes curiosidad por un comando, a veces puedes aprender cómo funciona utilizando el comando «man» en un ordenador de escritorio Linux o OSX (Apple Macintosh). La versión Linux u OSX del comando puede ser diferente en detalles, pero gran parte de la documentación seguirá aplicándose a la versión Android del comando.

Otra fuente de documentación para las personas que no tienen una máquina Linux u OSX a mano es utilizar un navegador web y utilizar un motor de búsqueda web para buscar el texto «man Linux command-name».

#Lista de comandos

La siguiente es una lista de los comandos que están presentes en un teléfono Nexus S que ejecuta una compilación de Android 2.3.3 «user-debug». Muchos de estos comandos no están presentes en un teléfono de «usuario». (No están presentes en un teléfono «de usuario» porque son específicos para desarrollar o depurar el sistema operativo Android.)

$ ls /data/local/bin/data/local/bin: No such file or directory

Nota que por defecto no hay un directorio /data/local/bin. Puedes crear este directorio usando el comando «mkdir» si quieres.

$ ls /sbinopendir failed, Permission denied

El directorio /sbin existe, pero no tienes permiso para acceder a él. Necesitas acceso de root. Si tienes un teléfono para desarrolladores, o de otra manera tienes acceso de root a tu teléfono puedes ver lo que hay en este directorio.

$ su# ls /sbinueventdadbd# exit$ 

Nota que el prompt del shell cambia de un ‘$’ a un ‘#’ para indicar que tienes acceso de root.

Nota también que ninguno de los comandos /sbin son útiles para el shell — los archivos adb y ueventd son programas ‘daemon’ utilizados para implementar el programa Android Debugger «adb» que es utilizado por los desarrolladores.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin es donde los vendedores de dispositivos pueden poner ejecutables específicos del dispositivo. Estos archivos son de un Nexus S.

$ ls /system/sbin/system/sbin: No such file or directory

Este directorio no existe en un Nexus S.

$ ls /system/binam

am es el administrador de actividades de Android. Se utiliza para iniciar y detener las actividades de Android (por ejemplo, aplicaciones) desde la línea de comandos. Escriba am por sí mismo para obtener una lista de opciones.

amixaplay

Línea de comandos del reproductor de archivos de audio.

app_processapplypatch

Se utiliza para aplicar parches a los archivos de android.

arec

Línea de comandos del grabador de audio.

audioloopbluetoothd

Demonio BlueTooth

bmgr

Gestor de copias de seguridad – escribe el comando por sí mismo para obtener la documentación.

bootanimation

Dibuja la animación de arranque. Es posible que tenga que reiniciar el teléfono para salir de esto.

brcm_patchram_plusbugreportcat

Copia el contenido de un archivo a la salida estándar.

chmod

Cambia el modo de un archivo (por ejemplo. si se puede leer o escribir.)

chown

Cambiar el propietario de un archivo.

cmp

Comparar dos archivos byte a byte

dalvikvm

La máquina virtual dalvik. (Se utiliza para ejecutar aplicaciones Android.)

date

Imprime la fecha y hora actuales

dbus-daemondd

Convierte y copia un archivo. Por defecto copia la entrada estándar a la salida estándar.

debuggerddexoptdf

Muestra cuánto espacio está libre en los diferentes sistemas de archivos de su dispositivo.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Muestra la configuración actual de las interfaces de red (IP, dirección MAC, etc)

iftop

Muestra los procesos actuales que utilizan las interfaces de red (arriba, pero para las redes)

imeinputinsmodinstalldioctlioniceiptables

Maneja el firewall

keystorekeystore_clikill

Envía señales a los procesos.

linkerln

Se utiliza para configurar un enlace del sistema de archivos.

loglogcat

Imprime el registro de ejecución de Android.

logwrapperls

Lista archivos.

lsmodlsofmake_ext4fsmediaservermkdir

Hace un directorio.

monkey

Un programa que envía eventos aleatorios, utilizado para probar aplicaciones. (Como tener un mono jugando con el dispositivo.)

mountmtpdmv

Mover un archivo de un directorio a otro. (Sólo en el mismo sistema de archivos. Utiliza «cat a > b» para copiar un archivo entre sistemas de archivos.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Lista de procesos activos.

qemu-propsqemudracoonradiooptionsreboot

Reinicia el dispositivo.

recordrenicerildrm

Elimina un archivo.

rmdir

Elimina un directorio.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Inicia el runtime de Android.

stop

Detener el tiempo de ejecución de Android.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Muestra qué procesos están utilizando actualmente la mayor parte del tiempo de la CPU.

umountuptime

Imprime cuánto tiempo ha estado funcionando su dispositivo desde que se inició por última vez.

vdcvmstatvoldwatchpropswipewpa_cliwpa_supplicant$ ls /system/xbinadd-property-tagbtoolcheck-lost+founddexdumpdhdutilhcidumplatencytoplibrankopcontroloprofiledprocmemprocrankrawbuscp

Programa de copia segura. (Se utiliza para copiar archivos a través de la red.)

showmapshowslabsqlite3

Se utiliza para administrar bases de datos SQLite.

strace

Comando de rastreo del sistema – se utiliza para ver qué llamadas al sistema hace un programa.

su

Iniciar un shell con privilegios de root.

#Versiones del Shell de Android

  • Android 1.0 utilizaba un shell que no tenía finalización de pestañas ni edición del historial.
  • Android 2.3 añadió la edición del historial. Puedes, por ejemplo, usar las flechas arriba/abajo para editar comandos anteriores.

#Otros shells

#Busybox

Busybox es un programa que contiene un shell y un conjunto de utilidades de línea de comandos. Busca en Android Market «Busybox» y deberías encontrar algunas versiones que puedes instalar. El intérprete de comandos Busybox incluye la finalización de pestañas y la edición del historial. Algunas versiones de Busybox para Android no requieren que hagas root a tu teléfono.

#Utilidades de Debian

Puedes instalar el shell y las utilidades completas de Debian. (Debian es una popular distribución de Linux de escritorio.) No conozco los detalles, y puede requerir un teléfono «rooteado». Prueba a buscar en la web «Debian Android install».

#Roms personalizadas

Algunas ROMs personalizadas vienen con sus propios shells y utilidades. Si estás usando una ROM personalizada, revisa su documentación para saber qué hay disponible.

Similar Posts

Deja una respuesta

Tu dirección de correo electrónico no será publicada.