Gdzie są udokumentowane polecenia dostępne w oknie strony podręcznika i czy są one zależne od systemu?

9

Korzystając z Linuksa od lat, nagle odkryłem, że nie wiem, jak manpoprawnie używać polecenia. Powszechnie wiadomo, że można pisać w qcelu opuszczenia strony podręcznika, /wyszukiwania i innych. Nie wiem jednak, gdzie są one udokumentowane. Próbowałem man man man -a man info mani Googling, bez powodzenia.

Proszę wskazać mi właściwą pozycję do poszukiwania tych informacji, nawet jeśli są one właściwe man mani zdarzyło mi się, że przeoczyłem je, jest całkowicie w porządku, dajcie mi znać.

Czy te polecenia są różne dla różnych systemów operacyjnych lub dla różnych dystrybucji systemu Linux?

Weijun Zhou
źródło
Czy strony man nie są po prostu przeglądane less? (Jest przynajmniej w mojej dystrybucji i hpokazuje podsumowanie lesspoleceń)
Rastapopoulos
@Rastapopoulos Czy strony man nie są po prostu przeglądane less? Nie. Ponieważ lessnie jest standardowym narzędziem.
Andrew Henle,
Podejrzewam, że możesz użyć readlink -f /usr/bin/pagerlub, readlink -f $(which pager)aby dowiedzieć się, który masz pager (domyślnie /bin/less) niż manużyty pager. Może (powinien) działać bezpośrednioman pager
Hastur
2
Jeśli czytasz swoje strony podręcznika użytkownika za pomocą morelub less, możesz wpisać hpomoc. (lub możesz po prostu użyć emacs...)
Alex Vong,
1
Jeśli wpiszesz ?lub hw wierszu polecenia, wyświetli się lista poleceń.
Barmar

Odpowiedzi:

11

Rzeczywiście jest to właściwe na stronie podręcznika man, w ramach podtytułu „Kontrolowanie sformatowanego wyjścia” i powtórzone później w sekcji „ŚRODOWISKO” dla lepszej miary:

Domyślnie man używa pager -s.
Strona instrukcja wyjaśnia jak istnieje hierarchia zmiennych środowiskowych i opcji wiersza poleceń ( PAGER, MANPAGER, i --pager) na nadpisanie domyślnych.

Tak to czyta w systemach takich jak Debian Linux. Natomiast w systemach takich jak Oracle Linux man-dbpakiet został zbudowany z innymi ustawieniami domyślnymi, co jednak nadal znajduje odzwierciedlenie na stronie podręcznika w tych samych miejscach:

Domyślnie man używa less -s.

Do man-dbpróby pakietów do automatycznego wykrywania, w czasie kompilacji, która domyślny pagera do Wbudowany do polecenia, a dokument w jego podręczniku, z less, more, i pager.

W systemach takich jak Debian Linux, pagerpolecenie jest częścią systemu „alternatywnego” i może być mapowane na jedno z kilku aktualnych poleceń:

jdebp% update-alternatives --list pager
/ bin / mniej
/ bin / more
/ usr / bin / pg
/ usr / bin / w3m
jdebp%

Tak więc należy zapoznać się z odpowiednimi stronami podręczników, aby dowiedzieć się, jak je wyprowadzić z klawiatury, zgodnie z wybraną alternatywą. Przydatnie, system alternatyw Debiana synchronizuje stronę podręcznika z wybranym poleceniem, więc czytanie tej strony podręcznika jest dość proste:

pager

JdeBP
źródło
5

Mężczyzna korzysta z pagera, aby wyświetlić treść.

Dokładne szczegóły zależą od używanej wersji man.

W przypadku wersji używanej w wielu systemach:

  • Jeśli -p pagerpodano opcję, wówczas używany jest pager.
  • W przeciwnym razie MANPAGERzostanie ustawiona zmienna środowiskowa .
  • W przeciwnym razie, jeśli PAGERjest ustawiony, jest używany.
  • W przeciwnym razie domyślnym jest użycie /usr/bin/less

Jeśli strona podręcznika jest w formacie HTML, wówczas BROWSERzamiast MANPAGER/PAGER

Debian używa man-dbinnych ustawień domyślnych.

Przeczytaj man manszczegóły

