Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję

Kurs Raspberry Pi – #8 – praca w konsoli, podstawy Linuksa

Podstawy 07.01.2018 Piotr, Damian

Zdecydowana większość czytelników korzysta z Windowsa i przyzwyczajona jest do środowisk graficznych. W przypadku Linuksa ważniejsza jest jednak praca z poziomu konsoli tekstowej.

Pora na przyspieszony kurs podstaw Linuksa. Najważniejsze komendy, funkcje oraz programy, które są konieczne do pracy z Raspberry Pi.

Nawigacja serii artykułów:
« poprzednia część

Kup zestaw elementów i zacznij naukę w praktyce! Przejdź do strony dystrybutora »

Programy tworzone z myślą o Windowsie w większości bazują głównie na interfejsie graficznym. W przypadku Linuksa narzędzia graficzne są niejako dodatkiem. Mogą być mniej dopracowane oraz bardziej awaryjne niż proste programy dostępne z konsoli tekstowej. Co więcej „okienka” po każdej aktualizacji programu mogą wyglądać inaczej. W trybie tekstowym nie ma miejsca na takie zmiany, więc nauka obsługi programów jest „ponadczasowa”.

Czym jest shell oraz bash?

Kurs jest dedykowany dla osób, które zaczynają przygodę z malinką i Linuksem, więc niektóre określenia mogą być nowe. Na początku „dwa słowa” odnośnie używanych pojęć. Większość użytkowników Windowsa spotkała się na pewno z aplikacją Wiersz polecenia. Narzędzie to pozwala na wprowadzanie i wykonywanie poleceń w trybie tekstowym:

Okno „Wiersz polecenia” znane z systemów Windows.

Miejsce, w którym na Linuksie wprowadzamy polecenia i uruchamiamy skrypty to tzw. shell. Jest on również czasami nazywany powłoką. Dostępne są różne wersje shella. Podstawowa wersja to sh, nowsza csh, a prawdopodobnie najbardziej popularna to bash. Oczywiście jest ich więcej, przykładowo system Ubuntu domyślnie używa dash-a.

Logo projektu BASH.

Podstawowe polecenia działają niezależnie od wersji shella. Jednak im rozwiązanie jest nowsze, tym więcej ma zaszytych możliwości.

Gdy łączymy się z Raspberry Pi za pomocą PuTTy to wprowadzane polecenia są wykonywane właśnie przez shell.

Jak sprawdzić wersję powłoki?

Dla testu po zalogowaniu możemy wydać polecenie export. Zobaczymy wtedy zmienne, które są ustawione w naszej powłoce. Zmienna SHELL zawiera typ shell-a, jak widać w tym przypadku jest to popularny bash.

Wynik polecenia export na Raspberry Pi.

Czym jest terminal/konsola?

Kiedyś do pracy z systemem używany był terminal, czyli urządzenie wyposażone w monitor i klawiaturę. Komputer był wielkości szafy i stał w oddzielnym (klimatyzowanym) pomieszczeniu.

Historia lubi się powtarzać i w naszej sytuacji mamy powrót do takiej konfiguracji. Komputerem jest mała malinka, a komputer PC (lub laptop) spełnia rolę terminala. Nazwa terminal odnosi się do elektroniki, oznacza końcówkę połączenia, przy której siedzi operator. Inna nazwa to konsola – tutaj jako „mebel” z klawiaturą i monitorem. Nazwy te używane są często zamiennie.

Zestaw do kursu Raspberry Pi

Gwarancja pomocy na forum dla osób, które kupią poniższy zestaw!

Elementy niezbędne do wykonania wszystkich ćwiczeń z kursu podstaw Rasberry Pi dostępne są w formie gotowych zestawów!


Kup w Botland.com.pl »

Dostęp do terminala w Raspberry Pi

W naszym przypadku jesteśmy połączeni z Raspberry Pi zdalnie przez ssh, więc praktycznie od razu „z automatu” korzystamy z terminala. Aby móc pracować za pomocą konsoli nie musimy do końca rezygnować z trybu graficznego. Jeśli podłączyliśmy naszą malinkę do monitora, możemy uruchomić emulator terminala. Podobnie będzie w przypadku połączenia przez VNC.

