2.2 Lekcja 1
Certyfikat: |
Linux Essentials |
---|---|
Wersja: |
1.6 |
Temat: |
2 Poruszanie się po systemie Linux |
Cel nauki: |
2.2 Korzystanie z wiersza poleceń w celu uzyskania pomocy |
Lekcja: |
1 z 1 |
Wstęp
Linia poleceń jest bardzo złożonym narzędziem. Każde polecenie ma swoje własne opcje, dlatego tak ważna jest odpowiednia dokumentacja podczas pracy z systemem Linux. Oprócz katalogu /usr/share/doc/
, w którym znajduje się większość dokumentacji, różne inne narzędzia dostarczają informacji o używaniu poleceń Linuxa. Ten rozdział koncentruje się na metodach uzyskiwania dostępu pomocy w tej dokumentacji.
Istnieje wiele sposobów uzyskiwania pomocy w wierszu poleceń systemu Linux. Niektóre z nich to: man
, help
oraz info
. W przypadku Linux Essentials skupimy się na poleceniach man
oraz info
, ponieważ są to najczęściej używane narzędzia do uzyskiwania pomocy.
Kolejnym tematem tego rozdziału będzie lokalizacja plików. Będziesz używać głównie polecenia locate
.
Uzyskiwanie pomocy w wierszu poleceń
Pomoc wbudowana w system
Większość poleceń uruchomionych z parametrem --help
wyświetla krótki przegląd ich wykorzystania. Chociaż nie wszystkie polecenia posiadają opcję wywoływania pomocy z przełącznikiem --help
, to jednak jest to dobra pierwsza próba dowiedzenia się więcej o parametrach danego polecenia. Należy pamiętać o tym, że instrukcje z --help
są często krótkie w porównaniu z innymi źródłami dokumentacji, które omówimy w dalszej części tej lekcji.
Strony podręcznika
Większość poleceń udostępnia stronę podręcznika ("Manual Page") lub w skrócie stronę “man”. Ta dokumentacja jest zwykle instalowana wraz z oprogramowaniem i może być wywołana za pomocą polecenia man
. Polecenie, którego strona podręcznika powinna zostać wyświetlona, jest dodawane do man
jako argument:
$ man mkdir
To polecenie otwiera stronę podręcznika dla mkdir
. Możesz użyć klawiszy strzałek w górę i w dół lub spacji, aby poruszać się po stronie podręcznika. Aby opuścić stronę podręcznika, naciśnij klawisz Q.
Każda strona podręcznika jest podzielona na maksymalnie 11 sekcji, z których wiele jest opcjonalnych:
Sekcja | Opis |
---|---|
NAME |
Nazwa polecenia i krótki opis |
SYNOPSIS |
Opis składni polecenia |
DESCRIPTION |
Opis efektów polecenia |
OPTIONS |
Dostępne opcje |
ARGUMENTS |
Dostępne argumenty |
FILES |
Pliki pomocnicze |
EXAMPLES |
Przykład użycia polecenia |
SEE ALSO |
Odsyłacze do powiązanych tematów |
DIAGNOSTICS |
Ostrzeżenia i komunikaty o błędach |
COPYRIGHT |
Autorzy polecenia |
BUGS |
Znane błędy i ograniczenia polecenia |
W praktyce większość stron podręcznika systemowego nie zawiera wszystkich tych części.
Strony podręcznika są podzielone na osiem kategorii ponumerowanych od 1 do 8:
Kategoria | Opis |
---|---|
1 |
Polecenie użytkownika |
2 |
Wywołania systemowe |
3 |
Funkcje biblioteki C |
4 |
Pliki sterowników i urządzeń |
5 |
Pliki konfiguracyjne i formaty plików |
6 |
Gry |
7 |
Różne |
8 |
Polecenia administratora systemu |
9 |
Funkcje jądra (niestandardowe) |
Każda strona podręcznika należy do dokładnie jednej sekcji, jednak wiele sekcji może zawierać strony podręcznika o tej samej nazwie. Weźmy jako przykład polecenie passwd
. Tego polecenia można użyć do zmiany hasła użytkownika. Ponieważ passwd
jest poleceniem użytkownika, jego strona podręcznika znajduje się w sekcji 1. Oprócz polecenia passwd
, plik bazy danych haseł /etc/passwd
ma również stronę podręcznika, która również nazywa się passwd
. Ponieważ ten plik jest plikiem konfiguracyjnym, zatem należy on do sekcji 5. Odniesienie do strony podręcznika systemowego zwykle zawiera nie tylko nazwę polecenia, ale także odniesienie do odpowiedniej sekcji, na przykład passwd(1)
lub passwd(5)
do identyfikacji odpowiedniej strony podręcznika.
Domyślnie, man passwd
wyświetla pierwszą dostępną stronę podręcznika, w tym przypadku passwd(1)
. Możesz wywołać kategorię żądanej strony podręcznika za pomocą man 1 passwd
lub man 5 passwd
.
Omówiliśmy już, jak poruszać się po stronie podręcznika i jak powrócić do wiersza poleceń. Wewnętrznie, man
używa polecenia less
do wyświetlenia zawartości strony podręcznika. Natomiast less
umożliwia wyszukiwanie tekstu na stronie podręcznika. Aby wyszukać słowo linux
, możesz po prostu użyć /linux
do wyszukiwania w przód od miejsca, w którym jesteś na stronie lub ?linux
, aby rozpocząć wyszukiwanie wstecz. Następnie wszystkie pasujące wyniki są podświetlane w tekście, a strona przeskakuje do pierwszego podświetlonego dopasowania. W obu przypadkach możesz nacisnąć klawisz N, aby przejść do następnego zaznaczenia. Aby uzyskać informacje o dodatkowych funkcjach, naciśnij klawisz H, a zostanie wyświetlone obszerne menu ze wszystkimi informacjami.
Strony informacyjne
Kolejnym narzędziem, które pomoże Ci w pracy z systemem Linux, są strony informacyjne. Strony informacyjne są zwykle bardziej szczegółowe niż strony podręcznika systemowego i są sformatowane jako hipertekst, podobnie jak strony internetowe w Internecie.
Strony informacyjne mogą być wyświetlane w następujący sposób:
$ info mkdir
Dla każdej strony informacyjnej info
odczytuje plik informacyjny, który jest podzielony na poszczególne węzły w drzewie. Każdy węzeł ma prosty temat, a polecenie info
zawiera hiperłącza, które prowadzą od jednego do drugiego tematu. Dostęp do łącza można uzyskać, naciskając klawisz Enter podczas umieszczania kursora na jednej z wiodących gwiazdek (*
).
Podobnie jak man
, narzędzie info
ma również polecenia do nawigacji po stronach. Możesz dowiedzieć się więcej o tym poleceniu naciskając ? i przechodząc w ten sposób do strony informacyjnej. Te narzędzia ułatwiają nawigację po stronie i wyjaśniają, jak uzyskać dostęp do węzłów i jak poruszać się po drzewie węzłów.
Katalog /usr/share/doc/
Jak już wspomniano wcześniej, katalog /usr/share/doc/
zawiera najobszerniejszą dokumentację poleceń używanych przez system, a także katalog większości pakietów zainstalowanych w systemie. Nazwa takiego katalogu zwykle odpowiada nazwie pakietu, często uzupełnionej numerem wersji. Te katalogi zawierają plik README
lub readme.txt
razem z podstawową dokumentacją pakietu. Oprócz pliku README
, folder może również zawierać inne pliki dokumentacji, takie jak dziennik zmian, który zawiera szczegółową historię programu lub przykłady plików konfiguracyjnych dla określonego pakietu.
Informacje zawarte w pliku README
różnią się w zależności od pakietu. Wszystkie pliki są napisane zwykłym tekstem, dzięki czemu można je odczytać w dowolnym edytorze tekstu. Dokładna liczba i rodzaje plików zależą od pakietu. Sprawdź niektóre katalogi, aby uzyskać przegląd ich zawartości.
Lokalizowanie (znajdowanie) plików
Polecenie locate
System Linux jest zbudowany z wielu katalogów i plików oraz ma wiele narzędzi, które pomagają zlokalizować określony pliku w systemie. Najszybszym jest polecenie locate
.
Polecenie locate
przeszukuje bazę danych, a następnie wyświetla każdą nazwę, która pasuje do podanego ciągu:
$ locate note /lib/udev/keymaps/zepto-znote /usr/bin/zipnote /usr/share/doc/initramfs-tools/maintainer-notes.html /usr/share/man/man1/zipnote.1.gz
locate
obsługuje również użycie symboli wieloznacznych i wyrażeń regularnych, dlatego wyszukiwany ciąg nie musi odpowiadać pełnej nazwie żądanego pliku. Dowiesz się więcej o wyrażeniach regularnych w kolejnym rozdziale.
Domyślnie polecenie locate
zachowuje się tak, jakby wzorzec był otoczony gwiazdkami (), więc
locate PATTERN
jest tym samym, co locate \*PATTERN
. Umożliwia to po prostu określenie podciągów zamiast dokładnej nazwy pliku. Możesz zmodyfikować to zachowanie za pomocą różnych opcji, które są wyjaśnione na stronie locate
podręcznika.
Ponieważ locate
odczytuje z bazy danych, możesz nie znaleźć pliku, który niedawno utworzyłeś. Baza danych jest zarządzana i aktualizowana przez program o nazwie updatedb
. Zwykle działa regularnie, ale jeśli masz uprawnienia roota i potrzebujesz natychmiastowej aktualizacji bazy danych, wówczas możesz w dowolnym momencie samodzielnie uruchomić polecenie updatedb
.
Polecenie find
Polecenie find
jest kolejnym bardzo popularnym narzędziem, które służy do wyszukiwania plików. Ma inne podejście niż polecenie locate
. Polecenie find
przeszukuje drzewo katalogów łącznie z jego podkatalogami w sposób rekurencyjny. find
wykonuje takie wyszukiwanie za kazdym razem, gdy jest wywoływane, ponieważ nie zarządza ani nie utrzymuje bazy danych tak jak locate
. Podobnie jak locate
, polecenie find
obsługuje również symbole wieloznaczne i wyrażenia regularne.
find
wymaga przynajmniej ścieżki do przeszukania. Ponadto można dodać tak zwane wyrażenia określające, aby zapewnić kryteria filtrowania plików do wyświetlenia. Przykładem jest wyrażenie -name
, które wyszukuje plików o określonej nazwie:
~$ cd Downloads ~/Downloads $ find . -name thesis.pdf ./thesis.pdf ~/Downloads $ find ~ -name thesis.pdf /home/carol/Downloads/thesis.pdf
Pierwsze polecenie find
szuka pliku w bieżącym katalogu Downloads
, natomiast drugie polecenie find
wyszukuje plik w katalogu domowym użytkownika.
Polecenie find
jest bardzo złożone, dlatego nie jest objęte egzaminem Linux Essentials, ale w praktyce jest to potężne narzędzie i szczególnie przydatne w praktyce.
Ćwiczenia z przewodnikiem
-
Użyj polecenia
man
, aby dowiedzieć się, co robią następujące polecenia:Polecenie Opis ls
Wyświetl zawartość katalogu.
cat
cut
cd
cp
mv
mkdir
touch
wc
passwd
rm
rmdir
more
less
whereis
head
tail
sort
tr
chmod
grep
-
Otwórz stronę informacyjną polecenia
ls
i znajdź MENU.-
Jakie opcje są dostępne?
-
Znajdź opcję, która umożliwia sortowanie wyników według czasu ostatniej modyfikacji.
-
-
Wyświetl ścieżkę do pierwszych 3 plików
README
. Użyj poleceniaman
, aby zidentyfikować poprawną opcję dlalocate
. -
Utwórz plik o nazwie
test
w swoim katalogu domowym. Znajdź jego bezwzględną ścieżkę za pomocą polecenialocate
. -
Znalazłeś to natychmiast? Co musiałeś zrobić, aby polecenie
locate
ją znalazło? -
Wyszukaj wcześniej utworzony plik testowy za pomocą polecenia
find
. Jakiej składni użyłeś i jaka jest ścieżka bezwzględna?
Ćwiczenia eksploracyjne
-
W powyższej tabeli jest jedno polecenie, które nie ma strony pomocy
man
. Które to jest polecenie i jak sądzisz, dlaczego to polecenie nie ma strony podręcznika? -
Używając poleceń z powyższej tabeli, utwórz następujące drzewo plików. Nazwy zaczynające się od dużej litery oznaczają katalogi, a te pisane małymi literami to pliki.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
-
Wyświetl na ekranie bieżący katalog roboczy, w tym jego podkatalogi.
-
Wyszukaj w drzewie wszystkie pliki, które kończą się liczbą.
-
Usuń całe drzewo katalogów za pomocą jednej komendy.
Podsumowanie
W tej lekcji nauczyłeś się:
-
Jak uzyskać pomoc w systemie
-
Jak używać polecenia
man
-
Jak poruszać się po stronie podręcznika
man
-
Różne sekcje strony podręcznika
man
-
Jak używać polecenia
info
-
Jak poruszać się między różnymi węzłami
-
Jak wyszukiwać pliki w systemie
Komendy wykorzystywane w ćwiczeniach:
man
-
Wyświetla stronę podręcznika.
info
-
Wyświetla stronę informacyjną.
locate
-
Przeszukaje bazę danych
locate
w poszukiwaniu plików o określonej nazwie. find
-
Przeszukuje system plików pod kątem nazw, które pasują do szeregu kryteriów wyboru.
updatedb
-
Aktualizuje bazę danych
locate
.
Odpowiedzi do ćwiczeń z przewodnikiem
-
Użyj polecenia
man
, aby dowiedzieć się, co robią następujące polecenia:Polecenie Opis ls
Wyświetla zawartość katalogu
cat
Łączy lub wyświetla pliki tekstowe
cut
Usuwa sekcje z pliku tekstowego
cd
Przenosi do innego katalogu
cp
Kopiuje plik
mv
Przenosi plik (może być także użyty do zmiany nazwy pliku)
mkdir
Tworzy nowy katalog
touch
Tworzy plik lub modyfikuje godzinę i datę ostatniej modyfikacji istniejącego pliku
wc
Zlicza liczbę słów, wierszy lub bajtów pliku
passwd
Zmienia hasło użytkownika
rm
Usuwa plik
rmdir
Usuwa katalog
more
Wyświetla pliki tekstowe ekran po ekranie
less
Wyświetla pliki tekstowe, umożliwia przewijanie po linii lub ekranie w górę lub w dół
whereis
Pokazuje ścieżkę do określonego programu i powiązanych plików dokumentacji podręcznika
head
Wyświetla kilka pierwszych wierszy pliku
tail
Wyświetla kilka ostatnich wierszy pliku
sort
Sortuje pliki numerycznie lub alfabetycznie
tr
Konwertuje lub usuwa znaki (ciągi) w pliku
chmod
Zmienia prawa dostępu do pliku
grep
Wyszukuje w pliku
-
Otwórz stronę informacyjną polecenia
ls
i znajdź MENU.*-
Jakie opcje są dostępne?
-
Które pliki są wymienione (Which files are listed)
-
Jakie informacje są wymienione (What information is listed)
-
Sortowanie wyników (Sorting the output)
-
Szczegóły dotyczące sortowania wersji (Details about version sort)
-
Ogólne formatowanie danych wyjściowych (General output formatting)
-
Formatowanie sygnatur czasowych plików (Formatting file timestamps)
-
Formatowanie nazw plików (Formatting the file names)
-
-
Znajdź opcję, która umożliwia sortowanie wyników według czasu ostatniej modyfikacji.
-t
or--sort=time
-
-
Wyświetl ścieżkę do pierwszych 3 plików
README
. Użyj poleceniaman
, aby zidentyfikować poprawną opcję dlalocate
.$ locate -l 3 README /etc/alternatives/README /etc/init.d/README /etc/rc0.d/README
-
Utwórz plik o nazwie
test
w swoim katalogu domowym. Znajdź jego bezwzględną ścieżkę za pomocą polecenialocate
.$ touch test $ locate test /home/user/test
-
Znalazłeś to natychmiast? Co musiałeś zrobić, aby polecenie
locate
ją znalazło?$ sudo updatedb
Plik został właśnie utworzony, więc w bazie danych nie ma jeszcze wpisu.
-
Wyszukaj wcześniej utworzony plik testowy za pomocą polecenia
find
. Jakiej składni użyłeś i jaka jest ścieżka bezwzględna?$ find ~ -name test
lub
$ find . -name test /home/user/test
Odpowiedzi do ćwiczeń eksploracyjnych
-
W powyższej tabeli jest jedno polecenie, które nie ma strony pomocy
man
. Które to jest polecenie i jak sądzisz, dlaczego to polecenie nie ma strony podręcznika?To polecenie to
cd
. Nie ma ono strony podręcznika, ponieważ jest to polecenie wbudowane w powłokę. -
Używając poleceń z powyższej tabeli, utwórz następujące drzewo plików. Nazwy zaczynające się od dużej litery oznaczają katalogi, a te pisane małymi literami to pliki.
User ├── Documents | ├──Hello | | ├──hey2 | | ├──helloa | | └──ola5 | └──World | └──earth9 ├── Downloads | ├──Music | └──Songs | ├──collection1 | └──collection2 ├── Test | └── passa └── test
Rozwiązaniem jest połączenie poleceń
mkdir
oraztouch
. -
Wyświetl na ekranie bieżący katalog roboczy, w tym jego podkatalogi.
$ ls -R
-
Wyszukaj w drzewie wszystkie pliki, które kończą się liczbą.
$ find ~ -name "*[0-9]" $ locate "*[0-9]"
-
Usuń całe drzewo katalogów za pomocą jednej komendy.
$ rm -r Documents Downloads Test test