Witam. W tym tutorialu chciałbym przedstawić podstawowe komendy powłoki systemowej shell. Jak się poruszać po systemie android oraz jak się z nim komunikować poprzez interfejs adb shell.
Czym jest shell :
Powłoka systemowa (ang. shell) – program komputerowy pełniący rolę pośrednika pomiędzy systemem operacyjnym lub aplikacjami a użytkownikiem, przyjmując jego polecenia i „wyprowadzając” wyniki działania programów.
ADB (Android Debug Bridge) jest wymagane do poprawnej komunikacji komputer - telefon bez tego nie uda nam się połączyć telefonu z komputerem. Ale nie o tym ten poradnik dlatego zainteresowanych odsyłam do tego wątku [Poradnik] Jak zainstalować i korzystać z ADB (Android Debug Bridge) w nim się dowieszjak zainstalować poprawnie sterowniki ADB na komputerze.
Jeśli wszystko poprawnie zainstalowałeś to po uruchomieniu shell'a komendą
adb shell
Powinieneśzobaczyć mniej więcej taki widok w oknie terminala :
Spoiler
Dlaczego mniej więcej? Bo shell@kiwito w pierwszej części nazwa użytkownika (w tym wypadku shell) oraz nazwa hosta telefonu (w tym wypadku kiwi) i u ciebie w drugiej części będzie się na pewno różnić.
Ok jesteśmy zalogowani na telefonie jako shell ale gdzie właściwie jesteśmy? Do tego użyjemy pierwszej komendy :
pwd
pwd - (print name of current/working directory)Wypisanie nazwy bieżącego katalogu roboczego.
Spoiler
Znajdujemy się w głównym katalogu roboczym "/" (root) jest to najwyższy katalog systemu android i "wyżej" już się wyjść nie da.
Zobaczmy co tam się znajduje:
ls
ls - (list directory contents)Wypisanie informacji o PLIKACH (domyślnie w katalogu bieżącym).
Spoiler
Ta lista wielu osobomrozjaśni gdzie się znajdują. Widać tu katalogi /system, /data, /sdcard to właśnie tu w głównym katalogu "/" są zamontowane poszczególne partycje naszego telefonu. I tutaj będziemy za każdym razem domyślnie logowani po komendzie "adb shell".
Przejdźmy może do katalogu /system zrobimy to komendą :
cd /system
cd - (change the current working directory to a specific Folder)Zmiana bieżącego katalogu powłoki.
oraz wy listujmy zawarte tam pliki i katalogi komendą ls:
Spoiler
Wróćmy może jeszcze do komendy "cd /system" co się właściwie stało? Wywołaliśmy program "cd" a jako "parametr" podaliśmy mu katalog "/system".
Czyli wygląda to tak:
[program] [opcja]
Właśniekażdy program jak "cd", "ls" itd. posiada opcje ale nie da się tych opcji "zaptaszkować" w menu, bo te programy nie posiadają interfejsu graficznego.
Dlatego stosuje się komendy z parametrem lub nawet z kilkoma parametrami. A oddzielamy je zwykłą pojedynczą spacją.
Ktoś sprytny zada pytanie czy trzeba było przechodzić do katalogu system żeby wy listować tam pliki? Oczywiście że nie bo wystarczyła by komenda
ls /system
Spoiler
Wróćmy do komendy "cd". Wchodzimy do katalogu komendą
cd /system
A jak z niego wychodzimy?
cd ..
Dwie kropki cofają nas o jeden katalog wyżej.
cd /
Wskazujemy główny katalog i tam zostaniemy przeniesieni
Możemy też przejść od razu dużo głębiej
cd /system/app
i wrócić
cd ../..
albo przejść do katalogu wyżej i wejść do innego
cd ../usr
Jeszcze jedna zasada. Jeśli w bieżącym katalogu jest katalog do którego chcemy się udać to nie trzeba prawego ukośnika.
Czyli będąc w głównym katalogu "/" wystarczą takie komendy
cd system/app
nie trzeba
cd /system/app
Jeśli podajemy adres katalogu i zaczynamy go od prawego ukośnika to zawsze musimy podać pełną ścieżkę od katalogu głównego "/" a nie od tego w którym się aktualnie znajdujemy.
Jeśli nie wiemy gdzie aktualnie się znajdujemy wystarczy komenda "pwd".
Trochę treningu i poruszanie się po katalogach będzie szybkie iintuicyjne.
Przejdźmy dalej.
Stwórzmy plik.
Na początek przejdź do katalogu sdcard
cd /sdcard
Pusty plik stworzymy komendą
touch Plik.txt
lub
> Plik.txt
Spoiler
Poznajmy jeszcze jedną komendę:
echo
echo - (display a line of text) Wyświetla wiersz tekstu
Spoiler
Jak widać komenda "echo" wyświetla nam tekst jaki podamy w cudzysłowiu. Spróbujmy ten tekst przekierować do pliku:
echo "Witaj Świecie" > Plik.txt
Spoiler
Spoiler
Znak większości ">" należy tu traktować jako strzałkę która przekierowuje dane z komendy echo do pliku.
Ale na słowo nie musicie mi wierzyć. Sprawdźmy jaka jest zawartość Plik.txt następną komendą:
cat
cat - (concatenate files and print on the standard output)PLIK lub połączenie PLIKÓW wysyłane na standardowe wyjście.
cat Plik.txt
Spoiler
Jak widać zawartość Plik.txt to "Witaj Świecie" czyli pełny sukces.
Teraz trochę o tych przekierowaniach.
Komenda
echo "Witaj Świecie" > Plik.txt
Stworzy nowy plik. Jeśli plik o tej nazwie istniał zostanie on skasowany a w jego miejsce powstanie nowy. Jeśli chcemy dopisać dane do istniejącego pliku trzeba użyć komendy
echo "Witaj Świecie" >> Plik.txt
Podwójny znak większości ">>" nie skasuje istniejącego pliku tylko dopisze dane w nowej linii.
I kolejne przekierowanie
ls /system > Plik.txt
Dane z komendy "ls /system" możemy zapisać do pliku
Spoiler
W ten sposób można przekierować dane do pliku z wielu komend w shell'u.
Myślę że ta ilość wiedzy do opanowania wystarczy na cz.1 (podstawy) w cz.2 będzie już trudniej 😉
Pozdrawiam i zachęcam do dyskusji.