TL;DR
Konia z rzędem (a może pingwina?) temu, kto spamięta wszystkie parametry, przełączniki i argumenty używanych przez siebie programów konsolowych. Zwłaszcza jeśli intensywnie wykorzystuje się konsolę to trudno jest połapać się we wszystkich kombinacjach literek. Oczywiście – te najczęściej używane pamiętamy, albo mamy “zapisane w palcach” i odruchowo wpisujemy wszystkie potrzebne parametry. Jeśli jednak trzeba sięgnąć po przykurzony lekko, nieużywany od dłuższego czasu program to zaczyna się problem. Na szczęście Linux obfituje w różne metody przypominania składni poleceń.
–help
Zdecydowana większość programów jest wyposażona we własny system pomocy. Ten jeden parametr każdy zapamięta – utarło się, że po wpisaniu –help lub – nieco rzadziej -h program przedstawia się i podaje opis dostępnych parametrów i funkcji.
Bywa, że ten system pomocy jest tak skomplikowany, że po wpisaniu –help otrzymujemy… spis treści pomocy. Spróbujcie zenity –help – to dopiero początek podróży po systemie pomocy tego programu.
W taki podręcznik warto zaopatrzyć także własne skrypty – jeśli mają jakieś parametry to po jakimś czasie nieużywania zwykle o nich zapominamy. Jak zrobić to bez większego wkładu pracy pisałem jakiś czas temu.
man
Tradycyjnie każdy uniksowy program wyposażony jest w podręcznik (man – manual). Linux utrzymał tę tradycję i rzadko można spotkać program, dla którego polecenie man <program>
nie działa.
Owe manuale są rozbudowane, opisowe, często bardzo obszerne. W rzeczywistości jest to cała baza danych, która pozwala otrzymać informację na temat całego systemu operacyjnego.
Zazwyczaj używamy najprostszej formy:
man <polecenie>
W efekcie na ekranie pojawia się opis, który można przewinąć klawiszami góra-dół, a znalazłszy potrzebne informacje – zamknąć klawiszem “q”. Warto przy tym wiedzieć, że w trakcie przeglądania tekstu manuala można przycisnąć klawisz / (ukośnik) i wpisać ciąg znaków, który – po zatwierdzeniu enterem – zostanie wyszukany w manualu. Pomiędzy wystąpieniami tekstu przechodzimy za pomocą klawiszy p (poprzednie wystąpienie) i n (następne wystąpienie). Biorąc pod uwagę, że niektóre manuale są naprawdę duże, możliwość wyszukiwania tekstu potrafi być naprawdę przydatna.
Strony man page można przeszukiwać – pełnotekstowo – za pomocą opcji -k
np.:
man -k "USB device"
Potrzebną frazę można również wyszukać za pomocą polecenia
apropos "USB device"
Otrzymamy wszystkie dostępne strony manuala, zawierające frazę “USB device”. Wyszukiwanie działa wyłącznie w języku angielskim.

Przy wynikach takiego wyszukiwania można zauważyć liczby w nawiasie. Oznaczają one sekcję, do którego przynależy dana strona. Sekcje podzielone są tematycznie:
- Programy i polecenia shell
- Wywołania systemowe (dostarczane przez jądro)
- Wywołania bibliotek (funkcje w bibliotekach programów)
- Pliki specjalne (zazwyczaj dotyczy to /dev)
- Format plików i konwencje (np. format pliku /etc/passwd)
- Gry
- Różne
- Polecenia administracyjne (roota)
- Procedury jądra
Opcja -f
umożliwia sprawdzenie jakie strony są dostępne dla danego polecenia np.:
man -f passwd

Jak widać passwd zostało opisane jako polecenie użytkownika (1) format pliku passwd (5) oraz – w podsekcji 1ssl – jako procedura generowania skrótów.
Aby obejrzeć strony z konkretnych sekcji można podać numer sekcji jako pierwszy parametr:
man 5 passwd
albo jako sufiks po kropce:
man passwd.5

Dodając przełącznik -L
można określić język – jeśli dana strona jest dostępna w tym języku, zostanie w nim wyświetlona, jeśli nie – otrzymamy tekst angielski
man -L pl