Informacje o pracy w trybie graficznym zostały opisane w 4. części kursu, a zdalne połączenie z użyciem VNC zostało omówione w 7. części kursu.

Widok konsoli podczas połączenia VNC.

Niezależnie od wybranego typu terminala sposób naszej pracy będzie taki sam. To pokazuje nam pierwszą zaletę takiego podejścia, czyli jego uniwersalność.

Pierwsze kroki – zmiana hasła

W jednym z poprzednich odcinków zmienialiśmy hasło dostępu w raspi-config. Jest to program, który spotkamy tylko na malince. Podczas standardowej pracy z Linuksem operacją taką możemy przeprowadzić poleceniem:

Po wprowadzeniu komendy i zatwierdzeniu jej klawiszem Enter, system poprosi nas o podanie aktualnego hasła, a następnie będziemy musieli dwa razy wpisać nowe hasło.

Podczas wprowadzania haseł nie pojawiają się na ekranie żadne znaki (nawet gwiazdki), co jest dodatkowym zabezpieczeniem.

Aktualizacja programów

Oprogramowanie na Linuksa jest aktualizowane bardzo często. Warto pobierać nowe wersje systemu operacyjnego oraz programów, chociażby ze względu na bezpieczeństwo. Znalezione luki w zabezpieczeniach są szybko łatane, ale jeśli nie będziemy aktualizować systemu, możemy być narażeni na ataki.

Przed aktualizacją musimy pobrać informacje o najnowszych wersjach. Służy do tego polecenie:

Jak już wiemy z poprzednich artykułów sudo to odpowiednik opcji „Uruchom jako administrator” znanej z systemu Windows. Apt jest menedżerem programów używanym w systemie Debian i pochodnych, czyli również w naszym Raspbianie.

Kolejny krok to instalacja znalezionych aktualizacji:

Po chwili zostaniemy poproszeni o potwierdzenie aktualizacji. Musimy więc wpisać literkę y (od ang. yes) i nacisnąć Enter. Rozpocznie się pobieranie plików i wgrywanie aktualizacji.

Cały proces może zająć nawet ponad 30 minut! Wszystko zależy od liczby aktualizacji oraz dostępnego łącza.

Istnieje również opcja aktualizacji systemu z użyciem polecenia sudo apt dist-upgrade, jednak może ona generować pewne konflikty. Z funkcji tej można korzystać, gdy jesteśmy już dobrze obeznani z systemem i wiemy, co dokładnie dzieje się podczas aktualizacji.

Jak sprawdzić listę zainstalowanych programów na Raspberry Pi?

Możemy sprawdzić jakie programy są już zainstalowane wydając poniższe polecenie:

Dokumentacja systemowa – man

Gdybyśmy chcieli dowiedzieć się więcej o możliwościach programu apt, z pomocą przyjdzie nam oczywiście Google oraz dokumentacja systemowa, którą zobaczymy po wywołaniu polecenia:

Warto zapamiętać polecenie man (od ang. manual). Wystarczy, że napiszemy po nim komendę lub funkcję, która nas interesuje, a otrzymamy dostęp do dokumentacji. Widok ten zamkniemy naciskając klawisz q.

Pomoc systemowa dla polecenia apt.

Na ekranie widoczny jest tylko fragment dokumentacji. W celu przewijania zawartości okna możemy korzystać z klawiszy strzałek.

Co ciekawe, można tez oczywiście sprawdzić jaka jest dokumentacja dla polecenia man, w tym celu wpisujemy man man:

Sprawdzanie dokumentacji dla polecenia man.

Taki sposób podglądania dokumentacji jest szczególnie przydatny, gdy chcemy użyć danego polecenia, a zapomnieliśmy z jakimi argumentami należy je wywoływać.

Odpowiednik „Menedżera zadań” na Raspberry Pi

Zacznijmy od sprawdzenia jak działa program top. Wpisujemy jego nazwę w konsoli i Enter. Wyświetla on listę uruchomionych programów (procesów) oraz wykorzystanie przez nie zasobów. Jest to odpowiednik menedżera zadań z Windowsa. Aby wyjść z programu należy wcisnąć q.

