jackpal / Android-Terminal-Emulator

author
7 minutes, 1 second Read

#Az Android Shell

A “shell” egy olyan program, amely hallgatja a felhasználó billentyűzetbemenetét, és a felhasználó utasításai szerint hajt végre műveleteket. Az Android készülékek egy egyszerű shell programmal vannak ellátva. Ez a shell program többnyire dokumentálatlan. Mivel sokan kíváncsiak rá, gondoltam, írok hozzá egy kis dokumentációt.

Currently this documentation is incomplete, sorry!

##Gyakori problémák

A beépített shell nagyon korlátozott hibakezeléssel rendelkezik. Ha rosszul írsz be egy parancsnevet, azt fogja mondani, hogy “engedély megtagadva”, pedig a valódi probléma az, hogy nem találta a parancsot:

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

#A PATH változó

Az Android shell minden olyan programot futtat, amit a PATH-ban talál. A PATH egy kettősponttal (‘:’) elválasztott könyvtárak listája. A beépített echo paranccsal megtudhatja, hogy mi van beállítva a shell PATH-jában:

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

A shell-től függően eltérő eredményt kaphat.

#Beépített parancsok

Minden shell rendelkezik néhány beépített paranccsal. Néhány gyakori beépített parancs:

  • echo — szöveget ír ki az stdout-ra.
  • set — shellváltozók beállítása
  • export — shellváltozókat tesz elérhetővé parancssori programok számára
  • cd — az aktuális könyvtár megváltoztatása.
  • pwd — az aktuális könyvtár nevének kiírása.

#ParancsokHogy megtudja, milyen parancsok állnak rendelkezésére, használja az “ls” parancsot a PATH változóban szereplő egyes könyvtárakra.

##Az Android parancsok dokumentációjának keresése.

Az Android parancsok nagy része a szabványos Linux (vagy bsd) parancsokon alapul. Ha kíváncsi vagy egy parancsra, néha egy asztali Linux vagy OSX (Apple Macintosh) számítógépen a “man” parancs segítségével megtudhatod, hogyan működik. A parancs Linux vagy OSX verziója részleteiben eltérő lehet, de a dokumentáció nagy része a parancs Android verziójára is vonatkozik.

A dokumentáció másik forrása azok számára, akiknek nincs kéznél Linux vagy OSX gépük, az, ha webböngészőt használnak, és egy webes keresőmotor segítségével keresnek rá a szövegre: “man Linux parancsnév”.

##A parancsok listája

A következőkben az Android 2.3.3 “user-debug” buildet futtató Nexus S telefonon található parancsok listája következik. E parancsok közül sok nincs jelen a “felhasználói” telefonon. (Azért hiányoznak egy “felhasználói” telefonról, mert az Android operációs rendszer fejlesztésére vagy hibakeresésére jellemzőek.)

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

Megjegyezzük, hogy alapértelmezés szerint nincs /data/local/bin könyvtár. Ezt a könyvtárat az “mkdir” paranccsal hozhatja létre, ha szeretné.

$ ls /sbinopendir failed, Permission denied

A /sbin könyvtár létezik, de nincs jogosultsága hozzá. Root hozzáférésre van szükséged. Ha van egy fejlesztői telefonod, vagy egyébként root hozzáféréssel rendelkezel a telefonodhoz, akkor megnézheted, hogy mi van ebben a könyvtárban.

$ su# ls /sbinueventdadbd# exit$ 

Figyeld meg, hogy a shell prompt ‘$’-ról ‘#’-re változik, jelezve, hogy root hozzáféréssel rendelkezel.

Figyeljünk arra is, hogy a /sbin parancsok egyike sem hasznos a shell számára — az adb és az ueventd fájlok “daemon” programok, amelyek a fejlesztők által használt Android Debugger “adb” program megvalósítására szolgálnak.

$ ls /vendor/bingpsdpvrsrvinit

A vendor/bin az, ahová a készülékgyártók a készülék-specifikus futtatható programokat helyezhetik. Ezek a fájlok egy Nexus S-ről származnak.

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

Ez a könyvtár nem létezik egy Nexus S-en.

$ ls /system/binam

am az Android Activity Manager. Android tevékenységek (pl. alkalmazások) indítására és leállítására szolgál a parancssorból. Írja be az am-t önmagában, hogy megkapja az opciók listáját.

amixaplay

Kommandósori hangfájllejátszó.

app_processapplypatch

Az androidos fájlokra történő javítások alkalmazására szolgál.

arec

Kommandósori hangfelvevő.

audioloopbluetoothd

BlueTooth daemon

bmgr

Backup manager – írja be a parancsot önmagában a dokumentációhoz.

