jackpal / Android-Terminal-Emulator

author
5 minutes, 23 seconds Read

#The Android Shell

En “shell” er et program, der lytter til tastaturinput fra en bruger og udfører handlinger som anvist af brugeren. Android-enheder leveres med et simpelt shell-program. Dette shellprogram er for det meste udokumenteret. Da mange mennesker er nysgerrige på det, tænkte jeg, at jeg ville skrive noget dokumentation for det.

Currently this documentation is incomplete, sorry!

###Fælles problemer

Den indbyggede shell har meget begrænset fejlhåndtering. Når du skriver et kommandonavn forkert, siger den “permission denied” (tilladelse nægtet), selv om det virkelige problem er, at den ikke kunne finde kommandoen:

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

#PATH-variablen

Android-shell’en vil køre ethvert program, den finder i sin PATH. PATH er en liste af mapper med kolon (‘:’) adskilt fra hinanden. Du kan finde ud af, hvad din shell’s PATH er indstillet til ved at bruge den indbyggede echo kommando:

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

Afhængigt af din shell kan du se et andet resultat.

#Inbyggede kommandoer

Alle shell’er har nogle få indbyggede kommandoer. Nogle almindelige indbyggede kommandoer er:

  • echo — udskriver tekst til stdout.
  • set — indstiller shell-variabler
  • export — gør shell-variabler tilgængelige for kommandolinjeprogrammer
  • cd — ændrer den aktuelle mappe.
  • pwd — udskriver navnet på den aktuelle mappe.

#KommandoerFor at finde ud af, hvilke kommandoer du har til rådighed, skal du bruge kommandoen “ls” på hver af mapperne i PATH-variablen.

##Søge dokumentation for Android-kommandoerne.

Mange af Android-kommandoerne er baseret på standardkommandoer i Linux (eller bsd). Hvis du er nysgerrig på en kommando, kan du nogle gange lære, hvordan den fungerer, ved at bruge kommandoen “man” på en stationær Linux- eller OSX-computer (Apple Macintosh-computer). Linux- eller OSX-versionen af kommandoen kan være anderledes i detaljer, men meget af dokumentationen vil stadig gælde for Android-versionen af kommandoen.

En anden kilde til dokumentation for folk, der ikke har en Linux- eller OSX-maskine ved hånden, er at bruge en webbrowser og bruge en web-søgemaskine til at søge efter teksten: “man Linux command-name”.

###Liste over kommandoer

Det følgende er en liste over de kommandoer, der findes på en Nexus S-telefon, der kører en Android 2.3.3.3 “user-debug” build. Mange af disse kommandoer er ikke til stede på en “bruger”-telefon. (De mangler på en “bruger”-telefon, fordi de er specifikke for udvikling eller fejlfinding af Android-operativsystemet.)

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

Bemærk, at der som standard ikke er nogen /data/local/bin-mappe. Du kan oprette denne mappe ved hjælp af kommandoen “mkdir”, hvis du vil.

$ ls /sbinopendir failed, Permission denied

Mappen /sbin findes, men du har ikke tilladelse til at få adgang til den. Du skal have root-adgang. Hvis du har en udvikler-telefon eller på anden måde har root-adgang til din telefon, kan du se, hvad der er i denne mappe.

$ su# ls /sbinueventdadbd# exit$ 

Bemærk, at shellprompten ændres fra et “$” til et “#” for at indikere, at du har root-adgang.

Bemærk også, at ingen af /sbin-kommandoerne er nyttige for shell’en – filerne adb og ueventd er ‘dæmon’-programmer, der bruges til at implementere Android Debugger-programmet “adb”, der bruges af udviklere.

$ ls /vendor/bingpsdpvrsrvinit

Vendor/bin er der, hvor enhedsleverandører kan lægge enhedsspecifikke eksekverbare programmer. Disse filer er fra en Nexus S.

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

Denne mappe findes ikke på en Nexus S.

$ ls /system/binam

am er Android Activity Manager. Den bruges til at starte og stoppe Android-aktiviteter (f.eks. programmer) fra kommandolinjen. Skriv am alene for at få en liste over muligheder.

