Jak stworzyć stronę man w systemie Linux
Opublikowany: 2022-01-29
Chcesz, aby Twój nowy program dla systemu Linux wyglądał profesjonalnie? Daj mu stronę man . Pokażemy Ci najłatwiejszy i najszybszy sposób na zrobienie tego.
Człowiek Pages
W starym dowcipie uniksowym jest ziarno prawdy: „jedynym poleceniem, które musisz znać, jest man ”. Strony man zawierają bogactwo wiedzy i powinny być pierwszym miejscem, do którego się zwracasz, gdy chcesz dowiedzieć się czegoś o poleceniu.
Dostarczenie strony man dla narzędzia lub polecenia, które napisałeś, podnosi go z użytecznego fragmentu kodu do w pełni sformatowanego pakietu Linux. Ludzie oczekują man że zostanie udostępniona strona podręcznika dla programu napisanego dla Linuksa. Jeśli natywnie wspierasz Linuksa, strona man jest obowiązkowa, jeśli chcesz, aby Twój program był traktowany poważnie.
Historycznie strony man były pisane przy użyciu zestawu makr formatujących. Kiedy wzywasz man do otwarcia strony, wywołuje on groff w celu odczytania pliku i wygenerowania sformatowanego wyjścia, zgodnie z makrami w pliku. Dane wyjściowe są przesyłane do less , a następnie wyświetlane.
Jeśli man tworzysz często stron podręcznika, napisanie jednej i ręczne wstawienie makr to ciężka praca. Czynność tworzenia strony podręcznika man która poprawnie analizuje i wygląda dobrze, może wyprzedzić twój cel, jakim jest dostarczenie zwięzłego, ale dokładnego opisu twojego polecenia.
Powinieneś koncentrować się na treści, a nie walczyć z niejasnym zestawem makr.
POWIĄZANE: Jak korzystać z polecenia man Linuksa: Ukryte tajemnice i podstawy
pandoc na ratunek
Program pandoc odczytuje pliki znaczników i generuje nowe w około 40 różnych językach znaczników i formatach dokumentów man w tym ze strony podręcznika. To całkowicie zmienia proces pisania stron podręcznika man dzięki czemu nie musisz zmagać się z hieroglifami.
Aby rozpocząć, możesz zainstalować pandoc na Ubuntu za pomocą tego polecenia:
sudo apt-get zainstaluj pandoc

W Fedorze potrzebne polecenie to:
sudo dnf zainstaluj pandoc

Na Manjaro wpisz:
sudo pacman -Syu pandoc

POWIĄZANE: Jak używać pandoc do konwertowania plików w wierszu poleceń systemu Linux
Sekcje człowieka Strona
strony man zawierają sekcje zgodne ze standardową konwencją nazewnictwa. Sekcje, których potrzebuje twoja strona man , są podyktowane złożonością polecenia, które opisujesz.
Większość stron podręcznika zawiera przynajmniej następujące sekcje:
- Nazwa : nazwa polecenia i zwięzła, jednowierszowa opisująca jego funkcję.
- Streszczenie : zwięzły opis wywołań, których można użyć do uruchomienia programu. Pokazują one typy akceptowanych parametrów wiersza polecenia.
- Opis : opis polecenia lub funkcji.
- Opcje : lista opcji wiersza poleceń i ich funkcji.
- Przykłady : kilka przykładów powszechnego użycia.
- Wartości wyjściowe : możliwe kody powrotu i ich znaczenie.
- Błędy : lista znanych błędów i dziwactw. Czasami jest to uzupełniane (lub zastępowane) linkiem do śledzenia problemów dla projektu.
- Autor : osoba lub osoby, które napisały polecenie.
- Prawa autorskie : Twoja wiadomość o prawach autorskich. Obejmują one również zazwyczaj rodzaj licencji, na której program jest wydawany.
Jeśli przejrzysz niektóre z bardziej skomplikowanych stron podręcznika man zobaczysz, że istnieje również wiele innych sekcji. Na przykład spróbuj man man . Nie musisz jednak uwzględniać ich wszystkich — tylko tych, których naprawdę potrzebujesz. na stronach man nie ma miejsca na przegadywanie.
Niektóre inne sekcje, które zobaczysz dość często, to:
- Zobacz też : Inne polecenia związane z tematem, które niektórzy uznają za przydatne lub istotne.
- Pliki : lista plików zawartych w pakiecie.
- Ostrzeżenia : Inne punkty, o których należy wiedzieć lub na które należy uważać.
- Historia : historia zmian polecenia.
Sekcje podręcznika
Podręcznik Linuksa składa się ze wszystkich stron podręcznika man które są następnie podzielone na następujące ponumerowane sekcje:
- Programy wykonywalne: Lub polecenia powłoki.
- Wywołania systemowe: Funkcje dostarczane przez jądro.
- Wywołania bibliotek: Funkcje w bibliotekach programów.
- Pliki specjalne.
- Formaty plików i konwencje: Na przykład „/etc/passwd”.
- Gry.
- Różne: pakiety i konwencje makr, takie jak
groff. - Polecenia administracyjne systemu: zwykle zarezerwowane dla roota.
- Procedury jądra: zwykle nie są instalowane domyślnie.
Każda strona man musi wskazywać, do której sekcji należy, i musi być również przechowywana w odpowiedniej lokalizacji dla tej sekcji, jak zobaczymy później. Strony man dla poleceń i narzędzi znajdują się w sekcji pierwszej.
Format strony człowieka
Format makra groff nie jest łatwy do wizualnej analizy. Natomiast przecena to pestka.
Poniżej znajduje się strona podręcznika w groff .

