jackpal / Android-Terminal-Emulator

author
5 minutes, 27 seconds Read

#Die Android-Shell

Eine „Shell“ ist ein Programm, das auf Tastatureingaben eines Benutzers hört und Aktionen ausführt, die vom Benutzer angewiesen werden. Android-Geräte werden mit einem einfachen Shell-Programm ausgeliefert. Dieses Shell-Programm ist größtenteils undokumentiert. Da viele Leute neugierig darauf sind, dachte ich, ich schreibe mal eine Dokumentation dazu.

Currently this documentation is incomplete, sorry!

##Gängige Probleme

Die eingebaute Shell hat eine sehr begrenzte Fehlerbehandlung. Wenn man den Namen eines Befehls falsch eingibt, sagt sie „permission denied“, obwohl das eigentliche Problem darin besteht, dass sie den Befehl nicht finden konnte:

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

#Die PATH-Variable

Die Android-Shell führt jedes Programm aus, das sie in ihrem PATH findet. Der PATH ist eine durch Doppelpunkte (‚:‘) getrennte Liste von Verzeichnissen. Sie können herausfinden, wie der PATH Ihrer Shell eingestellt ist, indem Sie den eingebauten echo-Befehl verwenden:

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

Abhängig von Ihrer Shell können Sie ein anderes Ergebnis sehen.

#Eingebaute Befehle

Jede Shell hat ein paar eingebaute Befehle. Einige übliche eingebaute Befehle sind:

  • echo — gibt Text auf stdout aus.
  • set — setzt Shellvariablen
  • export — macht Shellvariablen für Kommandozeilenprogramme verfügbar
  • cd — wechselt das aktuelle Verzeichnis.
  • pwd — druckt den Namen des aktuellen Verzeichnisses.

#BefehleUm herauszufinden, welche Befehle Ihnen zur Verfügung stehen, verwenden Sie den „ls“-Befehl für jedes der Verzeichnisse in der PATH-Variable.

##Finden der Dokumentation für die Android-Befehle.

Viele der Android-Befehle basieren auf Standard-Linux- (oder bsd-) Befehlen. Wenn Sie neugierig auf einen Befehl sind, können Sie manchmal erfahren, wie er funktioniert, indem Sie den Befehl „man“ auf einem Linux- oder OSX-Computer (Apple Macintosh) verwenden. Die Linux- oder OSX-Version des Befehls kann sich im Detail unterscheiden, aber ein Großteil der Dokumentation gilt auch für die Android-Version des Befehls.

Eine andere Quelle für die Dokumentation für Leute, die keinen Linux- oder OSX-Rechner zur Hand haben, ist die Verwendung eines Webbrowsers und die Verwendung einer Web-Suchmaschine, um nach dem Text zu suchen: „man Linux command-name“.

##List of commands

Das Folgende ist eine Liste der Befehle, die auf einem Nexus S Telefon mit einem Android 2.3.3 „user-debug“ Build vorhanden sind. Viele dieser Befehle sind auf einem „User“-Telefon nicht vorhanden. (Sie fehlen auf einem „Benutzer“-Telefon, weil sie spezifisch für die Entwicklung oder das Debugging des Android-Betriebssystems sind.)

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

Beachte, dass es standardmäßig kein Verzeichnis /data/local/bin gibt. Sie können dieses Verzeichnis mit dem Befehl „mkdir“ erstellen, wenn Sie möchten.

$ ls /sbinopendir failed, Permission denied

Das Verzeichnis /sbin existiert, aber Sie haben keine Berechtigung, darauf zuzugreifen. Sie brauchen Root-Zugriff. Wenn Sie ein Entwicklertelefon haben oder anderweitig Root-Zugriff auf Ihr Telefon haben, können Sie sehen, was sich in diesem Verzeichnis befindet.

$ su# ls /sbinueventdadbd# exit$ 

Beachten Sie, dass sich der Shell-Prompt von einem ‚$‘ zu einem ‚#‘ ändert, um anzuzeigen, dass Sie Root-Zugriff haben.

Beachten Sie auch, dass keiner der /sbin-Befehle für die Shell nützlich ist – die adb- und ueventd-Dateien sind „Daemon“-Programme, die verwendet werden, um das Android-Debugger-Programm „adb“ zu implementieren, das von Entwicklern verwendet wird.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin ist der Ort, an dem Gerätehersteller gerätespezifische ausführbare Dateien ablegen können. Diese Dateien sind von einem Nexus S.

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

Dieses Verzeichnis existiert nicht auf einem Nexus S.

$ ls /system/binam

am ist der Android Activity Manager. Er wird verwendet, um Android-Aktivitäten (z.B. Anwendungen) von der Kommandozeile aus zu starten und zu beenden. Geben Sie am selbst ein, um eine Liste von Optionen zu erhalten.