amixaplay

Kommandolinjeafspiller for lydfiler.

app_processapplypatch

Bruges til at anvende patches til Android-filer.

arec

Kommandolinjeafspiller for lydfiler.

audioloopbluetoothd

BlueTooth daemon

bmgr

Backup manager – skriv kommando af sig selv for at få dokumentation.

bootanimation

Tegner opstartsanimation. Du skal muligvis nulstille telefonen for at komme ud af dette.

brcm_patchram_plusbugreportcat

Kopier indholdet af en fil til standardudgang.

chmod

Ændre tilstanden for en fil (f.eks. om den kan læses eller skrives.)

chown

Ændre ejeren af en fil.

cmp

Sammenligne to filer byte-for-byte

dalvikvm

Dalvik virtual machine. (Bruges til at køre Android-programmer.)

date

Udskriver den aktuelle dato og det aktuelle klokkeslæt

dbus-daemondd

Konverter og kopier en fil. Kopierer som standard standard in til standard out.

debuggerddexoptdf

Viser, hvor meget plads der er ledig på forskellige filsystemer på din enhed.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Viser den aktuelle konfiguration af netværksgrænseflader (IP, MAC-adresse osv.)

iftop

Viser de aktuelle processer, der bruger netværksgrænsefladerne (øverst, men for netværk)

imeinputinsmodinstalldioctlioniceiptables

Håndter firewallen

keystorekeystore_clikill

Sender signaler til processer.

linkerln

Bruges til at oprette en filsystemforbindelse.

loglogcat

Udskriver Android-køreloggen.

logwrapperls

Lister filer.

lsmodlsofmake_ext4fsmediaservermkdir

Opret en mappe.

monkey

Et program, der sender tilfældige hændelser, bruges til at teste programmer. (Som at have en abe til at lege med enheden.)

mountmtpdmv

Flytter en fil fra en mappe til en anden. (Kun på det samme filsystem. Brug “cat a > b” til at kopiere en fil mellem filsystemer.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Liste over aktive processer.

qemu-propsqemudracoonradiooptionsreboot

Reboot enheden.

recordrenicerildrm

Fjernelse af en fil.

rmdir

Fjernelse af en mappe.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Start Android-køretid.

stop

Stopper Android-køretiden.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Viser, hvilke processer der i øjeblikket bruger mest CPU-tid.

umountuptime

Udskriver, hvor længe enheden har kørt, siden den sidst blev startet op.

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

Sikkert kopiprogram. (Bruges til at kopiere filer over netværket.)

showmapshowslabsqlite3

Bruges til at administrere SQLite-databaser.

strace

Systemtrace-kommando – bruges til at se, hvilke systemkald et program foretager.

su

Start en shell med root-privilegier.

#Versioner af Android Shell

  • Android 1.0 brugte en shell, der ikke havde fanebeskrivelse eller historikredigering.
  • Android 2.3 tilføjede historikredigering. Du kan f.eks. bruge pil op/ned-pilene til at redigere tidligere kommandoer.

#Andre skaller

#Busybox

Busybox er et program, der indeholder en skal og et sæt kommandolinjeværktøjer. Søg på Android Market efter “Busybox”, og du bør finde nogle versioner, som du kan installere. Busybox-shell’en indeholder fanefuldstænding og historikredigering. Nogle versioner af Busybox til Android kræver ikke, at du rooter din telefon.

#Debian utilities

Du kan installere hele Debians shell og hjælpeprogrammer. (Debian er en populær desktop Linux-distribution.) Jeg kender ikke detaljerne, og det kræver muligvis en “rooted” telefon. Prøv en søgning på nettet efter “Debian Android install”.

#Brugerdefinerede ROM’er

Nogle brugerdefinerede ROM’er kommer med deres egne skaller og hjælpeprogrammer. Hvis du bruger en brugerdefineret ROM, skal du tjekke dens dokumentation for at finde ud af, hvad der er tilgængeligt.

Similar Posts

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.