Skocz do zawartości
maxprzemo

adb shell cz.1 (podstawy)

    Rekomendowane odpowiedzi

    maxprzemo

    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 :

    Cytuj

    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ę dowiesz jak 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


    Zrzut ekranu z 2016-12-25 13-19-33.png

     

    Dlaczego mniej więcej? Bo shell@kiwi to 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

    Zrzut ekranu z 2016-12-25 13-21-18.png


    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

    Zrzut ekranu z 2016-12-25 13-21-35.png


    Ta lista wielu osobom rozjaś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

    Zrzut ekranu z 2016-12-25 15-37-18.png

     

    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śnie każ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

    Zrzut ekranu z 2016-12-25 16-10-26.png


     

    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 i intuicyjne.

     

    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

    Zrzut ekranu z 2016-12-25 17-09-14.png


     

     

     Poznajmy jeszcze jedną komendę:

    echo

    echo - (display a line of text) Wyświetla wiersz tekstu

     

     

    Spoiler

    Zrzut ekranu z 2016-12-25 17-07-47.png

     


    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

    Zrzut ekranu z 2016-12-25 17-23-20.png

     

     

    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

    Zrzut ekranu z 2016-12-25 17-32-23.png

     

     

    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

    Zrzut ekranu z 2016-12-25 17-49-24.png


    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.

     

    • Lubię to! 13

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Lysolus

    @maxprzemo Moim zdaniem w podstawach powinna się także znaleźć instrukcja jak przenosić, kopiować i usuwać pliki. Tak czy siak tutek dobry :)

    • Lubię to! 1

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x