jackpal / Android-Terminal-Emulator

author
5 minutes, 36 seconds Read

#The Android Shell

Een “shell” is een programma dat luistert naar toetsenbordinvoer van een gebruiker en acties uitvoert volgens de instructies van de gebruiker. Android toestellen worden geleverd met een eenvoudig shell programma. Dit shell programma is meestal niet gedocumenteerd. Omdat veel mensen er nieuwsgierig naar zijn, dacht ik, ik schrijf er wat documentatie voor.

Currently this documentation is incomplete, sorry!

##Gemeenschappelijke problemen

De ingebouwde shell heeft een zeer beperkte foutafhandeling. Als u een commando verkeerd typt, zegt hij “permission denied”, ook al is het echte probleem dat hij het commando niet kon vinden:

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

#De PATH-variabele

De Android-shell zal elk programma uitvoeren dat hij in zijn PATH vindt. Het PATH is een door dubbele punten (‘:’) gescheiden lijst van mappen. U kunt erachter komen wat uw shell’s PATH is ingesteld met behulp van de ingebouwde echo commando:

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

Afhankelijk van uw shell, kunt u een ander resultaat te zien krijgen.

#Ingebouwde commando’s

Elke shell heeft een paar ingebouwde commando’s. Enkele veel voorkomende ingebouwde commando’s zijn:

  • echo — drukt tekst af naar stdout.
  • set — stelt shell variabelen in
  • export — maakt shell variabelen beschikbaar voor command-line programma’s
  • cd — wijzig de huidige directory.
  • pwd — drukt de naam van de huidige directory af.

#CommandsOm uit te vinden welke commando’s u tot uw beschikking heeft, gebruikt u het “ls” commando op elk van de directories in de PATH variabele.

##Vind documentatie voor de Android commando’s.

Veel van de Android commando’s zijn gebaseerd op standaard Linux (of bsd) commando’s. Als u nieuwsgierig bent naar een commando, kunt u soms leren hoe het werkt door het gebruik van de “man” commando op een desktop Linux of OSX (Apple Macintosh) computer. De Linux- of OSX-versie van het commando kan in details verschillen, maar veel van de documentatie zal nog steeds van toepassing zijn op de Android-versie van het commando.

Een andere bron van documentatie voor mensen die geen Linux- of OSX-machine bij de hand hebben, is om een webbrowser te gebruiken en met een zoekmachine op het web te zoeken naar de tekst: “man Linux command-name”.

##Lijst van commando’s

Hieronder volgt een lijst van de commando’s die aanwezig zijn op een Nexus S telefoon waarop een Android 2.3.3 “user-debug” build draait. Veel van deze commando’s zijn niet aanwezig op een “gebruiker” telefoon. (Ze ontbreken op een “gebruiker” telefoon omdat ze specifiek zijn voor het ontwikkelen of debuggen van het Android besturingssysteem.)

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

Merk op dat er standaard geen /data/local/bin directory is. U kunt deze directory maken met de “mkdir” opdracht als u wilt.

$ ls /sbinopendir failed, Permission denied

De /sbin directory bestaat, maar u heeft geen toestemming om deze te openen. Je hebt root toegang nodig. Als u een ontwikkelaarstelefoon hebt, of op een andere manier root-toegang tot uw telefoon hebt, kunt u zien wat er in deze directory staat.

$ su# ls /sbinueventdadbd# exit$ 

Merk op dat de shell prompt verandert van een ‘$’ in een ‘#’ om aan te geven dat u root-toegang hebt.

Merk ook op dat geen van de /sbin commando’s nuttig zijn voor de shell — de adb en ueventd bestanden zijn ‘daemon’ programma’s die worden gebruikt om het Android Debugger “adb” programma te implementeren dat wordt gebruikt door ontwikkelaars.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin is waar apparaatleveranciers apparaat-specifieke uitvoerbare bestanden kunnen plaatsen. Deze bestanden zijn van een Nexus S.

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

Deze directory bestaat niet op een Nexus S.

$ ls /system/binam