Ten system ma jedną wadę: żeby przeczytać instrukcję użytkowania trzeba zainstalować program. Dlatego manpages są dostępne również w postaci serwisów internetowych, umożliwiających zajrzenie do opisu programu jeszcze przed jego zainstalowaniem i zorientowanie się, czy to jest to, co jest nam w danym momencie potrzebne. By wymienić tylko kilka takich stron:
- http://man.he.net – podstawowe formatowanie, z wyszukiwarką
- https://man7.org/linux/man-pages/ – lepiej formatowane, ale bez wyszukiwarki
- https://man.cx/ – z wyszukiwarką i tłumaczeniem na różne języki
Z pewnością można ich znaleźć znacznie więcej.
Man zawiera dużo informacji. Bywa, że zamiast zaletą staje się to wadą – kiedy trzeba szybko znaleźć potrzebną kombinację parametrów, nawet wyszukiwanie nie zawsze pomaga. Dlatego – z duchem czasu i coraz szybciej biegnącego życia – powstają szybkie ściągi, które co prawda nie opisują dokładnie działania programu, ale za to dostarczają błyskawiczne podpowiedzi co jak może on zrobić.
tldr
Program tldr
, który wziął swoją nazwę oczywiście od znanego powszechnie skrótu TL;DR (Too long, didn’t read – zbyt długie, nie czytałem), jest zbiorem tworzonych przez społeczność ściąg dla tych, którym nie chce się czytać długich opisów w manpage’ach.
Projekt jest ambitny, obejmuje kilka platform – poza linuksem znajdziemy opis komend dla Windows, OSX, Windows, SunOS, a nawet Androida. Przygotowywane też są wersje w różnych językach, ale na razie nie wygląda to imponująco: na ponad 2 tysiące(!) opisów w języku angielskim zaledwie 70 ma swoją wersję polską. Cóż – to jest projekt społecznościowy, to od nas zależy jak będzie się rozwijać.
Program można zainstalować za pomocą managera pakietów npm:
sudo npm install -g tldr
albo przez snap:
sudo snap install tldr
Jak widać jest niezależny od dystrybucji. Użycie programu jest intuicyjne:
tldr <nazwa polecenia>

Repozytorium (git-owe) znajduje się w katalogu ~/.tldr/tldr. Można nim zarządzać jak każdym innym projektem git-owym, pobrać najnowszą wersję (git pull), można też utworzyć nowe strony (używając składni Markdown, zgodnie z wytycznymi) i powiększyć kolekcję podpowiedzi.
Źródła ściągawek są w repozytorium projektu.
Cały ten tekst powstał dlatego, że próbowałem znaleźć jakiś rozsądny opis programu byobu. Manpage ma 21kB i jest kiepsko sformatowany, trudno czytelny. A mi była potrzebna ściąga „na szybko”. Dzięki temu udało się rozpoznać zestawy dostępnych „ściągawek”. Niestety, ściągawki do byobu nie znalazłem. Nie pozostaje nic innego jak… napisać ją samemu i dodać do repozytorium. Tak działa świat Linuksa…
Hmm niestety myślę że coś takiego bardzo szybko zaczęłoby zamieniać się w goofle/Ew. Stack overflow w terminalu 😂
man -k “copy files”
copy files: nothing appropriate.
man -k “copy files”
copy files: nothing appropriate.
man -k “USB device”man -k passwd
USB deviceman: nothing appropriate.
man -k “USB device” 16
USB device: nothing appropriate.
– – –
ArchLinux (cokolwiek to znaczy 😉
– – –
locale SIGINT
LANG=en_US.utf8
LC_CTYPE=pl_PL.UTF-8
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE=C
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=pl_PL.UTF-8
LC_NAME=pl_PL.UTF-8
LC_ADDRESS=pl_PL.UTF-8
LC_TELEPHONE=pl_PL.UTF-8
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION=pl_PL.UTF-8
LC_ALL=
piotr ~$ man -k "copy files"
cp (1) - copy files and directories
cpio (1) - copy files to and from archives
git-checkout-index (1) - Copy files from the index to the working tree
install (1) - copy files and set attributes
piotr ~$ man -k "USB device"
lsusb (8) - list USB devices
usb-devices (1) - print USB device details
usb_modeswitch (1) - control the mode of 'multi-state' USB devices
piotr ~$ man -k "passwd"
update-passwd (8) - bezpiecznie aktualizuj /etc/passwd, /etc/shadow i /etc/group
chgpasswd (8) - update group passwords in batch mode
chpasswd (8) - update passwords in batch mode
fgetpwent_r (3) - get passwd file entry reentrantly
getpwent_r (3) - get passwd file entry reentrantly
gpasswd (1) - administer /etc/group and /etc/gshadow
grub-mkpasswd-pbkdf2 (1) - generate hashed password for GRUB
mksmbpasswd (8) - formats a /etc/passwd entry for a smbpasswd file
openssl-passwd (1ssl) - compute password hashes
pam_localuser (8) - require users to be listed in /etc/passwd
passwd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password file
passwd2des (3) - RFS password encryption
smbpasswd (5) - The Samba encrypted password file
smbpasswd (8) - change a user's SMB password
Ubunciak. Może czas zmienić dystrybucję? 😉
Przydałoby się coś takiego: chcę np. kopiować pliki, wchodzę np. w jakiś man, piszę kopiowanie plików i wyskakują polecenia z krótkim opisem. analogiczne inne działania, czyli taki mega praktyczny i prosty system pomocy.
man -k "copy files"
można użyć
apropos "copy files"
– jest to opisane bliżej początku artykułu.
Wyszukiwanie działa tylko w języku angielskim
Bardzo przydatne artykuł na temat poszukiwania informacji o linuksowych komendach wyjaśnione w sposób prosty i zrozumiały. Nie zdarza się to często w rodzimym języku.