jackpal / Android-Terminal-Emulator

author
6 minutes, 9 seconds Read

#The Android Shell

A “shell” é um programa que escuta a entrada do teclado de um usuário e executa ações conforme as instruções do usuário. Os dispositivos Android vêm com um programa shell simples. Este programa shell é na sua maioria indocumentado. Como muitas pessoas estão curiosas sobre ele eu pensei em escrever alguma documentação para ele.

Currently this documentation is incomplete, sorry!

##Problemas comuns

A shell incorporada tem um tratamento de erros muito limitado. Quando você digita um nome de comando incorretamente ele vai dizer “permissão negada”, mesmo que o verdadeiro problema seja que ele não conseguiu encontrar o comando:

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

#A variável PATH

A shell do Android vai executar qualquer programa que encontrar no seu PATH. O PATH é uma lista separada de diretórios com dois-pontos (‘:’). Você pode encontrar o PATH da sua shell usando o comando echo embutido:

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

Dependente da sua shell, você pode ver um resultado diferente.

#Incluído em Comandos

Cada shell tem alguns comandos embutidos. Alguns comandos embutidos comuns são:

  • echo — imprime texto para stdout.
  • set — define variáveis shell
  • export — torna variáveis shell disponíveis para programas de linha de comando
  • cd — muda o diretório atual.
  • pwd — imprime o nome do diretório atual.

#ComandosPara descobrir quais comandos você tem disponíveis, use o comando “ls” em cada um dos diretórios na variável PATH.

##Localizar documentação para os comandos Android.

Muitos dos comandos Android são baseados em comandos padrão do Linux (ou bsd). Se você está curioso sobre um comando, às vezes você pode aprender como ele funciona usando o comando “man” em um computador desktop Linux ou OSX (Apple Macintosh). A versão Linux ou OSX do comando pode ser diferente em detalhes, mas grande parte da documentação ainda se aplicará à versão Android do comando.

Uma outra fonte de documentação para pessoas sem uma máquina Linux ou OSX útil é usar um navegador web e usar um mecanismo de busca web para pesquisar o texto: “man Linux command-name”.

##Lista de comandos

A seguir está uma lista dos comandos que estão presentes em um telefone Nexus S rodando uma compilação “user-debug” do Android 2.3.3. Muitos destes comandos não estão presentes em um telefone “usuário”. (Eles estão faltando em um telefone “usuário” porque eles são específicos para desenvolver ou depurar o sistema operacional Android.)

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

Note que por padrão não há diretório /data/local/bin. Você pode criar este diretório usando o comando “mkdir” se quiser.

$ ls /sbinopendir failed, Permission denied

O diretório /sbin existe, mas você não tem permissão para acessá-lo. Você precisa de acesso root. Se você tem um telefone desenvolvedor, ou tem acesso root ao seu telefone você pode ver o que está neste diretório.

$ su# ls /sbinueventdadbd# exit$ 

Note que o prompt da shell muda de um ‘$’ para um ‘#’ para indicar que você tem acesso root.

Note também que nenhum dos comandos /sbin são úteis para a shell — os arquivos adb e ueventd são programas ‘daemon’ usados para implementar o programa “adb” do depurador do Android que é usado pelos desenvolvedores.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin é onde os vendedores de dispositivos podem colocar executáveis específicos do dispositivo. Estes arquivos são de um Nexus S.

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

Este diretório não existe em um Nexus S.

$ ls /system/binam

am é o Gerenciador de Atividades do Android. Ele é usado para iniciar e parar atividades do Android (por exemplo, aplicativos) a partir da linha de comando. Digite am por si mesmo para obter uma lista de opções.

>

amixaplay

Pleitor de arquivos de áudio de linha de comando.

app_processapplypatch

Utilizado para aplicar patches em arquivos andróides.

arec

Gravador de áudio de linha de comando.

audioloopbluetoothd

Daemon de BlueTooth

bmgr

Gerenciador de Backup – tipo de comando por si só para obter documentação.

bootanimation

Drava a animação de arranque. Você pode ter que reiniciar seu telefone para sair disto.

brcm_patchram_plusbugreportcat

Copiar o conteúdo de um arquivo para a saída padrão.

chmod

Mudar o modo de um arquivo (ex. se pode ser lido ou escrito.)

chown

Alterar o dono de um ficheiro.

cmp

Comparar dois ficheiros byte-a-byte

dalvikvm

A máquina virtual dalvik. (Utilizado para executar aplicações Android.)

date

Imprime a data e hora actuais

dbus-daemondd

Converter e copiar um ficheiro. Por padrão copia de padrão dentro para fora.

debuggerddexoptdf

Mostra quanto espaço é livre em diferentes sistemas de arquivos em seu dispositivo.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Mostra a configuração atual das interfaces de rede (IP, endereço MAC, etc)

iftop

Mostra os processos atuais usando as interfaces de rede (topo, mas para redes)

imeinputinsmodinstalldioctlioniceiptables

Gerenciar o firewall

keystorekeystore_clikill

Enviar sinais para processos.

linkerln

Usado para configurar um link de sistema de arquivos.

loglogcat

Imprime o log de tempo de execução do Android.

logwrapperls

Lista arquivos.

lsmodlsofmake_ext4fsmediaservermkdir

Faça um diretório.

monkey

Um programa que envia eventos aleatórios, usado para testar aplicativos. (Como ter um macaco a brincar com o dispositivo.)

mountmtpdmv

Mover um ficheiro de um directório para outro. (Somente no mesmo sistema de arquivos. Use “cat a > b” para copiar um ficheiro entre sistemas de ficheiros.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Lista de processos activos.

qemu-propsqemudracoonradiooptionsreboot

Reboot the device.

recordrenicerildrm

Remover um ficheiro.

rmdir

Remover um directório.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Inicia o tempo de execução do Android.

stop

Para o tempo de execução do Android.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Mostra quais os processos que estão atualmente usando o maior tempo de CPU.

umountuptime

Imprime há quanto tempo o seu dispositivo está rodando desde a última inicialização.

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

Seguro programa de cópia. (Usado para copiar arquivos pela rede.)

showmapshowslabsqlite3

Usado para administrar bancos de dados SQLite.

strace

Comando System trace – use para ver o que o sistema chama de programa.

su

Inicie uma shell com privilégios de root.

#Versões da shell do Android

  • Android 1.0 usou uma shell que não tinha completamento de tabulação ou edição de histórico.
  • Android 2.3 adicionou edição de histórico. Você pode por exemplo usar as setas para cima/baixo para editar comandos anteriores.

#Outros shells

#Busybox

Busybox é um programa que contém um shell e um conjunto de utilitários de linha de comando. Procure no Android Market por “Busybox” e você deve encontrar algumas versões que você pode instalar. A shell do Busybox inclui preenchimento de tabulações e edição de histórico. Algumas versões do Busybox para o Android não requerem que você faça o root do seu telefone.

#Utilitários Debian

Você pode instalar a shell e utilitários completos do Debian. (Debian é uma popular distribuição desktop Linux.) Eu não sei os detalhes, e pode requerer um telefone “enraizado”. Tente uma busca web por “Debian Android install”.

#ROMs Personalizadas

algumas ROMs personalizadas vêm com os seus próprios shells e utilitários. Se você estiver usando uma ROM personalizada, verifique sua documentação para descobrir o que está disponível.

Similar Posts

Deixe uma resposta

O seu endereço de email não será publicado.