Polecenie top, czyli „Menedżera zadań” na Raspberry Pi

Instalacja nowego „Menedżera zadań”

Dostępna jest też bardziej rozbudowana wersja „Menedżera zadań” o nazwie htop. Instalujemy ją wydając poleceniem:

Programy instaluje się właśnie w ten sposób – zamiast htop możemy podać dowolny inny dostępny pakiet.

Po krótkiej instalacji htop powinien być już dostępny. Uruchamiamy go wpisując htop i wciskając Enter. Pierwsze, co rzuca się w oczy to kolorowy ekran. Zdecydowanie ciekawsze jest jednak to, co widzimy w lewym górnym rogu. Możemy tam podejrzeć użycie każdego rdzenia Raspberry Pi:

Polecenie htop, czyli lepsza wersja „Menedżera zadań” na Raspberry Pi.

Usuwanie programów

Jeśli uznamy, że jakiś program nie jest już nam potrzebny to możemy go odinstalować jednym z dwóch poleceń. Pierwsze odinstalowuje pakiet oprogramowania, drugie usuwa program oraz wszystkie jego pliki konfiguracyjne.

Podczas usuwania programu zostaniemy poproszeni o potwierdzenie tej operacji:

Potwierdzenie usunięcia programu – wpisujemy „y” i klikamy Enter.

System plików systemów z rodziny Linuks

Zanim na dobre zaczniemy pracę, musimy poznać  bliżej system plików Linuksa. W systemach Unix-owych stosowane jest podejście, że wszystko jest plikiem – więc zaznajomienie z obsługą plików ma ogromne znaczenie.

Pliki będą również kluczowe podczas podłączania dodatkowej elektroniki np. diod, przycisków oraz czujników!

Linux używa jednego drzewa katalogów. Microsoft skopiował to rozwiązanie wprowadzając opcję „Mój komputer”, a dawniej każdy dysk żył własnym życiem (C:, D:, E:, itd). W przypadku Linuksa główny katalog oznaczany jest pojedynczym znakiem / (slash). Jest to korzeń drzewa katalogów, więc nazywa się root.

Wcześniej widzieliśmy drzewo katalogów używając WinSCP:

Widok katalogów z WinSCP.

Sprawdzenie aktualnego katalogu

Po zalogowaniu, domyślnym katalogiem jest katalog domowy /home/pi. Aby się o tym przekonać możemy wykonać polecenie pwd, które wypisze aktualny katalog (pwd – print working directory):

Sprawdzenie zawartości katalogu

Aby sprawdzić zawartość katalogu możemy wykorzystać polecenie ls. Oczywiście wszystkie informacje związane z tym poleceniem możemy otrzymać dzięki man ls. Szkoda czasu, aby zagłębiać się teraz we wszystkie dostępne opcje. Zajmijmy się tymi najpopularniejszymi:

  • ls – wyświetla listę plików w lokalnym katalogu
  • ls -l – wyświetla tzw. długą listę, z uprawnieniami dostępu do każdego pliku i katalogu
  • ls -a – wyświetla pliki ukryte (o nazwie zaczynającej się od kropki)
  • ls -1 – lista plików w jednej kolumnie
  • ls <ścieżka> – np. ls / , pokazuje pliki w podanym folderze

Miejsca które warto „zobaczyć”:

  • ls / – katalog główny
  • ls /dev – zawiera sterowniki urządzeń, przykładowo /dev/ttyAMA0 to port szeregowy do którego możemy podłączyć naszą przejściówkę UART-USB
  • ls /home – tutaj znajdują się katalogi użytkowników (każdy ma własny podkatalog)
  • ls /root – katalog administratora, nie mamy do niego dostępu (ale warto spróbować)
  • ls /proc – wirtualny katalog z informacjami o systemie
  • ls /sys – nowszy odpowiednik /proc
  • ls /boot – tutaj znajdziemy pliki niezbędne do startu systemu oraz pliki konfiguracyjne, są one widoczne również dla Windowsa (gdy włożymy kartę SD do PC)

Jest jeszcze dużo innych ciekawych miejsc w systemie – zajmiemy się nimi, gdy będą potrzebne!

Uzupełnienie nazw, zapamiętywanie poleceń

