Wykonując ćwiczenia z poprzedniej części kursu można przekonać się, że praca z poziomu konsoli nie jest trudna. Pora na kolejną dawkę podstaw Linuksa, które przydają się na Raspberry Pi.
Tym razem mowa między innymi o edycji plików, kopiowaniu oraz uprawnieniach. Znajdzie się też coś dla fanów krów.
Jednym z poprzednio omówionych poleceń było tree / -L 2 > drzewko.txt. Za jego pomocą wyeksportowaliśmy drzewo katalogów do pliku drzewko.txt. Do tej pory najłatwiej było zobaczyć jego zawartość na komputerze PC korzystając z WinSCP. W praktyce podczas pracy z Linuksem bardzo często trzeba podejrzeć i edytować pliki bezpośrednio na Raspberry Pi.
Edycja plików tekstowych na Raspberry Pi - nano
W konsoli dostępnych jest kilka naprawdę wygodnych edytorów - chociaż ich wygląd może na początku odstraszać. Najprostszy w użyciu jest nano. Jest on już domyślnie zainstalowany, więc od razu możemy otworzyć wspomniany wcześniej plik drzewko.txt w edytorze:
Shell
1
nano drzewko.txt
Otworzy się prosty edytor tekstu z załadowanym plikiem. Możemy go przeglądać i edytować. Po pliku poruszamy się za pomocą strzałek. Widoczny jest również kursor (zielony prostokąt).
Edytor jest dość intuicyjny w użyciu. Wszystkie operacje wykonujemy za pomocą skrótów, które wypisane są na dole okna. To co na początek może sprawiać pewną trudność, to zapisywanie pliku i wychodzenie z edytora. Operacje te możemy wykonać za pomocą skrótu CTRL+X.
Symbol ^ przy skrótach oznacza klawisz CTRL, czyli przykładowo ^X oznacza kombinację CTRL+X.
Efekt działania CTRL+X.
Warto coś zmienić w pliku i go zapisać. Jak widać po wciśnięciu kombinacji CTRL+X zostaniemy poproszeni o potwierdzenie czy chcemy zapisać zmiany. Wpisujemy y i wciskamy Enter. Dobrym ćwiczeniem będzie sprawdzenie przez WinSCP, czy zmiany są faktycznie zapisywane.
Gotowe zestawy do kursów Forbota
Komplet elementów Gwarancja pomocy Wysyłka w 24h
Elementy niezbędne do wykonania wszystkich ćwiczeń z kursu podstaw Rasberry Pi dostępne są w formie gotowych zestawów!
Masz już zestaw? Zarejestruj go wykorzystując dołączony do niego kod. Szczegóły »
Tworzenie nowego pliku - nano
Jeśli chcielibyśmy utworzyć nowy plik, to wystarczy włączyć edytor podając jako argument nazwę nowego pliku, na przykład: nano test.txt. Po wydaniu tej komendy otworzy się pusty edytor, a po wprowadzeniu zawartości będziemy mogli zapisać plik od razu pod podaną wcześniej nazwą.
Zapisywanie nowego pliku test.txt
Kopiowanie i wklejanie tekstu
Bardzo często trzeba wkleić jakiś tekst "z Windowsa" do edytora tekstu na Raspberry Pi lub do konsoli. Może to być w przyszłości kawałek programu lub fragment ustawień. Znane i popularne kombinacje CTRL+C oraz CTRL+V nie będą tutaj pomocne.
Jeśli chcemy skopiować coś z Windowsa do nano (lub bezpośrednio do linii poleceń), to najpierw standardowo zaznaczamy tekst na PC i kopiujemy go do schowka. Następnie przechodzimy do okna PuTTy z naszą malinką i zamiast CTRL+V klikamy prawym przyciskiem myszy:
Zaznaczamy tekst i kopiujemy: CTRL+C.
Wklejamy prawym przyciskiem myszy
Jeśli chcemy postąpić odwrotnie, czyli skopiować coś z RPi do Windowsa to zaznaczamy tekst myszką, a następnie klikamy raz lewym przyciskiem myszy (gdziekolwiek w obrębie terminala). Skopiowany fragment tekstu będziemy mogli wkleić w Windowsie za pomocą CTRL+V.
Oczywiście są jeszcze inne edytory, ale naszym zdaniem są trudniejsze na początek. Wiele osób używa i chwali sobie emacs oraz vi. Nazwa ostatniego pochodzi o visual, ale miłośnicy Visual Studio raczej będą rozczarowani...
Wyświetlanie tekstu - echo
Echo wypisuje podany parametr na ekranie, przykład użycia:
Shell
1
echo"Hello world"
Oczywiście przy takim wykorzystaniu polecenie nie jest zbyt "widowiskowe". Jego zalety są dopiero widoczne w połączeniu z innymi mechanizmami (o czym będzie za chwilę).
Działanie echo na Raspberry Pi w praktyce.
Operator dopisania do pliku
Poprzednio wspomnieliśmy o operatorze przekazania do pliku (>) warto omówić kolejny, bardzo do niego podobny, czyli operator dopisania do pliku (>>). Ten operator również przekierowuje wyjście, ale tym razem dopisuje je na końcu wskazanego pliku!
Sprawdźmy jak operator ten działa w połączeniu z wcześniejszym echo:
Shell
1
echo"Hello world">>drzewko.txt
Echo wypisuje podany parametr na ekranie, ale po przekierowaniu wynik trafia do pliku. Teraz na końcu pliku drzewko.txt powinniśmy znaleźć nowy tekst.
Podgląd końcówki pliku - tail
Aby sprawdzić, czy powyższy operator dopisania do pliku zadziałał poprawnie możemy wyświetlić cały plik drzewko.txt lub otworzyć go w edytorze (np. nano). Istnieje jednak polecenie tail, które jest wręcz stworzono do tego zadania. Za pomocą tej komendy możemy podejrzeć kilka ostatnich linii wybranego pliku. W tym celu wpisujemy:
Shell
1
taildrzewko.txt
W efekcie uzyskamy dokładnie to co chcieliśmy, czyli podgląd na końcówkę pliku. Jak widać "Hello world" zostało dopisane do poprzedniej zawartości pliku.
Polecenie tail w praktyce - podgląd końca pliku.
Różnica między > oraz >>
Dla porównania, użyjemy teraz wcześniej poznany operator przekazania do pliku, czyli:
Shell
1
echo"Hello world">drzewko.txt
Nawet jeśli wypiszemy cały plik używając cat, znajdziemy już tylko jeden wiersz z "Hello world", które zastąpiło całą poprzednią zawartość pliku.
Nadpisanie zawartości pliku.
Warto więc zapamiętać, że operator > nadpisuje cały plik tym, co zostanie przekazane. Natomiast operator >> dopisuje przekazane informacje na końcu pliku!
Kopiowanie, przenoszenie i usuwanie plików
Są operacje, które wykonujemy na plikach bardzo często, niezależnie od wybranego systemu. Mowa oczywiście o kopiowaniu, przenoszeniu i usuwaniu plików.
W przypadku Linuksa do kopiowania służy polecenie cp (od copy). Przykładowo, aby skopiować plik drzewko.txt i utworzyć nowy plik drzewko2.txt wydamy polecenie:
Shell
1
cpdrzewko.txtdrzewko2.txt
Kopiowanie pliku za pomocą komendy cp.
Mamy więc dwa identyczne pliki! Możemy zmienić nazwę nowego pliku lub przenieść go w inne miejsce za pomocą jednego polecenia mv (skrót od move). Najpierw zmiana nazwy - podajemy plik źródłowy, a później nazwę docelową:
Shell
1
mvdrzewko2.txttree.txt
Zmiana nazwy pliku za pomocą mv.
Ta sama komenda jest przydatna, gdy chcemy przenieść plik do innego katalogu. Wtedy po nazwie pliku podajemy docelową lokalizację. Przykładowo:
Shell
1
mvtree.txtDesktop/
Plik został przeniesiony do katalogu Desktop (co sprawdzimy za chwilę):
Przenoszenie plików do innego katalogu.
Zbędne pliki możemy usuwać za pomocą polecenia rm (od remove):
Shell
1
rmtest.txt
Usuwanie plików z Raspberry Pi.
Poruszanie się po katalogach - cd
Do poruszania się między katalogami służy polecenie cd (od change directory). Możemy teraz przejść do katalogu Desktop i sprawdzić, czy przeniesiony wcześniej plik faktycznie tam jest.
Shell
1
cdDesktop
Po przejściu do katalogu korzystamy z ls i widzimy, że plik został przeniesiony:
Zmiana katalogów na Raspberry Pi.
Powrót do domyślnej lokalizacji najprościej uzyskać wpisując cd bez parametrów:
Shell
1
cd
Operacje na katalogach
Wróćmy więc do naszego katalogu domowego i sprawdźmy jak operować na samych katalogach. Do tworzenia nowych katalog służy polecenie mkdir (od make directory):
Shell
1
mkdirtest
Tworzenie nowego katalogu na Raspberry Pi.
Do zmiany nazwy można użyć polecenia mv (tak samo jak dla plików):
Shell
1
mvtestkatalog
Usuwanie pustych katalogów wykonujemy poleceniem rmdir (od remove directory):
Shell
1
rmdirkatalog
Gdybyśmy chcieli usunąć katalog z plikami, można użyć polecenia rm z opcją -r (od recursive):
Shell
1
rm-rkatalog
Przy korzystaniu z tej komendy należy być ostrożnym, aby przypadkiem nie usnąć zbyt dużo - "jedna spacja" może doprowadzić do katastrofy!
Uprawnienia dostępu do plików - chmod
W odróżnieniu od systemu Windows, Linux od początku miał rozbudowane opcje kontroli dostępu do plików. Każdy plik i katalog ma przypisanego właściciela oraz grupę.
Jeśli chcemy sprawdzić naszą nazwę użytkownika wpisujemy polecenie:
Shell
1
whoami
Natomiast o grupach, do których należymy dowiemy się za pomocą:
Shell
1
groups
Sprawdzenie nazwy użytkownika oraz grup.
Wyświetlając długą listę plików, zobaczymy właściciela oraz uprawnienia przypisane do plików:
Shell
1
ls-l
Lista plików z uprawnieniami.
Spróbujmy zrozumieć wyświetlone dane na przykładzie naszego pliku drzewko.txt.
Pierwszy znak to informacja o typie pliku. Myślnik (-) oznacza zwykły plik, d oznaczałoby katalog, a llink. Następne trzy znaki to uprawnienia właściciela pliku. Ich znaczenie jest następujące:
r - prawo do czytania pliku,
w - prawo do zapisu (zmian) pliku,
x - znak ten oznacza, że plik można uruchamiać. W Windowsie programy mają rozszerzenia exe, a w przypadku Linuska rozszerzenia nie mają znaczenia. Plik można uruchomić jak program, jeśli w uprawnieniach znajdziemy właśnie x.
Kolejne trzy znaki to uprawnienia dla użytkowników z tej samej grupy - jak widzimy w tym przypadku tylko do odczytu z pliku. Ostatnie trzy znaki to uprawnienia wszystkich pozostałych. Kolejne znaki to nazwa właściciela pliku (tutaj pi), a następne to grupa (tutaj pi, bo użytkownik może mieć własną grupę). Następnie widzimy datę utworzenia pliku oraz jego nazwę.
Dla porównania zobaczmy zawartość katalogu z ustawieniami systemowymi, czyli /etc:
Shell
1
ls-l/etc
Uprawnienia w katalogu systemowym.
Tutaj możliwość zmian ma tylko root, czyli administrator. Dlatego chcąc zmieniać te pliki musimy używać polecenia sudo, które działa jak "Uruchom jako administrator".
Zmiana uprawnień do plików - chmod
Do modyfikacji uprawnień służy polecenie chmod. Ma ono wiele opcji, więc najlepiej zapoznać się z jego dokumentacją wpisując man chmod.
Przykładowo wydając poniższe polecenie sprawimy, że nasz plik będzie tylko do odczytu:
Shell
1
chmod-wdrzewko.txt
Gdy uruchomimy go teraz w nano (nano drzewko.txt), to po edycji nie będziemy mogli go zapisać. Nie mamy prawa do zapisu, więc nie damy rady nadpisać zastanego pliku. Aby przywrócić tę możliwość musimy wcześniej wydać odpowiednie polecenie:
Shell
1
chmod+wdrzewko.txt
Jako parametr chmod możemy podać wartość liczbową zapisaną ósemkowo. Wtedy pierwsza cyfra będzie zawierała uprawnienia właściciela, druga grupy, trzecia pozostałych użytkowników. Wartość ustalamy przez sumowanie uprawnień, gdzie:
r = 4
w = 2
x = 1
Czyli gdybyśmy chcieli żeby nikt poza nami nie miał dostępu do pliku wpisujemy:
Shell
1
chmod600drzewko.txt
Ekstremalnie "ważna" umiejętność - cowsay
Na koniec w ramach ciekawostki mały, humorystyczny akcent. Linux to system, na który stworzono wiele przydatnych i rozbudowanych programów. Jednym z nich zdecydowanie (nie)jest cowsay, jednak każdy administrator systemu powinien znać go doskonale!
Instalujemy program:
Shell
1
sudo apt install cowsay
Od teraz mamy dostęp do potężnego narzędzia:
Shell
1
cowsay"FORBOT Pozdrawia!"
Dzięki któremu możemy sprawić, że dowolny tekst będzie "wypowiadany" przez krowę...
Działanie programu cowsay w praktyce,
Podsumowanie
Opisane polecenia to wstęp i podstawy używania Linuksa. Wystarczą one jednak do pracy na popularnym Raspberry Pi. W dalszych częściach kursu będziemy korzystać cały czas z konsoli, więc opisane tutaj polecenia staną się naszą codziennością. Osoby zainteresowane jeszcze lepszym opanowaniem trybu tekstowego znajdą w sieci wiele darmowych materiałów. Dostępne są również książki, np.: Linux. Komendy i polecenia.
Czy wpis był pomocny? Oceń go:
Średnia ocena 5 / 5. Głosów łącznie: 151
Nikt jeszcze nie głosował, bądź pierwszy!
Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...