bootanimation

Megrajzolja a boot animációt. Lehet, hogy vissza kell állítani a telefont, hogy kijusson ebből.

brcm_patchram_plusbugreportcat

Egy fájl tartalmának másolása a standard kimenetre.

chmod

Egy fájl módjának módosítása (pl. hogy olvasható vagy írható-e.)

chown

Egy fájl tulajdonosának megváltoztatása.

cmp

Két fájl byte-onkénti összehasonlítása

dalvikvm

A dalvik virtuális gép. (Android alkalmazások futtatására szolgál.)

date

Kinyomtatja az aktuális dátumot és időt

dbus-daemondd

Fájlok átalakítása és másolása. Alapértelmezés szerint a standard be-ről a standard kimenetre másol.

debuggerddexoptdf

Megmutatja, hogy mennyi szabad hely van a készülék különböző fájlrendszereiben.

dhcpcddmesgdnsmasqdumpstatedumpsysdvzfsck_msdosgdbservergeteventgetpropgziphciattachhdidifconfig

Megjeleníti a hálózati interfészek aktuális konfigurációját (IP, MAC cím stb.)

iftop

Megjeleníti a hálózati interfészeket használó aktuális folyamatokat (felül, de hálózatoknál)

imeinputinsmodinstalldioctlioniceiptables

A tűzfal kezelése

keystorekeystore_clikill

Jelek küldése a folyamatoknak.

linkerln

Fájlrendszeri kapcsolat beállítására szolgál.

loglogcat

Az Android futásidő naplójának nyomtatása.

logwrapperls

Fájlok listázása.

lsmodlsofmake_ext4fsmediaservermkdir

Könyvtár készítése.

monkey

Véletlenszerű eseményeket küldő program, alkalmazások tesztelésére szolgál. (Mintha egy majom játszana az eszközzel.)

mountmtpdmv

Fájlok áthelyezése egyik könyvtárból a másikba. (Csak ugyanazon a fájlrendszeren belül. Használja a “cat a > b” parancsot egy fájl másolásához a fájlrendszerek között.

nandreadndcnetcfgnetdnetstatnewfs_msdosnotifyomx_testspandpingpmpppdprintenvps

Az aktív folyamatok listázása.

qemu-propsqemudracoonradiooptionsreboot

A készülék újraindítása.

recordrenicerildrm

Fájl eltávolítása.

rmdir

Könyvtár eltávolítása.

rmmodroutertp_testrun-asschedtestschedtopsdcardsdptoolsendeventserviceservicemanagersetconsolesetpropsetup_fsshshowleasesleepsmdstagefrightstart

Android futásidő elindítása.

stop

Leállítja az Android futási időt.

surfaceflingersvcsyncsystem_servertctestid3toolboxtop

Megmutatja, hogy mely folyamatok használják jelenleg a legtöbb CPU-időt.

umountuptime

Kinyomtatja, hogy mennyi ideje fut a készülék az utolsó indítás óta.

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

Biztonságos másolási program. (Fájlok hálózaton keresztüli másolására szolgál.)

showmapshowslabsqlite3

SQLite adatbázisok adminisztrálására szolgál.

strace

System trace parancs – segítségével megnézheti, hogy egy program milyen rendszerhívásokat hajt végre.

su

Héj indítása root jogosultságokkal.

#Az Android Shell verziói

  • Az Android 1.0 olyan héjat használt, amely nem rendelkezett tab-kiegészítéssel vagy előzmények szerkesztésével.
  • Az Android 2.3 hozzáadta az előzmények szerkesztését. A fel-le nyilakkal például szerkeszthetjük a korábbi parancsokat.

#Más héjak

#Busybox

A Busybox egy olyan program, amely egy héjat és egy sor parancssori segédprogramot tartalmaz. Keress rá az Android Marketben a “Busybox” kifejezésre, és találsz néhány telepíthető verziót. A Busybox shell tartalmaz lapkakiegészítést és előzmények szerkesztését. A Busybox for Android egyes változatai nem igénylik a telefon rootolását.

#Debian segédprogramok

A teljes Debian shell és segédprogramok telepíthetők. (A Debian egy népszerű asztali Linux disztribúció.) Nem ismerem a részleteket, és lehet, hogy ehhez “rootolt” telefonra van szükség. Próbálj meg rákeresni az interneten a “Debian Android install” kifejezésre.

#Custom ROMs

Néhány custom ROM saját héjjal és segédprogramokkal rendelkezik. Ha egyéni ROM-ot használ, nézze meg a dokumentációját, hogy megtudja, mi áll rendelkezésére.

Similar Posts

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.