Ściąganie surowo wskazane

Polecenia konsolowe mają mnóstwo przełączników, które trudno jest spamiętać. Zawsze były sposoby, by pomóc pamięci, teraz pojawiły się nowe.
Spis treści Hide
  1. TL;DR
  2. –help
  3. man
  4. tldr

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:

  1. Programy i polecenia shell
  2. Wywołania systemowe (dostarczane przez jądro)
  3. Wywołania bibliotek (funkcje w bibliotekach programów)
  4. Pliki specjalne (zazwyczaj dotyczy to /dev)
  5. Format plików i konwencje (np. format pliku /etc/passwd)
  6. Gry
  7. Różne
  8. Polecenia administracyjne (roota)
  9. 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:

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…

7 komentarzy
  1. Hmm niestety myślę że coś takiego bardzo szybko zaczęłoby zamieniać się w goofle/Ew. Stack overflow w terminalu 😂

  2. 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=


    1. 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ę? 😉

  3. 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.

    1. 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

  4. 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.

Komentarze są wyłączone.

Poprzedni post

Ventoy z obsługą Secure Boot

Następny post
EuroLinux Desktop 9

EuroLinux Desktop, czyli Enterprise Linux dla użytkowników Windows

Powiązane posty