am is de Android Activity Manager. Het wordt gebruikt om Android activiteiten (b.v. applicaties) te starten en te stoppen vanaf de commandoregel. Typ am op zichzelf om een lijst met opties te krijgen.

amixaplay

Command line audio file player.

app_processapplypatch

Gebruikt om patches toe te passen op android files.

arec

Command line audio recorder.

audioloopbluetoothd

BlueTooth daemon

bmgr

Backup manager – type commando zelf om documentatie te krijgen.

bootanimation

Tekent de boot animatie. Het kan zijn dat u uw telefoon moet resetten om hieruit te komen.

brcm_patchram_plusbugreportcat

Kopieer de inhoud van een bestand naar de standaarduitvoer.

chmod

Verander de modus van een bestand (bijv. of het kan worden gelezen of geschreven.)

chown

De eigenaar van een bestand wijzigen.

cmp

Vergelijk twee bestanden byte-voor-te

dalvikvm

De dalvik virtuele machine. (Wordt gebruikt om Android applicaties te draaien.)

date

Print de huidige datum en tijd

dbus-daemondd

Converteer en kopieer een bestand. Kopieert standaard in naar standaard out.

debuggerddexoptdf

Geeft aan hoeveel ruimte er vrij is op verschillende bestandssystemen op uw apparaat.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Toont de huidige configuratie van netwerk interfaces (IP, MAC adres etc)

iftop

Toont de huidige processen die gebruik maken van de netwerk interfaces (top, maar dan voor netwerken)

imeinputinsmodinstalldioctlioniceiptables

Beheer de firewall

keystorekeystore_clikill

Signalen naar processen sturen.

linkerln

Gebruikt om een bestandssysteem link op te zetten.

loglogcat

Print het Android runtime log.

logwrapperls

Lijst bestanden.

lsmodlsofmake_ext4fsmediaservermkdir

Maak een directory.

monkey

Een programma dat willekeurige gebeurtenissen zendt, gebruikt om applicaties te testen. (Alsof een aapje met het apparaat speelt.)

mountmtpdmv

Verplaats een bestand van de ene directory naar de andere. (Alleen op hetzelfde bestandssysteem. Gebruik “cat a > b” om een bestand tussen bestandssystemen te kopiëren.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Lijst actieve processen.

qemu-propsqemudracoonradiooptionsreboot

Herstart het apparaat.

recordrenicerildrm

Verwijder een bestand.

rmdir

Verwijder een directory.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Start de Android runtime.

stop

Stopt de Android-runtime.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Laat zien welke processen momenteel de meeste CPU-tijd gebruiken.

umountuptime

Print hoe lang uw apparaat al draait sinds het voor het laatst is opgestart.

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

Het programma voor het veilig kopiëren van bestanden. (Wordt gebruikt om bestanden over het netwerk te kopiëren.)

showmapshowslabsqlite3

Gebruikt om SQLite databases te beheren.

strace

System trace command – gebruik om te zien welke systeem aanroepen een programma maakt.

su

Start een shell met root privileges.

#Versies van de Android Shell

  • Android 1.0 gebruikte een shell die geen tab completion of history editing had.
  • Android 2.3 voegde history editing toe. U kunt bijvoorbeeld de pijltjes omhoog/omlaag gebruiken om eerdere commando’s te bewerken.

#Andere shells

#Busybox

Busybox is een programma dat een shell bevat en een set command line utilities. Zoek in Android Market naar “Busybox” en je zou een aantal versies moeten vinden die je kunt installeren. De Busybox-shell bevat tabcompletering en geschiedenisbewerking. Sommige versies van Busybox voor Android vereisen niet dat u uw telefoon rooten.

#Debian hulpprogramma’s

U kunt de volledige Debian shell en hulpprogramma’s installeren. (Debian is een populaire desktop Linux distributie.) Ik ken de details niet, en het kan een “gewortelde” telefoon vereisen. Zoek op het web naar “Debian Android install”.

#Custom ROMs

Sommige custom ROMs komen met hun eigen shells en hulpprogramma’s. Als u een aangepaste ROM gebruikt, controleer dan de documentatie om uit te vinden wat er beschikbaar is.

Similar Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.