Ta sama strona jest pokazana poniżej w przecenach.

Przednia sprawa
Pierwsze trzy linie tworzą coś, co nazywa się przednią materią . Wszystkie muszą zaczynać się znakiem procentu ( % ), bez spacji wiodących, ale jedną po niej, po której następuje:
- Pierwsza linia: zawiera nazwę polecenia, po której następuje sekcja podręcznika w nawiasach, bez spacji. Nazwa staje się lewą i
mansekcją nagłówka strony podręcznika. Zgodnie z konwencją nazwa polecenia jest pisana wielkimi literami, chociaż znajdziesz wiele takich, które nie są. Wszystko, co następuje po nazwie polecenia i numerze sekcji podręcznika, staje się lewą sekcją stopki. Wygodnie jest używać tego do numeru wersji oprogramowania. - Drugi wiersz: Nazwiska autora (autorów). Są one wyświetlane w automatycznie generowanej sekcji
manstrony podręcznika. Nie musisz dodawać sekcji „Autorzy” — wystarczy podać tutaj co najmniej jedno nazwisko. - Trzecia linia: Data, która również staje się środkową częścią stopki.
Nazwa
Sekcje są oznaczone liniami zaczynającymi się od znaku liczby ( # ), który jest znacznikiem wskazującym nagłówek w przecenach. Znak liczby ( #) musi być pierwszym znakiem w wierszu, po którym następuje spacja.
Sekcja nazwy zawiera zgrabny jednowiersz, który zawiera nazwę polecenia, spację, łącznik ( - ), spację, a następnie bardzo krótki opis działania polecenia.
Streszczenie
Streszczenie zawiera różne formaty, które może przyjmować wiersz poleceń. To polecenie może zaakceptować wzorzec wyszukiwania lub opcję wiersza polecenia. Dwie gwiazdki ( ** ) po obu stronach nazwy polecenia oznaczają, że nazwa będzie pogrubiona na stronie man . Pojedyncza gwiazdka ( * ) po obu stronach jakiegoś tekstu powoduje, że strona podręcznika wyświetla man jako podkreśloną.
Domyślnie po podziale wiersza następuje pusta linia. Aby wymusić twardą przerwę bez pustej linii, możesz użyć końcowego ukośnika odwrotnego ( \ ).

Opis

Opis wyjaśnia, co robi polecenie lub program. Powinien zwięźle opisywać ważne szczegóły. Pamiętaj, że nie piszesz podręcznika użytkownika.
Użycie dwóch znaków liczbowych ( ## ) na początku wiersza tworzy nagłówek drugiego poziomu. Możesz ich użyć, aby podzielić opis na mniejsze kawałki.
Opcje

Sekcja opcji zawiera opis wszystkich opcji wiersza polecenia, których można użyć z poleceniem. Zgodnie z konwencją są one wyświetlane pogrubioną czcionką, dlatego należy umieścić dwie gwiazdki ( ** ) przed i po nich. Dołącz opis tekstowy opcji w następnym wierszu i zacznij go od dwukropka ( : ), po którym następuje spacja.
Jeśli opis jest wystarczająco krótki, man wyświetli go w tym samym wierszu, co opcja wiersza poleceń. Jeśli jest za długi, jest wyświetlany jako akapit z wcięciem, który zaczyna się w wierszu poniżej opcji wiersza polecenia.
Przykłady

Sekcja przykładów zawiera wybór różnych formatów wiersza poleceń. Zwróć uwagę, że linie opisu rozpoczynamy od dwukropka ( : ), tak jak w przypadku sekcji z opcjami.
Wyjdź z wartości

Ta sekcja zawiera listę wartości zwracanych przez polecenie, które wysyła z powrotem do procesu wywołującego. Może to być powłoka, jeśli wywołałeś ją z wiersza poleceń, lub skrypt, jeśli uruchomiłeś go ze skryptu powłoki. Również w tej sekcji rozpoczynamy linie opisu od dwukropka ( : ).
Robaki

Sekcja błędów zawiera listę znanych błędów, niedociągnięć lub dziwactw, o których ludzie powinni wiedzieć. W przypadku projektów typu open source często umieszcza się tutaj link do narzędzia do śledzenia problemów projektu, aby sprawdzić stan wszelkich błędów lub zgłosić nowe.
prawa autorskie

Sekcja dotycząca praw autorskich zawiera oświadczenie o prawach autorskich i zazwyczaj opis typu licencji, na podstawie której oprogramowanie zostało wydane.
Wydajny przepływ pracy
Możesz edytować swoją stronę man w swoim ulubionym edytorze. Większość obsługujących wyróżnianie składni będzie świadoma przecen i pokolorowania tekstu w celu wyróżnienia nagłówków, a także pogrubienia i podkreślenia. To świetnie, jeśli chodzi o to, że man patrzysz na wyrenderowaną stronę podręcznika, co jest prawdziwym dowodem w budyniu.
Otwórz okno terminala w katalogu, który zawiera twój plik przecen. Po otwarciu w edytorze okresowo zapisuj plik na dysku twardym. Za każdym razem możesz wykonać następujące polecenie w oknie terminala:
pandoc ms.1.md -s -t człowiek | /usr/bin/man -l -

Po użyciu tego polecenia możesz nacisnąć strzałkę w górę, aby je powtórzyć, a następnie nacisnąć klawisz Enter.
To polecenie wywołuje również pandoc w pliku markdown (tutaj nazywa się „ms.1.md”):
- Opcja
-s(samodzielna) generuje pełną stronę podręcznika od góry do dołumanamantylko tekst w formacie podręcznika. - Opcja
-t(typ wyjścia) z operatorem „man” nakazujepandocwygenerowanie wyjścia w formacieman. Nie powiedzieliśmypandoc, aby wysyłał swoje dane wyjściowe do pliku, więc zostanie on wysłany nastdout.
Przesyłamy również to wyjście do man za pomocą opcji -l (plik lokalny). Mówi man , aby nie przeszukiwał bazy danych man w poszukiwaniu strony man . Zamiast tego powinien otworzyć nazwany plik. Jeśli nazwa pliku to - , man pobierze dane wejściowe ze stdin .
Sprowadza się to do tego, że możesz zapisać z edytora i nacisnąć Q, aby zamknąć man , jeśli jest uruchomiony w oknie terminala. Następnie możesz nacisnąć strzałkę w górę, a następnie Enter, aby zobaczyć wyrenderowaną wersję strony man bezpośrednio w man .
POWIĄZANE: Czym są stdin, stdout i stderr w systemie Linux?
Tworzenie Twojej strony dla mężczyzn
Po zakończeniu tworzenia strony man , musisz utworzyć jej ostateczną wersję, a następnie zainstalować ją w swoim systemie. Następujące polecenie mówi pandoc , aby wygenerował stronę podręcznika man nazwie „ms.1”:
pandoc ms.1.md -s -t man -o ms.1

Jest to zgodne z konwencją nazywania strony podręcznika man po poleceniu, które opisuje, i dołączania numeru sekcji podręcznika tak, jakby był to rozszerzenie pliku.
Tworzy to plik „ man ”, który jest naszą nową stroną podręcznika. Gdzie to położymy? To polecenie powie nam, gdzie man szuka stron man :
manpath

Wyniki dają nam następujące informacje:
- /usr/share/man:
manstandardowej biblioteki stron podręcznika. Nie dodajemy stron do tej biblioteki. - /usr/local/share/man: To dowiązanie symboliczne wskazuje na „/usr/local/man”.
- /usr/local/man: Tutaj musimy umieścić naszą nową stronę
man.
Zauważ, że różne sekcje podręcznika znajdują się w swoich własnych katalogach: man1, man2, man3 i tak dalej. Jeśli katalog dla sekcji nie istnieje, musimy go utworzyć.
W tym celu wpisujemy:
sudo mkdir /usr/local/man/man1
Następnie kopiujemy plik „ms.1” do właściwego katalogu:
sudo cp ms.1 /usr/local/man/man1
man oczekuje man że strony podręcznika zostaną skompresowane, więc użyjemy do ich kompresji programu gzip :
sudo gzip /usr/local/man/man1/ms.1
Aby man dodał nowy plik do swojej bazy danych, wpisz:
sudo mandb

Otóż to! Możemy teraz nazwać naszą nową stronę podręcznika tak samo jak każdą inną man wpisując:
mężczyzna pani

Nasza nowa strona man została znaleziona i wyświetlona.

Wygląda jak każda inna strona podręcznika man z pogrubionym, podkreślonym i wciętym tekstem w odpowiednich miejscach.

Linie opisu, które pasują do opcji, którą opisują, pojawiają się w tym samym wierszu. Linie, które są zbyt długie, aby zmieścić się, pojawiają się pod opcją, którą opisują.

Automatycznie wygenerowaliśmy również sekcję „Autorzy”. Stopka zawiera również numer wersji oprogramowania, datę i nazwę polecenia, zgodnie z definicją z przodu.
Jeśli chcesz . . .
Gdy pandoc utworzy stronę podręcznika użytkownika man możesz również bezpośrednio edytować plik w formacie makra groff przed przeniesieniem man do katalogu strony podręcznika i za pomocą gzip go.
