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:

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.

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.

Zestaw elementów do kursu

Gwarancja pomocy na forum Błyskawiczna wysyłka

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

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:

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:

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:

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:

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:

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:

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

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:

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

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.

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:

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

Tworzenie nowego katalogu na Raspberry Pi.

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

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

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

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:

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

Sprawdzenie nazwy użytkownika oraz grup.

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

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:

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:

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:

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:

 

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:

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

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

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

Nawigacja kursu

konsola, kurs, kursRaspberryPi, RaspberryPi, ssh

Komentarze

Komentarze do tego wpisu są dostępne na forum: