Dydaktyka:
FeedbackTo jest stara wersja strony!
Do utworzenia pustego pliku możesz użyć touch plik
.
Aby utworzyć plik z zawartością, możesz użyć fortune > plik
lub echo zawartość > plik
.
Polecenia touch
i echo
, jak również znaczenie >
zostaną omówione później.
Aby wyświetlić plik, użyj cat plik
.
mkdir dir
tworzy nowy katalog.
mkdir -p dir1/dir2/dir3
tworzy katalog dir1
, i katalog dir2
w dir1
, i katalog dir3
w dir1/dir2
.
Podając przełącznik -p
polecenie mkdir
nie wyświetla błędu jeśli katalog już istnieje.
Do usunięcia pustego katalogu można użyć rmdir dir
.
Zadanie 1 Stwórz następujące drzewo katalogów:
. ├── foo │ ├── baz │ │ └── bar │ └── bar └── foobaz └── bar
Zadanie 2 Usuń katalog foo/baz
.
Wiele wpisów w katalogach może wskazywać na ten sam plik. Nazywa się to twardym dowiązaniem (hard link).
Wpis w katalogu może również wskazywać na inny wpis w katalogu. Nazywa się to dowiązaniem symbolicznym (soft link / symbolic link, zwykle skracane do symlink).
Wszystkie Linuksowe systemy obsługują dowiązania twarde do zwykłych plików i symlinki do dowolnych ścieżek (np. pliku lub katalogu).
Aby utworzyć twarde łącze, można użyć ln źródło cel
.
Aby utworzyć symlink, można użyć ln -s źródło cel
.
Zadanie 3 Stwórz plik plik1
z zawartością. Stwórz twarde dowiązanie do pliku plik1
o nazwie plik2
. Zmodyfikuj plik2
. Wyświetl plik1
.
Zadanie 4 Komenda ls
może wyświetlić ilość twardych dowiązań. Sprawdź gdzie ta informacja jest wyświetlana.
Miejsce na dysku wykorzystywane przez plik wraca do puli wolnej przestrzeni gdy liczba dowiązań spadnie do 0 (wszystkie wpisy w katalogach, które wskazują na plik są usunięte) i plik nie jest już otwarty w żadnym procesie.
Zadanie 5 Utwórz w swoim katalogu domowym symlink o nazwie TMP
wskazujący na /tmp
. Zmień katalog na TMP
. Co wypisuje pwd
?
Zadanie 6 Utwórz w swoim katalogu domowym symlink o nazwie loop
wskazujący na twój katalog domowy. Wejdź do loop
. I wejdź jeszcze raz do loop
.
Zadanie 7 Utwórz symlink do nieistniejącej ścieżki. Wyświetl zawartość katalogu w którym jest ten symlink.
Polecenie readlink [-f] cel
rozwiązuje wszystkie symlinki i wyświetla kanoniczną postać ścieżki.
System plików Windows NTFS też obsługuje dowiązania. Tworzenie ich jest możliwe np. poleceniem mklink.
Pliki można kopiować komendą cp
i przenosić (bądź zmieniać nazwę) komendą mv
(nazwy pochodzą odpowiednio od słów copy i move).
Podstawowa składnia to cp/mv źródło… cel
.
Można podać wiele plików źródłowych jeżeli cel jest katalogiem.
Jeśli cel jest plikiem, to zostanie bez ostrzeżenia nadpisany (o ile nie zostanie użyty przełącznik -i
bądź -n
).
Domyślnie cp
odmówi kopiowania katalogu. Przełącznik -r
pozwoli skopiować rekurencyjnie katalog z zawartością.
cp
kopiując plik tworzy nowy plik z aktualną datą, domyślnymi uprawnieniami itp.
Aby skopiować rekursywnie, zachować daty, uprawnienia i inne, można użyć przełącznika -a
(--archive
).
Z przełącznikiem -l
program cp
tworzy twarde dowiązania zamiast kopiować pliki. Można to połączyć z --recursive
.
Zadanie 8 Skopuj jednym poleceniem pliki /etc/os-release
i /etc/SUSE-brand
do bieżącego katalogu.
Zadanie 9 Wykonaj mkdir someDir && for F in plik{1..3}; do echo $RANDOM$RANDOM > someDir/$F; done
które stworzy katalog someDir
z trzema plikami w środku.
Zadanie 10 Skopiuj rekurencyjnie someDir
i zawartość.
Zadanie 11 Przenieś nowo utworzony katalog do środka katalogu someDir
.
Zadanie 12 Zmień nazwę katalogu someDir
na inną.
Zadanie 13 Skopiuj nowo nazwany katalog podając przełączniki -al
. Zmień wybrany plik w którymkolwiek z katalogów. Treść których plików uległa zmianie?
(Wyświetl je cat nazwa_pliku
lub wyświetl daty modyfikacji z sekundami przez ls -l --time-style=+%H:%M:%S …
lub tree -D --timefmt=%H:%M:%S …
)
Za pomocą SSH można kopiować pliki. Jeśli ktoś ma dostęp do SSH na zdalnej maszynie, to może kopiować pliki komendą scp
.
scp
rozumie nazwa
jako ścieżkę do lokalnego pliku i użytkownik@host:nazwa
jako ścieżkę do pliku na zdalnej maszynie. Zdalne względne ścieżki są rozwiązywane względem katalogu domowego.
scp
przyjmuje przełącznik -r
do rekursywnego kopiowania katalogów.
MS Windows ma domyślnie komendę scp
, ale zwykle wygodniej jest korzystać z menadżerów plików wspierających SSH.
Większość serwerów SSH wspiera też protokół SFTP, pozwalający na wygodniejsze kopiowanie plików.
sftp użytkownik@host
uruchamia linię poleceń sftp
. Działają w niej ls
i cd
do nawigowania po zdalnych plikach oraz get
i put
do przenoszenia plików. help
pokaże wszystkie wspierane komendy.
Zadanie 14 Stwórz plik w katalogu /tmp
swojego komputera. Skopiuj go do katalogu domowego użytkownika student
na innym komputerze.
Zadanie 15 Skopiuj ten plik do katalogu /tmp
innego komputera.
Zadanie 16 Skopiuj ten plik do katalogu /tmp
innego komputera używając sftp
.
Program rsync
jest powszechnie używany do kopiowania plików i katalogów. Wydajnie porównuje pliki źródłowe z docelowymi i kopiuje tylko różnice. Może kopiować dane do/z zdalnych urządzeń, a także może kompresować dane przesyłane przez sieć dla zwiększenia przepustowości. rsync
jest też powszechnie używany do tworzenia kopii zapasowych.
Program usuwający pliki nazywa się rm
(od remove).
rm
domyślnie nie usunie katalogów (niezależnie czy są puste) ani plików chronionych przed zapisem.
Aby usunąć katalog poleceniem rm
(wraz z całą zawartością) trzeba dodać przełącznik -r
.
Aby usunąć plików zabezpieczony przed zapisem (i nie wyświetlać ostrzeżenia jeśli plik który nakazano usunąć nie istnieje) można użyć przełącznika -f
(--force
).
Przypadkowo bądź nieprawidłowo użyte rm -rf …
jest częstą przyczyną utraty danych. Szczególnie uważaj na wszystkie *
i to do czego się rozwiną.
rm
przyjmuje przełączniki -I
i -i
które proszą o potwierdzenie usunięcia plików. -I
pyta raz przed rozpoczęciem usuwania wielu plików, a -i
pyta przed usunięciem każdego pliku z osobna.
Zadanie 17 Stwórz wiele plików komendą touch file_{a..z}
.
Usuń wszystkie te pliki jednym poleceniem rm
:
-f
,-I
,-i
.
Zadanie 18 Powtórz komendę usuwającą pliki z poprzedniego zadania po usunięciu plików.
Potem powtórz tą komendę raz jeszcze z przełącznikiem -f
.
Zadanie 19 Stwórz katalog i usuń go używając rm
.
W uniksopodobnych systemach istnieją użytkownicy i grupy.
Użytkownicy identyfikowani są po numerycznych identyfikatorach uid (user identifier), które są mapowane na nazwy użytkowników.
Podobnie grupy mają identyfikatory numeryczne o nazwie gid (group identifier), które też są mapowane na nazwy grup.
Każdy użytkownik jest w jednej podstawowej grupie (nazywanej jego grupą podstawową, primary group) i może należeć do dowolnie wielu grup (nazywanych jego grupami dodatkowymi, supplementary groups).
Lista dostępnych użytkowników i grup oraz powiązania uid/gid z nazwami zwykle są czytane z plików /etc/passwd
i /etc/groups
, ale po odpowiedniej konfiguracji może być pobierana też z innych źródeł.
Np. można wykorzystać serwer LDAP, czy kontroler domeny AD za pośrednictwem programu winbindd
. Więcej informacji na tutaj.
Hasła lokalnych użytkowników i grup są przechowywane w /etc/shadow
i /etc/gshadow
W systemie plików zapisane są uidy i gidy (a nie nazwy użytkowników), stąd np. podłączenie dysku z jednego komputera do drugiego przypisze pliki innym nazwom użytkowników i grup jeżeli mapowania uid/gid na nazwy nie są identyczne na obu systemach.
To dotyczy również kontenerów (sic!).
Dla procesów uniksopodobne systemy przechowują efektywny, zapisany i rzeczywisty uid (analogicznie gid).
Dla zwykłych procesów te identyfikatory są równe, dla procesów które zmieniały użytkownika mogą być różne. Więcej informacji na tutaj.
W tej chwili zakres uid'ów i gid'ów w Linuksie to 0÷(232-2)
Użytkownik o uid równym 0 nazywany jest superużytkownikiem (superuser) i ma zwyczajowo nadaną nazwę root.
Żeby sprawdzić swoją nazwę użytkownika, można skorzystać z komendy whoami
.
Do sprawdzenia listy grup służy komenda groups [użytkownik]
. Bez argumentów wyświetla grupy bieżącego użytkownika.
Zadanie 20 Przetestuj działanie komendy whoami
.
Zadanie 21 Sprawdź listę grup w której jesteś. Sprawdź listę grup w której jest użytkownik student.
Komenda id [użytkownik]
wyświetla nazwy i numery użytkownika, jego grupy podstawowej i grup dodatkowych.
Informację o użytkowniku można wyciągnąć poleceniem getent passwd użytkownik
, o grupach – getent group grupa
.
Zadanie 22 Sprawdź jaki masz uid i gid, zarówno poleceniem id
jak i getent
.
Zmiana hasła użytkownika jest wykonywana przy pomocy komendy passwd
.
Root może przy pomocy passwd user
ustawić hasło każdego użytkownika, może też zmienić czas ważności hasła bądź zablokować konto.
Podstawowe komendy administracyjne do zarządzania użytkownikami to:
useradd [-m] [-g grupa] nazwa
groupadd nazwa
gpasswd -a użytkownik grupa
usermod
/ userdel
/ groupmod
/ groupdel
Listę osób bieżąco używających systemu można wyświetlić komendą w -n
oraz who
.
Historię logowań można wyświetlić używając polecenia last [-n ile_ostatnich] [username]
.
Zadanie 23 Zaloguj się po ssh na polluksa. Sprawdź jacy inni użytkownicy są zalogowani.
Zadanie 24 Na polluksie sprawdź jacy trzej użytkownicy logowali się ostatnio.
Zadanie 25 Na polluksie sprawdź kiedy ostatnio logował się użytkownik root.
Zadanie 26 Sprawdź jacy użytkownicy byli zalogowaniu na polluksie w chwili 2023-03-03 13:30
Komendą write użytkownik [terminal]
można wysłać tekst do wybranego użytkownika (kończąc wpisany tekst przez EOF, zwykle Ctrl+d).
Spowoduje to wyświetlenie mu podanego testu poprzedzonego komunikatem "message from…" w terminalu.
Otrzymywanie takich wiadomości można zablokować (bądź odblokować) komendą mesg {n|y}
.
Można też wysłać wiadomość do wszystkich użytkowników komendą wall
.
Zadanie 27 Napisz do sąsiada wiadomość. Zobacz na własnym ekranie wiadomość wysłaną od kogoś.
Istnieje też komenda talk użytkownik
pozwalająca na rozmowę między dwoma użytkownikami.
Posiadając odpowiednie uprawnienia i/lub znając odpowiednie hasło (w zależności od ustawień systemu) można przełączyć się na innego użytkownika bądź wykonać komendę jako inny użytkownik.
Komenda su [-] [użytkownik]
po autoryzacji uruchamia domyślną powłokę dla podanego użytkownika (domyślnie roota).
Komenda su -c komenda [-] [użytkownik]
po autoryzacji uruchamia w domyślnej powłoce dla podanego użytkownika (domyślnie roota) podaną komendę.
su
jest dostępna w każdym uniksopodobnym systemie.
W domyślnych ustawieniach Linuksa komenda su
wymaga podania hasła użytkownika docelowego (i w niektórych dystrybucjach przynależności do odpowiedniej grupy, zwykle wheel
).
Na wielu dystrybucjach instalowana jest też komenda sudo
która ma na celu zezwolenie wybranym użytkownikom na wykonywanie wybranych komend z uprawnieniami wskazanych użytkowników. Do autoryzacji sudo
wykorzystuje hasło bieżącego bądź docelowego użytkownika.
W niektórych dystrybucjach komenda sudo
jest nadużywana do zastąpienia komendy su
.
Zadanie 28 Zaloguj się na podany przez prowadzącego serwer przez ssh (prawdopodobnie ssh userN@fe80::1%br0
). Zmień użytkownika na root
. Zmień użytkownika na innego userN
.
Root może też korzystać z komend runuser
i setpriv
do uruchamiania komend z innym uid/gid/uprawnieniami.
W uniksopodobnych systemach dostęp do pliku określają trzy podstawowe uprawnienia: odczytu (read), zapisu (write) i wykonania (execute).
Każde z tych uprawnień jest przyznawane osobno właścicielowi pliku (user), grupie pliku (group) i pozostałym użytkownikom (others).
Dodatkowo można ustawić trzy uprawnienia specjalne: set-user-id (sgid, s), set-group-id (sgid, s) i sticky (t).
Prawo do wykonania dla pliku oznacza możliwość uruchomienia go (jako skryt, program etc.), dla katalogu – wejścia do niego.
Suid/sgid nadany zwykłym plikom oznacza, że po uruchomieniu proces będzie działać z efektywnym uid/gid właściciela pliku.
Zauważ że skrypt są interpretowane przez inny program, nie uruchamiane. Nadanie skryptowi suid/sgid nie ma wpływu na jego działanie.
Suid pozwala np. zwykłemu użytkownikowi zmienić hasło (czyli zmienić plik /etc/shadow do którego zwykły użytkownik nie ma dostępu).
Sgid pozwala np. zwykłemu użytkownikowi uruchamiać maszyny wirtualne w VirtualBoxie czy analizować pakiety sieciowe w Wiresharku.
Sticky bit nadany katalogowi D oznacza, że plik X z katalogu D może usunąć tylko właściciel pliku X bądź katalogu D.
Sticky bit ustawiany jest w katalogu /tmp
i innych, gdzie każdy użytkownik może tworzyć pliki o to, by tylko właściciel (bądź root) mogli usunąć pliki.
Suid/sgid dla innych plików niż zwykłe i sticky bit dla innych plików niż katalogi nie mają spójnego znaczenia w uniksopodobnych systemach.
Przy montowaniu systemu plików można ustawić opcję nosuid
która wyłącza działanie suid/sgid
Uprawnienia są przechowywane jako liczba, gdzie wartości kolejnych bitów oznaczają (od najstarszego bitu): prawa specjalne (w kolejności suid, sgid, sticky), i prawa dla użytkownika, grupy, innych (w kolejności odczyt, zapis, wykonanie).
Numerycznie uprawnienia zapisuje się w systemie ósemkowym, np: 4751
gdzie kolejne cyfry oznaczają uprawnienia specjalne (tutaj: suid), użytkownika (tutaj: wszystkie), grupy (tutaj: odczyt i wykonanie) i innych (tutaj: żadne).
Tekstowo uprawnienia zapisuje się jako: rwxrwxrwx
, gdzie kolejne trójki to właśnie uprawnienia użytkownika, grupy i innych.
Brak danego uprawnienia zapisuje się przez -
.
Zwykle przed tak zapisanymi uprawnieniami pojawia się dodatkowa litera określająca typ pliku.
Uprawnienia specjalne zapisuje się na pozycji uprawnień wykonania: suid i prawo do wykonanie to s
, suid i brak prawa do wykonania to S
na pozycji użytkownika. Analogicznie prezentowany jest sgid na pozycji grupy, i sticky bit z literami t
i T
na pozycji pozostałych.
Przykładowo: rw-r--r--
oznacza że użytkownik ma prawo zapisu i odczytu, a pozostali tylko do odczytu (równoważne 644
),
a rwx--x--x
pozwalają właścicielowi na odczyt, zapis i wykonanie pliku, a grupie i pozostałym tylko na wykonanie (711
).
Aby zobaczyć szczegółowe informacje o pliku, w tym uprawnienia, można wykonać stat plik
.
Uprawnienia są też wyświetlane w wynikach ls -l
i tree -p
.
Wszystkie powyższe polecenia dodają na początek uprawnień literę określającą rodzaj pliku.
Zadanie 29 Sprawdź jakie uprawienia mają (na twoim komputerze):
.ssh
w twoim katalogu domowym.bash_history
w twoim katalogu domowym/etc/passwd
i /etc/shadow
/tmp
/usr/bin/passwd
i /usr/bin/write
Zadanie 30 Sprawdź jakie mają uprawnienia i jakim są rodzajem plików:
/var/run
/dev/sda
lub /dev/nvme0n1
/dev/null
/run/initctl
/run/rpcbind.sock
Domyślnie uprawnienia nadawane plikom i katalogom określa maska którą można odczytać poleceniem umask
(i zmienić dla bieżącej powłoki poleceniem umask oktalnie
).
Do zmiany uprawnień służy komenda chmod uprawnienia plik
.
chmod
przyjmuje uprawnienia w postaci ósemkowej, np. chmod 644 plik
lub w postaci symbolicznej.
Postać symboliczna to oddzielone przecinkami wyrażenia na które składa się:
u
, g
, o
lub a
(user, group, others lub all - wszyscy)+
, -
lub =
(dodaj, usuń lub ustaw te prawa)r
, w
, x
, s
lub t
.
Przykładowo u+x,o=
doda użytkownikowi prawo do zapisu i ustawi brak praw dla innych.
Pominięcie litery [ugoa]
przed operacją ma specjalne znaczenie, szczegóły w podręczniku systemowym.
Właściciel pliku będący w kliku grupach może użyć komendy chgrp grupa plik
do zmiany grupy do której należy plik.
Tylko root może zmienić właściciela (i grupę) pliku poleceniem chown [właściciel][:[grupa]] plik
.
Zarówno chmod
, chgrp
i chown
przyjmują przełączniki -R
(--recursive
) dla rekursywnej zmiany i --reference=plik
dla ustawienia uprawnień/grupy/właściciela identycznego jak we wskazanym pliku.
Ćwiczenia wykonuj na podanym przez prowadzącego serwerze.
Do tworzenia plików możesz wykorzystać np. komendę fortune > plik
.
Zadanie 31 Stwórz plik. Ustaw takie prawa dostępu, żeby tylko właściciel mógł odczytać plik.
Sprawdź poprawność nadanych praw przełączając się na innych użytkowników.
Zadanie 32 Stwórz plik. Ustaw korzystając z ósemkowego zapisu takie prawa dostępu, żeby właściciel mógł zmodyfikować i odczytać plik, a grupa mogła tylko odczytać plik. Sprawdź poprawność nadanych praw.
Zadanie 33 Stwórz plik. Ustaw korzystając z symbolicznego zapisu takie prawa dostępu, żeby właściciel mógł zmodyfikować i odczytać plik, a grupa mogła tylko odczytać plik.
Zadanie 34 Zmień grupę pliku z poprzedniego zadania.
Zadanie 35 Stwórz plik. Ustaw takie prawa dostępu, żeby tylko właściciel i pozostali mogli odczytać plik. Sprawdź czy osoba należąca do grupy pliku może go odczytać.
Zadanie 36 Stwórz katalog ze zwykłym plikiem w środku. Odbierz prawo do wykonywania katalogu. Spróbuj wylistować katalog, wejść do katalogu i wyświetlić plik bez wchodzenia do katalogu.
Zadanie 37 Zmień prawa dostępu katalogu na u=rwx,go=rx
. Stwórz w tym katalogu zwykły plik. Wyświetl plik jako inny użytkownik. Wyświetl zawartość katalogu jako inny użytkownik.
Następnie zmień prawa do katalogu u=rwx,go=x
. Spróbuj ponownie wyświetlić plik i zawartość katalogu jako inny użytkownik.
Zadanie 38 Stwórz katalog z prawami dostępu 777
i stwórz w nim dwa pliki. Jednemu z nich ustaw prawa 600
. Z innego użytkownika spróbuj usunąć oba pliki.
Zadanie 39 W katalogu użytkownika A z prawami dostępu 777
stwórz jako użytkownik B dwa katalogi: jeden pusty, jeden z plikiem w środku. Spróbuj usunąć te katalogi jako użytkownik A.
Zadanie 40 Czy możesz zmienić nazwę katalogu K który nie dał się usunąć w poprzednim zadaniu? Czy możesz przenieść katalog K do innego? Czy możesz przenieść katalog zawierający K do innego?
Zadanie 41 Stwórz plik i katalog z plikiem w środku i odbierz wszystkim trzem wszystkie uprawnienia. Zmień użytkownika na root i spróbuj wyświetlić oba pliki.
Zadanie 42 Z roota zmień właściciela wybranego pliku. Następnie zmień grupę innego pliku na www-data
.
Linuksowe system plików zwykle przechowują datę zmiany metadanych (change, ctime), zmiany treści (modify, mtime) i ostatniego dostępu (access, atime) dla każdego pliku. Niektóre systemy plików dodatkowo przechowują też czas utworzenia pliku.
Montując system plików często wyłącza się rejestrowanie czasu ostatniego dostępu podając opcję noatime
lub ustawia zmianę tego czasu tylko w szczególnych przypadkach podając opcję relatime
. Komenda mnt
i findmnt
wyświetlają z jakimi opcjami zamontowano system plików.
Polecenie stat plik
pokazuje te czasy.
Komenda touch plik
ustawia czas dostępu i modyfikacji pliku, domyślnie na teraz.
Podając -d data
lub --reference=plik
można wybrać inną datę, a -a
, -c
i -m
wybierają który czas zmodyfikować.
Jeśli plik docelowy nie istnieje, domyślnie komenda touch
go stworzy. Jest to często używane do tworzenia pustych plików.
Zadanie 43 Sprawdź daty dla pliku /var/log/wtmp
Zadanie 44 Zmień daty do swojego katalogu domowego.
Zadanie 45 Zmień datę zmiany zawartości wybranego pliku na 13:30 PDT Saturday month ago
.
Bash (i wiele innych programów) korzysta do odczytywania komend ze standardowego wejścia biblioteki readline.
Część programów z przyczyn licencyjnych wybiera do tego samego celu libedit.
Readline pozwala na wygodną edycję linii poleceń i tworzenie historii poleceń.
Lista sensownych skrótów klawiszowych do edycji linii poleceń jest tutaj: https://readline.kablamo.org/emacs.html
Pełna lista komend i przypisanych do nich skrótów jest w podręczniku systemowym (man readline
i man bash
).
Konwencja zapisu skrótów klawiszowych to:
^x
lub C-x
to Ctrl+x (uwaga:^X
lub C-X
to Ctrl+Shift+x),M-x
to zwykle Alt-x (patrz: https://en.wikipedia.org/wiki/Meta_key),a b
to wciśnięcie po skrócie a skrótu b.
Bash domyślnie dopisuje historię wykonanych poleceń do pliku ~/.bash_history
w momencie wyjścia z powłoki.
Historię (tą z pliku połączoną z bieżącą) można wyświetlić komendą history
. (W man bash_builtins
znajduje się opis przełączników.)
Do wygodnego przeglądania historii można też użyć programu hstr
Zadanie 46 Jakim skrótem czyści się ekran?
Zadanie 47 Jakimi skrótami wyszukuje się wstecz w historii?
Zadanie 48 Jakim skrótem przesuwa się kursor o jedno słowo?
Zadanie 49 Jakim złożeniem skrótów przesuwa się kursor o 5 słów?
Zadanie 50 Jakim skrótów wstawia się ostatnie słowo z poprzedniego polecenia w historii?
Zadanie 51 Jakim złożeniem skrótów wstawia się trzecie od końca słowo z poprzedniego polecenia w historii?
Zadanie 52 Jakim skrótem zamienia się kolejnością to słowo z poprzednim?
vi
jest często jedynym domyślnie instalowanym edytorem tekstowym.
vim
to ulepszona wersja vi
.
Żeby nauczyć się vim
, uruchom vimtutor
.
vi
jest wpisane w standard POSIX.
Jest też częścią minimalistycznych zestawów narzędzi takich jak busybox i toybox.
Zadanie 53 Przejdź całą pierwszą lekcję w vimtutor
.
Zadanie 54 Przejdź pozostałe lekcje w vimtutor
.
Nano jest stosunkowo prostym edytorem tekstowym.
Podstawowe skróty są wyświetlone na dole ekranu.
Więcej na: https://www.nano-editor.org/docs.php
Emacs jest odwiecznym rywalem vim
a w konkurencji programów do edytowania tekstu w konsoli.
Po wpisaniu emacs
możesz wybrać tutorial skrótem Ctrl+h t.