Używając konsoli możemy skorzystać z uzupełniania nazw. To tak jak w podczas programowania np. za pomocą Visual Studio, czy Eclipse. Piszemy początek nazwy, naciskamy tabulator i konsola uzupełni nazwę (o ile będzie to jednoznaczna i poprawna nazwa). Możemy napisać ls /pr i nacisnąć tab  – shell sam uzupełni nazwę do ls /proc/

Uzupełnianie poleceń za pomocą tabulatora.

Historia wydawanych poleceń jest zapamiętywana. Do poprzednich można wracać używając kursorów. Strzałka w górę to poprzednie polecenie (w dół następne jak już się cofniemy). Dodatkowo strzałki w lewo i w prawo pozwalają na przesuwanie kursora i modyfikację poleceń. Naciskając Enter wykonamy polecenie ponownie.

Podpowiadanie poprzednich poleceń (po wciśnięciu strzałki w górę).

Listę wszystkich wydanych wcześniej poleceń zobaczymy wpisując polecenie:

Podgląd plików

Poznaliśmy już ls, które pokazuje zawartość katalogu. Teraz zobaczymy jak odczytać zawartość pliku. Służy do tego polecenie cat <nazwa pliku>. Napiszmy więc:

Jak widzimy ten „plik” zawiera informację o pamięci dostępnej w systemie. Jest to plik wirtualny, nie znajdziemy go na  SD. W Linuksie wszystko jest plikiem, więc możemy z niego odczytać informacje jak z normalnego pliku. To dużo wygodniejsze niż szukanie w menedżerach urządzeń (chociaż to pewnie sprawa gustu).

Podgląd pliku /proc/meminfo.

Sprawdzenie wersji posiadanego systemu, dostępnych procesorów

Wersję zainstalowanego systemu sprawdzimy wpisując polecenie:

Kolejny plik, który warto podejrzeć to cat /proc/cpuinfo. Dzięki niemu dowiemy się ile oraz jakich procesorów posiada Raspberry Pi:

Informacja o dostępnych układach.

Przy okazji odkryliśmy pewną wadę polecenia cat. Jeśli plik zawiera więcej danych wszystkie są wyświetlane na raz. Jeśli chcielibyśmy spokojnie przejrzeć całą zawartość pliku to najlepiej użyć komendę less. Pozwala ona na zatrzymanie wyświetlania po każdej stronie (oraz powrót do poprzedniej).

Łączenie kilku poleceń – less w praktyce

W systemach „uniksopodobnych”, do których zalicza się Linux popularne jest łączenie kilku prostych poleceń w całe zadania. Kolejne polecenia jako dane wejściowe przyjmują to co wypisuje poprzedni program. Połączymy więc wyjście cat z wejściem less, tak żeby mieć czas na przeczytanie treści:

Znak pionowej linii | służy właśnie do łączenia poleceń. Jest to bardzo wygodne i potężne narzędzie. Chociaż na początek może na takie nie wyglądać. W przypadku cat i less można też po prostu napisać less /proc/cpuinfo, ale użycie | warto zapamiętać na przyszłość.

Jak dokładnie korzystać z less? Informacje na ten temat znaleźć można oczywiście po wywołaniu polecenia man less.

Przekierowanie wyjścia

Istnieje również możliwość przekierowania wyjścia, czyli tego co pojawia się na konsoli do pliku. Wypróbujemy polecenie tree, które wyświetla drzewo katalogów. Poniższa komenda sprawi, że wyświetli się drzewo katalogów (zaczynając od korzenia) z ograniczeniem do 1 poziomu.

Działanie polecenia w praktyce.

Skoro jeden poziom działa, czemu nie sprawdzić co będzie dla dwóch: tree / -L 2. Niestety tutaj jest gorzej, ponieważ informacji będzie strasznie dużo. Wiemy jak połączyć poleceni z less, dzięki temu będziemy mogli przejrzeć dane ekran po ekranie. Jednak co gdybyśmy chcieli np. wysłać komuś nasze drzewo katalogów np. z prośbą o pomoc? Oczywiście można zrobić 100 zrzutów ekranu lub nagrać filmik… Jednak najłatwiej będzie przekierować wyjście polecenia do pliku.