PiedPiper
źródło
Dziękuję za Twoją odpowiedź. Chociaż odpowiedź wyjaśnia, jak to mandziała, chciałbym cię zapytać, czy możesz zrobić przysługę, aby wskazać mi właściwe miejsce, w którym to zachowanie jest udokumentowane. Dziękuję Ci.
Weijun Zhou,
W moich man manwynikach (ponownie manwersja: 2.6.3) napisano, że „domyślnie używa się mniej -s.”, Więc spodziewam się, że zależy to od wersji i systemu?
Weijun Zhou,
1
To tylko przykład standardowej filozofii uniksowej: małe i proste polecenia, które działają na strumieniach tekstowych i robią dokładnie jedną rzecz i robią to dobrze. Formatowanie instrukcji i dzielenie na strony to dwie rzeczy, dlatego są one wykonywane przez dwa różne narzędzia. W ten sposób narzędzie do paginacji może być ponownie wykorzystane do innych zadań, nie tylko do wyświetlania stron podręcznika.
Jörg W Mittag,
2

Dzięki @Rastapopoulos znajduję linię związaną z lessw man manstarym Linux- manie ( wersja 1.6f) w sekcji ŚRODOWISKO, która mówi:

PRZEGLĄDARKA Nazwa przeglądarki używanej do wyświetlania stron podręcznika HTML. Jeśli nie jest ustawiony, /usr/bin/lessjest używany.

Jednak w nowszym pudełku ( manwersja: 2.6.3) wiersz ten został zastąpiony przez

PRZEGLĄDARKA Jeśli ustawiono $ BROWSER, jego wartością jest rozdzielana dwukropkami lista poleceń, z których każda z kolei służy do próby uruchomienia przeglądarki WWW dla man --html. W każdym poleceniu% s jest zastępowany plikiem? nazwa zawierająca wyjście HTML z groffa, %% jest zastąpiony pojedynczym znakiem procentowym (%), a% c jest zastąpiony dwukropkiem (:).

Na podstawie tych informacji uważam, że jest on lessdomyślnie sformatowany (przynajmniej w pierwszym przypadku). Jednak nawet jeśli tak jest, jest to udokumentowane w sposób, który nie wydaje mi się jasny (lub nauczyłem się manpolecenia w niewłaściwy sposób).

Weijun Zhou
źródło
2

W przypadku różnych systemów operacyjnych nie ma realnego sposobu na udzielenie pełnej odpowiedzi na pytanie, ponieważ manimplementacja nie jest tak dokładnie określona.

Standardową odpowiedź na POSIX, a nie specyficzną dla Linuksa odpowiedź można znaleźć w dokumentacji POSIXman :

IMIĘ

man - display system documentation

STRESZCZENIE

man [-k] name...

...

ZMIENNE ŚRODOWISKA

Następujące zmienne środowiskowe wpływają na wykonywanie man:

LANG

Podaj wartość domyślną dla zmiennych internacjonalizacji, które są nieustawione lub mają wartość NULL. (Patrz Zmienne internacjonalizacji XBD, aby zapoznać się z pierwszeństwem zmiennych internacjonalizacji używanych do określania wartości kategorii ustawień narodowych).

LC_ALL

Jeśli ustawiono niepustą wartość ciągu, zastąp wartości wszystkich innych zmiennych internacjonalizacji.

LC_CTYPE

Określić ustawienia regionalne interpretacji sekwencji bajtów danych tekstowych jako znaków (na przykład jednobajtowe w przeciwieństwie do wielobajtowych znaków w argumentach i w zbiorczej bazie danych). Wartość LC_CTYPE nie musi wpływać na format informacji zapisywanych o operandach nazw.

LC_MESSAGES

Określić ustawienia narodowe, które należy zastosować, aby wpłynąć na format i treść komunikatów diagnostycznych zapisanych na standardowy błąd i komunikatów informacyjnych zapisanych na standardowe wyjście.

NLSPATH

Określ lokalizację katalogów komunikatów do przetwarzania LC_MESSAGES.

PAGER

Określ komendę filtrowania danych wyjściowych do zapisania danych wyjściowych na terminalu. Każdy ciąg akceptowalny jako argument ciągu komendy dla polecenia powinien być poprawny. Gdy standardowym wyjściem jest urządzenie końcowe, wyjście strony referencyjnej będzie przesyłane potokowo przez polecenie. Jeśli zmienna PAGER ma wartość NULL lub nie jest ustawiona, polecenie powinno być albo innym narzędziem paginatora udokumentowanym w dokumentacji systemu.sh-cmore