amixaplay

Audioplayer für die Befehlszeile.

app_processapplypatch

Wird verwendet, um Patches auf Android-Dateien anzuwenden.

arec

Audiorecorder für die Befehlszeile.

audioloopbluetoothd

BlueTooth-Daemon

bmgr

Backup-Manager – gib den Befehl selbst ein, um die Dokumentation zu erhalten.

bootanimation

Zeichnet die Boot-Animation. Möglicherweise müssen Sie Ihr Telefon zurücksetzen, um dies zu beenden.

brcm_patchram_plusbugreportcat

Kopieren Sie den Inhalt einer Datei in die Standardausgabe.

chmod

Ändern Sie den Modus einer Datei (z. B.

chown

Ändern Sie den Besitzer einer Datei.

cmp

Vergleichen Sie zwei Dateien Byte für Byte

dalvikvm

Die virtuelle Maschine dalvik. (Wird verwendet, um Android-Anwendungen auszuführen.)

date

Druckt das aktuelle Datum und die Uhrzeit

dbus-daemondd

Konvertieren und Kopieren einer Datei. Kopiert standardmäßig von Standard-In nach Standard-Out.

debuggerddexoptdf

Zeigt an, wie viel Speicherplatz auf den verschiedenen Dateisystemen auf Ihrem Gerät frei ist.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Zeigt die aktuelle Konfiguration der Netzwerkschnittstellen an (IP, MAC-Adresse usw)

iftop

Zeigt die aktuellen Prozesse an, die die Netzwerkschnittstellen verwenden (oben, aber für Netzwerke)

imeinputinsmodinstalldioctlioniceiptables

Verwalte die Firewall

keystorekeystore_clikill

Sende Signale an Prozesse.

linkerln

Verwendet, um eine Dateisystemverknüpfung einzurichten.

loglogcat

Druckt das Android-Laufzeitprotokoll.

logwrapperls

Listet Dateien auf.

lsmodlsofmake_ext4fsmediaservermkdir

Erstellt ein Verzeichnis.

monkey

Ein Programm, das zufällige Ereignisse sendet, um Anwendungen zu testen. (Als ob ein Affe mit dem Gerät spielen würde.)

mountmtpdmv

Eine Datei von einem Verzeichnis in ein anderes verschieben. (Nur auf demselben Dateisystem. Verwenden Sie „cat a > b“, um eine Datei zwischen Dateisystemen zu kopieren.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Aktive Prozesse auflisten.

qemu-propsqemudracoonradiooptionsreboot

Das Gerät neu starten.

recordrenicerildrm

Eine Datei löschen.

rmdir

Ein Verzeichnis löschen.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Startet die Android-Laufzeit.

stop

Stoppt die Android-Laufzeit.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Zeigt an, welche Prozesse derzeit die meiste CPU-Zeit verbrauchen.

umountuptime

Zeigt an, wie lange Ihr Gerät seit dem letzten Booten gelaufen ist.

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

Sicherheitskopierprogramm. (Wird verwendet, um Dateien über das Netzwerk zu kopieren.)

showmapshowslabsqlite3

Wird verwendet, um SQLite-Datenbanken zu verwalten.

strace

Systemtrace-Befehl – wird verwendet, um zu sehen, welche Systemaufrufe ein Programm macht.

su

Starten einer Shell mit Root-Rechten.

#Versionen der Android-Shell

  • Android 1.0 verwendete eine Shell ohne Tabulatorvervollständigung oder Verlaufsbearbeitung.
  • Android 2.3 fügte die Verlaufsbearbeitung hinzu. Sie können zum Beispiel die Pfeile nach oben/unten verwenden, um vorherige Befehle zu bearbeiten.

#Andere Shells

#Busybox

Busybox ist ein Programm, das eine Shell und eine Reihe von Kommandozeilen-Dienstprogrammen enthält. Suchen Sie im Android Market nach „Busybox“ und Sie sollten einige Versionen finden, die Sie installieren können. Die Busybox-Shell enthält Tabulator-Vervollständigung und History-Bearbeitung. Einige Versionen von Busybox für Android erfordern nicht, dass Sie Ihr Telefon rooten.

#Debian utilities

Sie können die vollständige Debian-Shell und Utilities installieren. (Debian ist eine beliebte Desktop-Linux-Distribution.) Ich kenne die Details nicht, und es kann ein „gerootetes“ Telefon erfordern. Versuchen Sie es mit einer Websuche nach „Debian Android install“.

#Custom ROMs

Einige Custom ROMs kommen mit ihren eigenen Shells und Dienstprogrammen. Wenn Sie ein benutzerdefiniertes ROM verwenden, lesen Sie die Dokumentation, um herauszufinden, was verfügbar ist.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.