Służy do tego operator (znak większości):

To polecenie wykona się dużo szybciej – wyświetlanie danych zajmuje więcej czasu niż zapis do pliku. Teraz możemy użyć ls i zobaczyć, że w bieżącym katalogu jest nowy plik: drzewko.txt. Jest całkiem spory – 27KB to dużo tekstu (dawniej notatnik w Windows przy takich plikach się po prostu zawieszał). 

Ten plik możemy wypisać poleceniem cat, ale nie będzie to zbyt wygodne. Można go również pobrać za pomocą WinSCP i podejrzeć na komputerze w edytorze tekstu. W następnym artykule sprawdzimy jak wykorzystać do tego edytory tekstu dostępne w konsoli.

Kopiowanie plików z użyciem WinSCP zostało opisane w poprzedniej części kursu »

Jak sprawdzić aktualną temperaturę procesora?

Na koniec jeszcze krótkie polecenie, dzięki któremu sprawdzimy czy nasza płytka nie jest zbyt gorąca. Aktualne wskazania temperatury możemy sprawdzić poleceniem:

Po jego wywołaniu otrzymamy aktualny pomiar:

Aktualna temperatura Raspberry Pi.

Podsumowanie

Omówiliśmy pierwszą część najważniejszych podstaw pracy w konsoli. Opisane tutaj polecenia wykorzystuje się praktycznie cały czas, więc trzeba znać je na pamięć. Warto eksperymentować teraz jak najwięcej, bo ewentualne szkody będą małe – w najgorszym wypadku wystarczy wgrać nowy system na kartę.

W następnym artykule zajmiemy się dalszymi aspektami pracy z Linuksem. Będzie między innymi mowa o konsolowych edytorach tekstu oraz o operacjach na plikach i katalogach. Omówimy też system uprawnień do plików, który na początku może wydawać się mało intuicyjny.

Kup zestaw elementów i zacznij naukę w praktyce! Przejdź do strony dystrybutora »

Autor: Piotr Bugalski
Testy: Piotr Adamczyk
Redakcja: Damian Szymański

Powiadomienia o nowych, darmowych artykułach!

Komentarze

Tbomek

21:50, 07.01.2018

#1

Super artykuł, już nie moge się doczekać jego kolejnej części.

Treker
Administrator

23:02, 07.01.2018

#2

Tbomek, miło słyszeć, że się podoba :)

Ubuludzik

13:02, 16.01.2018

#3

Garść uwag do 8 części kursu:

- https://sjp.pwn.pl/poradnia/haslo/terminal;7535.html ; - "Dostęp do terminalu..."

- "Jeśli podłączyliśmy naszą malinkę do monitora, możemy uruchomić emulator terminala." ale możemy też uruchomić tty1 naciskając Ctrl+Alt+F1 ;

- emulator możemy też uruchomić skrótem Ctrl+Alt+T

- natomiast jak już uruchomiliśmy emulator terminala to dobrze wiedzieć, że "kulturalnie" wychodzimy z niego przez wpisanie exit lub naciśniecie Ctrl+D ;

- "Listę wszystkich wydanych wcześniej poleceń zobaczymy wpisując polecenie:" history, warto by wspomnieć, że history -c kasuje/czyści historię naszych działań w konsoli.:)

-jeżeli mamy "spolonizowany" system to część komunikatów będzie po polsku.

Ogólnie super wyłożone podstawy, tak trzymać.

Treker
Administrator

0:26, 17.01.2018

#4

Ubuludzik, dzięki za miłe słowa na temat kursów i wskazówki na temat skrótów oraz dodatkowych poleceń. Na pewno przydadzą się innym forumowiczom ;)

danielo165

19:11, 21.01.2018

#5

Kurs mega, bardzo mi się podoba obsługa z poziomu terminalu. Dzięki !

Treker
Administrator

20:22, 21.01.2018

#6

danielo165, witam na forum! Super, miło słyszeć, że się podoba - w tym tygodniu będzie kolejna część :)

Zobacz powyższe komentarze na forum

FORBOT Damian Szymański © 2006 - 2018 Zakaz kopiowania treści oraz grafik bez zgody autora. vPRsLH.