KursyPoradnikiInspirujące DIYForum

Myślisz o drukarce 3D? Trwa promocja na popularne urządzenia. Sprawdź drukarki 3D w promocji »

Kurs Raspberry Pi – #9 – edytory tekstów, konsola cd.

Kurs Raspberry Pi – #9 – edytory tekstów, konsola cd.

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:

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.

Efekt działania 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!

Zamów w Botland.com.pl »

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

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:

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:

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.

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:

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:

tail drzewko.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.

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:

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.

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:

cp drzewko.txt drzewko2.txt
Kopiowanie pliku za pomocą komendy cp.

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ą:

mv drzewko2.txt tree.txt
Zmiana nazwy pliku za pomocą mv.

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:

mv tree.txt Desktop/

Plik został przeniesiony do katalogu Desktop (co sprawdzimy za chwilę):

Przenoszenie plików do innego katalogu.

Przenoszenie plików do innego katalogu.

Zbędne pliki możemy usuwać za pomocą polecenia rm (od remove):

rm test.txt
Usuwanie plików z Raspberry Pi.

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.

cd Desktop

Po przejściu do katalogu korzystamy z ls i widzimy, że plik został przeniesiony:

Zmiana katalogów na Raspberry Pi.

Zmiana katalogów na Raspberry Pi.

Powrót do domyślnej lokalizacji najprościej uzyskać wpisując cd bez parametrów:

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):

mkdir test
Tworzenie nowego katalogu na Raspberry Pi.

Tworzenie nowego katalogu na Raspberry Pi.

Do zmiany nazwy można użyć polecenia mv (tak samo jak dla plików):

mv test katalog

Usuwanie pustych katalogów wykonujemy poleceniem rmdir (od remove directory):

rmdir katalog

Gdybyśmy chcieli usunąć katalog z plikami, można użyć polecenia rm z opcją -r (od recursive):

rm -r katalog

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:

whoami

Natomiast o grupach, do których należymy dowiemy się za pomocą:

groups
Sprawdzenie nazwy użytkownika oraz grup.

Sprawdzenie nazwy użytkownika oraz grup.

Wyświetlając długą listę plików, zobaczymy właściciela oraz uprawnienia przypisane do plików:

ls -l
Lista plików z uprawnieniami.

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 l link. 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:

ls -l /etc
Uprawnienia w katalogu systemowym.

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:

chmod -w drzewko.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:

chmod +w drzewko.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:

chmod 600 drzewko.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:

sudo apt install cowsay

Od teraz mamy dostęp do potężnego narzędzia:

cowsay "FORBOT Pozdrawia!"

Dzięki któremu możemy sprawić, że dowolny tekst będzie "wypowiadany" przez krowę...

Działanie programu cowsay w praktyce,

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

Co o tym sądzisz? Oceń ten wpis:

Średnia ocena 5 / 5. Głosów łącznie: 172

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ć!

Nawigacja kursu

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

konsola, kurs, kursRaspberryPi, raspberrypi, ssh

Trwa ładowanie komentarzy...