Zwróć uwagę na sekcję RATIONALE, która opisuje, dlaczego mannie jest tak w pełni określony:

RACJONALNE UZASADNIENIE

Uznaje się, że użyteczność man ma jedynie minimalną użyteczność, jak określono. Opinia standardowych programistów była mocno podzielona co do tego, ile lub jak mało informacji człowiek powinien być zobowiązany do dostarczenia. Uważali jednak, że zapewnienie przenośnego sposobu uzyskiwania dostępu do dokumentacji pomogłoby w przenoszeniu użytkowników. Argumenty przeciwko pełniejszej specyfikacji były następujące:

  • Duże ilości dokumentacji nie powinny być wymagane w systemie, który nie ma nadmiaru miejsca na dysku.

  • Obecny system ręczny nie przedstawia informacji w sposób, który znacznie ułatwia przenoszenie użytkownika.

  • „Lepszy system pomocy” jest obecnie obszarem, w którym dostawcy uważają, że mogą wnieść wartość dodaną do swoich implementacji POSIX.

Rozważono opcję -f, ale z powodu różnic implementacyjnych nie została ona uwzględniona w tym tomie POSIX.1-2008.

Opis został zmieniony, aby był bardziej szczegółowy na temat tego, co ma być wyświetlane dla narzędzia. Standardowi programiści uznali za niewystarczające wyświetlanie tylko streszczenia bez krótkiego opisu tego, co robi każda opcja i operand.

Wpis „celu”, który ma być zawarty w bazie danych, może być podobny do tytułu sekcji (pomniejszonego o prefiks numeryczny) z tego tomu POSIX.1-2008 dla każdego narzędzia. Tytuły te są podobne do tytułów używanych w tym celu w systemach historycznych.

Zobacz mailx, aby uzyskać uzasadnienie dotyczące domyślnego paginatora.

Zastrzeżenie w opisie LC_CTYPE zostało dodane, ponieważ implementacja nie zapewnia stron referencyjnych dla wszystkich obsługiwanych ustawień regionalnych w każdym systemie; zmiana LC_CTYPE niekoniecznie przekłada stronę referencyjną na inny język. Jest to równoważne z bieżącym stanem LC_MESSAGES w komunikatach specyficznych dla ustawień narodowych POSIX.1-2008 nie są jeszcze wymagane.

Historyczna zmienna MANPATH nie jest uwzględniona w POSIX, ponieważ nie podjęto żadnej próby określenia konwencji nazewnictwa dla plików stron referencyjnych, ani nawet nie nakazano, aby były to pliki. W niektórych implementacjach mogą to być prawdziwa baza danych, plik hipertekstowy, a nawet stałe ciągi znaków w pliku wykonywalnym man. Standardowi programiści uznali, że przenośność stron referencyjnych jest poza zakresem ich pracy. Jednak użytkownicy powinni mieć świadomość, że MANPATH jest zaimplementowany w wielu systemach historycznych i że można go użyć do dostosowania wzorca wyszukiwania dla stron referencyjnych z różnych kategorii (narzędzia, funkcje, formaty plików itp.), Gdy administrator systemu ujawnia lokalizację i konwencje dla stron referencyjnych w systemie.

...

Dyskusja uzasadnienia paginatora ze strony mailx :

Paginator wybrany, gdy PAGER ma wartość zerową lub jest rozbrojony, jest częściowo nieokreślony, aby umożliwić historycznej praktyce Systemu V korzystanie z pg jako domyślnej. Ominięcie funkcji paginacji, na przykład zadeklarowanie, że kot jest paginatorem, nie spełnia zamierzonego znaczenia tego opisu. Jednak każdy „użytkownik przenośny” musiałby wyraźnie ustawić PAGER, aby uzyskać swój preferowany paginator na wszystkich systemach. Wybór paginatora został częściowo nieokreślony, w przeciwieństwie do wyboru edytora VISUAL (obowiązkowo jest to vi), ponieważ większość historycznych pagerów podąża za wspólnym tematem wprowadzania przez użytkowników, podczas gdy redaktorzy różnią się znacznie.

Andrew Henle
źródło