Wyszukiwanie w witrynie

Jak drukować i eksportować strony podręcznika do PDF w Linux i Unix


Potrzebujesz przekonwertować strony podręcznika Unix na PDF lub je wydrukować? Ten kompleksowy przewodnik pokazuje dokładnie, jak eksportować, drukować i zapisywać strony podręcznika na systemach Linux, macOS i BSD za pomocą polecenia man -t i ps2pdf.

Niezależnie od tego, czy potrzebujesz szybkiego pliku PDF do odniesienia, chcesz wydrukować dokumentację do nauki offline, czy potrzebujesz udostępnić strony podręcznika swojemu zespołowi, znajdziesz tutaj kompletny proces pracy.

Ten przewodnik zawiera również rozwiązywanie problemów dla powszechnych błędów oraz ściągę do szybkiego odniesienia.

Szybkie podsumowanie

Użyj man -t command | ps2pdf - command.pdf, aby natychmiast przekonwertować dowolną stronę podręcznika man do PDF. Zastąp command rzeczywistą nazwą polecenia.

Przykład:

man -t man | ps2pdf - man.pdf

Zrozumienie eksportu stron podręcznika: Jak działa man -t

Kiedy uruchamiasz man ls, system pobiera plik źródłowy (napisany w formacie roff), przetwarza go za pomocą groff (formatatora tekstu GNU) i wyświetla za pomocą programu typu pager, takiego jak less.

Użycie flagi -t mówi man, aby zamiast tego wyświetlał PostScript — format przeznaczony do drukowania, który można łatwo przekonwertować na PDF lub wysłać bezpośrednio do drukarek. To jest podstawa dla wszystkich procesów eksportu.

Co dzieje się za kulisami:

  1. man lokalizuje odpowiedni plik strony podręcznika (np. /usr/share/man/man1/ls.1.gz)
  2. groff formatuje źródło roff do PostScript
  3. PostScript jest albo wyświetlany, zapisywany, albo przekazywany do innego narzędzia

Dlaczego PostScript? To niezależny od urządzenia język opisu strony, który drukarki rozumieją natywnie, i który można łatwo przekształcić w PDF.

Co nowego w 2026

Aktualizacje Linuxa:

  • Wiele nowoczesnych dystrybucji Linuksa jest teraz dostarczanych z groff 1.23+ z ulepszonym wsparciem dla Unicode.
  • Systemy oparte na systemd zapewniają dokumentację systemd i journald za pośrednictwem standardowych stron podręcznika (man).
  • xdg-open przez SSH jest zawodny na systemach opartych na Waylandzie.

Zmiany w macOS:

  • macOS Sonoma (14.0+) usunął narzędzie pstopdf - użyj zamiast tego ps2pdf z Ghostscript.
  • Aplikacja Preview.app nie obsługuje już PostScript w Sequoia (15.0+).
  • Ghostscript jest teraz wymagany na macOS do przepływów pracy konwersji PostScript na PDF.

Nowe narzędzia:

  • mandoc jest domyślnym formatownikiem stron podręcznika (man-page) w systemach OpenBSD, FreeBSD i nowoczesnym macOS.
  • Nowsze implementacje col generują czystszy tekst zwykły niż starsze wersje.
  • Nowoczesne terminale nie obsługują PostScript. Wyniki PostScript muszą być przeglądane za pomocą przeglądarki dokumentów lub konwertowane na PDF.

Wymagania wstępne

Potrzebne narzędzia (Co jest potrzebne)

W całym tym przewodniku będziemy używać następujących narzędzi:

  • man - Przeglądarka stron podręcznika (standardowa we wszystkich systemach Unix)
  • groff - formatownik tekstu GNU troff
  • ps2pdf - konwerter PostScript na PDF (część Ghostscript)
  • lp/lpr - polecenia drukowania CUPS
  • mandoc - formatownik stron podręcznika BSD
  • col - Filtruj odwrócone znaki końca linii z wejścia

Już zainstalowane na większości systemów:

  • man - Przeglądarka stron podręcznika (standardowa we wszystkich systemach Unix/Linux)
  • groff lub mandoc - Systemy formatowania stron podręcznika (groff na Linux, mandoc na BSD/macOS)
  • col - filtr tekstu do oczyszczania sformatowanego wyjścia (część util-linux w systemie Linux)

Do konwersji PDF (wymaga instalacji):

  • ps2pdf - konwerter PostScript na PDF

    • Część pakietu Ghostscript
    • Nie jest domyślnie uwzględniany w macOS

Do druku:

  • CUPS (Common Unix Printing System) z skonfigurowaną drukarką
  • polecenie lp lub lpr

Instalowanie Ghostscript (dla ps2pdf)

Aby zainstalować Ghostscript w systemie Linux, użyj następujących poleceń.

Linux:

# Alpine Linux
apk add ghostscript

# Arch Linux / EndeavourOS / Manjaro
sudo pacman -S ghostscript

# Debian / Ubuntu / Linux Mint / Pop!_OS
sudo apt update && sudo apt install ghostscript

# RHEL / Fedora / CentOS / AlmaLinux / Rocky Linux
sudo dnf install ghostscript

# OpenSUSE
sudo zypper install ghostscript

BSD:

# FreeBSD
sudo pkg install ghostscript
# OpenBSD
doas pkg_add ghostscript
# NetBSD
pkgin install ghostscript

macOS:

# Using Homebrew (install from https://brew.sh if needed)
brew install ghostscript

# Or using MacPorts
sudo port install ghostscript

Sprawdź instalację

Sprawdź, czy narzędzia są dostępne:

which ps2pdf  # Should return: /usr/bin/ps2pdf or similar
which man     # Should return: /usr/bin/man
which groff   # Should return: /usr/bin/groff
lpstat -p     # Lists configured printers

Jeśli ps2pdf jest niedostępny po zainstalowaniu Ghostscript, spróbuj:

# Find where it was installed
find /usr -name ps2pdf 2>/dev/null

# Or check Ghostscript version
gs --version

Eksportowanie strony podręcznika do PDF (zalecany sposób pracy)

PDF jest najbardziej przenośnym formatem do udostępniania i archiwizowania stron podręcznika.

Podstawowy eksport PDF

man -t ls | ps2pdf - ls.pdf

To polecenie konwertuje stronę podręcznika ls na plik PDF o nazwie ls.pdf.

Rozkładając to na części:

  • man -t ls generuje PostScript dla polecenia ls
  • | przesyła wynik do następnego polecenia
  • ps2pdf konwertuje PostScript na PDF
  • - mówi ps2pdf, aby czytał ze standardowego wejścia
  • ls.pdf to nazwa pliku wyjściowego

Eksportuj stronę podręcznika do PDF i otwórz ją jednym poleceniem

Następujące polecenia przekonwertują stronę podręcznika podanego polecenia na plik PDF i natychmiast otworzą ten PDF w przeglądarce na pulpicie.

Linux:

man -t ssh | ps2pdf - ssh.pdf && xdg-open ssh.pdf

macOS:

man -t ssh | ps2pdf - ssh.pdf && open ssh.pdf

BSD z mandoc:

mandoc -Tpdf /usr/share/man/man1/ssh.1 > ssh.pdf && xdg-open ssh.pdf

Określ sekcje strony podręcznika

Strony podręcznika są zorganizowane w numerowanych sekcjach (1 dla poleceń, 5 dla formatów plików itp.).

Aby wyeksportować z określonej sekcji:

man -t 5 passwd | ps2pdf - passwd.5.pdf

To eksportuje dokumentację formatu pliku passwd (sekcja 5), a nie polecenie passwd (sekcja 1).

Numery sekcji podręcznika:

  • 1: Polecenia użytkownika (ls, grep, itp.)
  • 2: Wywołania systemowe (fork, open, itp.)
  • 3: Funkcje biblioteczne (printf, malloc itp.)
  • 4: Pliki specjalne (urządzenia w /dev)
  • 5: Format plików (passwd, fstab, itp.)
  • 6: Gry
  • 7: Różne (regex, ascii, itp.)
  • 8: Komendy administracji systemem (mount, iptables, itp.)

Masowe eksportowanie wielu stron podręcznika

Możesz wyeksportować wiele stron podręcznika naraz w następujący sposób:

for cmd in ls grep sed awk; do
    man -t "$cmd" | ps2pdf - "${cmd}.pdf"
done

Używaj cudzysłowów wokół zmiennych, aby bezpiecznie obsługiwać przypadki brzegowe.

Ta pętla:

  • Konwertuje strony podręcznika dla ls, grep, sed i awk
  • Zapisuje każdy jako oddzielny plik PDF
  • Tworzy pliki o nazwach ls.pdf, grep.pdf, sed.pdf i awk.pdf.

Uruchamia ten sam proces roboczy cztery razy, raz dla każdej komendy.

Drukowanie stron podręcznika

Drukuj bezpośrednio bez zapisywania plików

man -t du | lp

To wysyła PostScript bezpośrednio do domyślnej drukarki. Nie są tworzone żadne pliki pośrednie.

Jeśli chcesz zobaczyć podgląd przed drukowaniem, uruchom:

man -t du | ps2pdf - du.pdf

Drukuj na określonej drukarce

Najpierw sprawdź dostępne drukarki:

lpstat -p

Następnie określ drukarkę:

man -t date | lp -d HP_LaserJet_Pro

Zamień HP_LaserJet_Pro na rzeczywistą nazwę drukarki z lpstat.

Drukuj tylko określone strony podręcznika

Dla długich stron podręcznika takich jak bash:

man -t bash | lp -P 1-5,10

To drukuje strony 1-5 i stronę 10. Zwróć uwagę, że są to fizyczne numery stron, a nie numery sekcji podręcznika.

Jeśli chcesz najpierw podejrzeć numery stron, wykonaj:

man -t bash | ps2pdf - bash.pdf

Następnie sprawdź zakresy stron przed drukowaniem.

Drukuj w orientacji poziomej

Przydatne dla stron z szerokimi tabelami lub długimi liniami poleceń:

man -t ip | lp -o landscape

Możesz również otworzyć i sprawdzić układ przed drukowaniem, używając polecenia:

man -t ip | ps2pdf - ip.pdf

Dostosuj marginesy i skalowanie

man -t df | lp -o scaling=110 -o page-left=36

Opcje zależą od sterownika drukarki. Do typowych opcji należą:

  • scaling=<percent> - Zwiększ lub zmniejsz rozmiar (domyślnie 100)
  • page-left=<points> - Lewy margines w punktach (72 punkty=1 cal)
  • page-top=<points> - Górny margines w punktach

Proszę pamiętać, że skalowanie może powodować przycinanie.

  • Powiększona zawartość może wybiec poza stronę
  • Długie linie mogą zawijać się niespodziewanie

Zawsze najpierw przetestuj za pomocą podglądu.

Aby sprawdzić marginesy i skalę przed drukowaniem, uruchom:

man -t df | ps2pdf - df.pdf

Praca z plikami PostScript

Czasami potrzebujesz pośredniego pliku PostScript do przeglądu lub konwersji za pomocą innych narzędzi.

Zapisz stronę podręcznika jako PostScript

man -t sort > sort.ps

Wyświetl pliki PostScript

Linux/BSD:

evince sort.ps
# or
okular sort.ps
# or
xdg-open sort.ps

macOS:

open sort.ps  # Opens in Preview

Konwertuj istniejący plik PostScript na PDF

Jeśli masz już plik .ps:

ps2pdf sort.ps sort.pdf

To polecenie zapisuje stronę podręcznika sort jako plik PostScript o nazwie sort.ps.

Eksportowanie stron podręcznika jako zwykły tekst

Do wyszukiwania, kontroli wersji lub poczty e-mail, czysty tekst jest często lepszy niż sformatowany wynik.

Eksport czystego tekstu

man sort | col -bx > sort.txt

To polecenie zapisuje sort podręcznik jako czysty tekst w pliku o nazwie sort.txt.

Polecenie col -bx usuwa:

  • Znaki backspace używane do pogrubienia/podkreślenia
  • Znaki sterujące
  • Formatowanie przekreślone

Tworzy to czysty, przeszukiwalny tekst odpowiedni do użycia z poleceniem grep, edytorami lub pocztą elektroniczną.

Zwykły tekst z zachowaniem podstawowego formatowania

man sort | col -b > sort.txt

Pominięcie flagi -x zachowuje część podstawowego formatowania, jednocześnie usuwając znaki sterujące.

Specyficzne dla BSD: Korzystanie z mandoc

Nowoczesne systemy BSD (OpenBSD, FreeBSD) używają mandoc zamiast groff. Może on generować PDF bezpośrednio bez użycia PostScript jako formatu pośredniego.

Bezpośrednie generowanie PDF

mandoc -Tpdf /usr/share/man/man1/ls.1 > ls.pdf

Konwertuje stronę podręcznika ls bezpośrednio na plik PDF, bez użycia man, groff ani Ghostscript. Jest to powszechne w systemach BSD i macOS.

Znajdź plik źródłowy strony podręcznika

man -w ls

To drukuje ścieżkę do pliku strony podręcznika, którą następnie można przekazać do mandoc.

Przykładowy wynik:

/usr/share/man/man1/ls.1.gz

Pełny przepływ pracy

mandoc -Tpdf "$(man -w ls)" > ls.pdf

Znajduje rzeczywisty plik źródłowy dla strony podręcznika ls i konwertuje go bezpośrednio do PDF.

Rozwiązywanie typowych problemów

Błąd: „ps2pdf: polecenie nie znalezione”

Przyczyna: Ghostscript nie jest zainstalowany.

Rozwiązanie - Zainstaluj Ghostscript:

# Debian/Ubuntu
sudo apt install ghostscript

# RHEL/Fedora/CentOS
sudo dnf install ghostscript

# Arch Linux
sudo pacman -S ghostscript

# macOS (requires Homebrew)
brew install ghostscript

# FreeBSD
sudo pkg install ghostscript9-base

# OpenBSD
doas pkg_add ghostscript

Po instalacji sprawdź: which ps2pdf powinno zwrócić ścieżkę taką jak /usr/bin/ps2pdf.

Błąd: „Nie można otworzyć wyświetlacza” podczas używania xdg-open

Przyczyna: Próba uruchomienia aplikacji GUI przez SSH bez przekazywania X11.

Rozwiązania:

Opcja 1 - Użyj przesyłania X11:

ssh -X user@host
man -t ls | ps2pdf - ls.pdf && xdg-open ls.pdf

Opcja 2 - Skopiuj na lokalny system:

# On remote system
man -t ls | ps2pdf - ls.pdf

# On local system
scp user@host:ls.pdf .

Opcja 3 - Po prostu utwórz plik PDF (pomiń otwieranie):

man -t ls | ps2pdf - ls.pdf
# Copy manually or view later

Zniekształcony wynik lub pusty plik PDF

Typowe przyczyny i sposoby naprawy:

1. Brak groff:

# Verify groff is installed
which groff

# Install if missing
sudo apt install groff  # Debian/Ubuntu
sudo dnf install groff  # RHEL/Fedora

2. Strona podręcznika nie istnieje:

# Check if the man page exists
man -w commandname

# If it returns nothing, the man page isn't installed

3. Uszkodzona strona podręcznika:

# Try a different man page to rule out corruption
man -t man | ps2pdf - test.pdf

Jeśli to działa, oryginalna strona podręcznika jest uszkodzona

Błąd: „Brak podręcznika dla polecenia”

Przyczyna: Dokumentacja polecenia nie jest zainstalowana.

Rozwiązania:

Zainstaluj pakiet dokumentacji:

# Ubuntu/Debian
sudo apt install manpages manpages-dev

# For specific software, install its -doc package
sudo apt install git-doc python3-doc

Wyszukaj polecenie:

# Find which package provides the man page
apt-cache search "man page" | grep commandname

Ostrzeżenie: „niektóre znaki nie mogły zostać przekonwertowane na PostScript”

Przyczyna: Strona podręcznika zawiera znaki Unicode, które nie są obsługiwane w PostScript.

Rozwiązanie:

# Force UTF-8 encoding
man -t -Tutf8 command | ps2pdf - output.pdf

# Or use col to clean the output first
man command | col -bx > clean.txt
# Then work with the text file

Drukowanie na niewłaściwej drukarce lub brak ustawionej drukarki domyślnej

Sprawdź dostępne drukarki:

lpstat -p

Ustaw drukarkę domyślną:

lpoptions -d printer_name

Zawsze określ drukarkę wyraźnie:

man -t ls | lp -d correct_printer_name

Sprawdź kolejkę wydruku:

lpstat -o  # Show pending jobs
cancel job_id  # Cancel a job if needed

Wydruk PDF ma mikroskopijne lub błędne czcionki

Przyczyna: Problemy z osadzaniem czcionek w Ghostscript.

Rozwiązanie - Wymuś osadzenie czcionki:

man -t ls | ps2pdf -dEmbedAllFonts=true - ls.pdf

Lub dostosuj ustawienia PDF:

man -t ls | ps2pdf -dPDFSETTINGS=/printer - ls.pdf

Opcje dla -dPDFSETTINGS:

  • /screen - Niska rozdzielczość (72 dpi), najmniejsze pliki
  • /ebook - Średnia rozdzielczość (150 dpi)
  • /printer - Wysoka rozdzielczość (300 dpi) - Zalecane
  • /prepress - Najwyższa jakość (300+ dpi), duże pliki

Brakujące sekcje lub ucięta strona podręcznika

Przyczyna: Niewystarczające przetwarzanie lub skomplikowane formatowanie.

Rozwiązanie 1 - Użyj eksportu w formacie tekstu zwykłego:

man command | col -bx > command.txt

Po eksporcie sprawdź, czy całe treści są obecne.

Rozwiązanie 2 - Zwiększ pamięć groff:

groff -Tps -man /usr/share/man/man1/command.1 | ps2pdf - output.pdf

Odmowa dostępu podczas drukowania

Przyczyna: Użytkownik nie należy do grupy drukarki lub występują ograniczenia dostępu CUPS.

Rozwiązanie:

# Add user to lp group
sudo usermod -aG lp $USER

# Log out and back in for group changes to take effect

# Or check CUPS permissions
sudo nano /etc/cups/cupsd.conf
# Ensure your user has access

macOS: "Podgląd nie może otworzyć pliku PostScript"

Przyczyna: Ostatnie wersje macOS mają ograniczone wsparcie dla PostScript.

Rozwiązanie 1 - Użyj ps2pdf:

man -t command | ps2pdf - command.pdf && open command.pdf

Rozwiązanie 2 - Alternatywna metoda podglądu:

man -t command | open -f -a Preview
# If this fails, PostScript support is disabled

Rozwiązanie 3 - Zainstaluj Ghostscript:

brew install ghostscript
# Then use ps2pdf as shown above

BSD: "mandoc: BŁĄD: nie można odczytać"

Przyczyna: Nieprawidłowa ścieżka pliku lub uprawnienia.

Rozwiązanie:

# Find the correct path
man -w command

# Use the full path
mandoc -Tpdf "$(man -w command)" > output.pdf

# Check file permissions
ls -l "$(man -w command)"

Wynik nie zawiera numeru sekcji w nazwie pliku

To nie błąd, lecz powszechne nieporozumienie.

Aby uwzględnić numery sekcji w eksportowanych nazwach plików:

# Get section number first
SECTION=$(man -w grep | sed 's/.*\.\([0-9]\).*/\1/')
man -t grep | ps2pdf - "grep.${SECTION}.pdf"

# Or just add it manually
man -t 5 crontab | ps2pdf - crontab.5.pdf

Weryfikacja udanego eksportu

Zawsze sprawdzaj swój plik PDF przed udostępnieniem:

# Check file size (should be > 0 bytes)
ls -lh output.pdf

# Check PDF integrity
pdfinfo output.pdf

# Quick visual check
xdg-open output.pdf  # Linux
open output.pdf       # macOS

Oczekiwane rozmiary plików:

  • Małe strony podręcznika (jak ls): 20-50 KB
  • Średnie strony podręcznika (takie jak bash): 100-300 KB
  • Duże strony podręcznika (takie jak ffmpeg): 500 KB - 2 MB

Jeśli twój PDF ma mniej niż 5 KB, coś poszło nie tak.

Praktyczne zastosowania

Możesz się zastanawiać, dlaczego miałbym eksportować stronę podręcznika do formatu pdf lub ps? Oto kilka przypadków użycia.

Utwórz osobistą bibliotekę referencyjną

mkdir -p ~/manuals/pdf
cd ~/manuals/pdf

# Export frequently-used commands
for cmd in bash ssh git rsync tar grep sed awk find; do
    man -t "$cmd" | ps2pdf - "${cmd}.pdf"
done

Popularne polecenia eksportu

Oto często eksportowane strony podręcznika do użytku offline:

Administracja systemem:

# Core system commands
man -t systemctl | ps2pdf - systemctl.pdf
man -t journalctl | ps2pdf - journalctl.pdf
man -t crontab | ps2pdf - crontab.pdf
man -t sudo | ps2pdf - sudo.pdf

# File system and disk management
man -t mount | ps2pdf - mount.pdf
man -t fdisk | ps2pdf - fdisk.pdf
man -t df | ps2pdf - df.pdf
man -t lsblk | ps2pdf - lsblk.pdf

Sieciowanie:

# Network utilities
man -t ip | ps2pdf - ip.pdf
man -t netstat | ps2pdf - netstat.pdf
man -t ss | ps2pdf - ss.pdf
man -t iptables | ps2pdf - iptables.pdf
man -t tcpdump | ps2pdf - tcpdump.pdf

Narzędzia deweloperskie:

# Git and version control
man -t git | ps2pdf - git.pdf
man -t git-commit | ps2pdf - git-commit.pdf
man -t git-rebase | ps2pdf - git-rebase.pdf

# Compilers and build tools
man -t gcc | ps2pdf - gcc.pdf
man -t make | ps2pdf - make.pdf
man -t cmake | ps2pdf - cmake.pdf

Docker i kontenery:

man -t docker | ps2pdf - docker.pdf
man -t docker-compose | ps2pdf - docker-compose.pdf
man -t podman | ps2pdf - podman.pdf

Przetwarzanie tekstu:

# Essential text tools
man -t grep | ps2pdf - grep.pdf
man -t sed | ps2pdf - sed.pdf
man -t awk | ps2pdf - awk.pdf
man -t find | ps2pdf - find.pdf
man -t xargs | ps2pdf - xargs.pdf

Skrypty powłoki:

# Bash reference
man -t bash | ps2pdf - bash.pdf
man -t zsh | ps2pdf - zsh.pdf

# Configuration files
man -t 5 bashrc | ps2pdf - bashrc.pdf
man -t 5 crontab | ps2pdf - crontab-format.pdf

Udostępnij dokumentację współpracownikowi

man -t systemctl | ps2pdf - systemctl-reference.pdf
# Email or upload systemctl-reference.pdf

Ucz się offline lub dodawaj notatki

Eksportuj do PDF, a następnie otwórz w czytniku PDF, który obsługuje adnotacje. Jest to szczególnie przydatne przy nauce skomplikowanych poleceń, takich jak iptables lub ffmpeg.

Szybki test drukarki

man -t cal | lp

Strona podręcznika cal jest krótka — idealna do testowania konfiguracji drukarki.

Ograniczenia i uwagi

1. Wygląd wyjścia:

Strony podręcznika przekonwertowane w ten sposób są funkcjonalne, ale nieostylowane. Używają podstawowych czcionek i prostych układów. Do dokumentacji publicznej warto rozważyć narzędzia takie jak Pandoc lub dedykowane systemy dokumentacji.

2. Nie wszystkie formatowania przetrwają:

Złożone tabele, specjalne symbole lub formatowanie mogą nie konwertować się idealnie. Zawsze sprawdzaj wynik przed szerokim udostępnianiem.

3. Wykorzystanie zasobów:

Drukowanie zużywa papier i tusz. Używaj podglądu wydruku lub eksportu do PDF w celu przeglądu przed wysłaniem zadań do drukarki.

4. Istnieją alternatywne narzędzia:

Do eksportu HTML rozważ man2html. W przypadku stylizowanych plików PDF spójrz na generatory dokumentacji, takie jak Sphinx lub Asciidoctor, jeśli tworzysz materiały referencyjne od podstaw.

Zaawansowane wskazówki

Utwórz funkcję Shell do szybkiego eksportu

Dodaj do swojego ~/.bashrc lub ~/.zshrc:

manpdf() {
    local name="${*: -1}"
    local open_cmd="xdg-open"
    command -v open >/dev/null && open_cmd="open"
    man -t "$@" | ps2pdf - "${name}.pdf" && "$open_cmd" "${name}.pdf"
}

Użytkowanie :

manpdf grep

Eksportuj z niestandardową nazwą pliku

man -t 5 crontab | ps2pdf - crontab-file-format.pdf

Połącz wiele stron podręcznika w jeden plik PDF

# Export individually
man -t ls | ps2pdf - /tmp/ls.pdf
man -t cp | ps2pdf - /tmp/cp.pdf
man -t mv | ps2pdf - /tmp/mv.pdf

Połącz wszystkie pliki PDF za pomocą pdfunite:

pdfunite /tmp/ls.pdf /tmp/cp.pdf /tmp/mv.pdf file-commands.pdf

Lub używając Ghostscript:

gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
   -sOutputFile=file-commands.pdf \
   /tmp/ls.pdf /tmp/cp.pdf /tmp/mv.pdf

Możesz również użyć narzędzia pdftk:

pdftk /tmp/ls.pdf /tmp/cp.pdf /tmp/mv.pdf cat output file-commands.pdf

Aby uzyskać więcej informacji, zapoznaj się z tym przewodnikiem:

  • Scal pliki PDF w wierszu poleceń w systemie Linux

Najczęściej zadawane pytania (FAQ)

P: Jak przekształcić stronę podręcznika (man) na PDF w systemie Linux?

A: Użyj polecenia: man -t command_name | ps2pdf - output.pdf. Na przykład, aby skonwertować stronę podręcznika grep: man -t grep | ps2pdf - grep.pdf. Wymaga to ps2pdf z pakietu Ghostscript.

P: Dlaczego otrzymuję „ps2pdf: polecenie nie znalezione”?

A: Ten błąd oznacza, że Ghostscript nie jest zainstalowany. Zainstaluj go za pomocą:

- Debian/Ubuntu: sudo apt install ghostscript
- RHEL/Fedora: sudo dnf install ghostscript
- macOS: brew install ghostscript
- FreeBSD: sudo pkg install ghostscript

P: Jak wydrukować stronę podręcznika z terminala?

A: Użyj man -t command | lp, aby wydrukować na domyślnej drukarce, lub man -t command | lp -d printer_name, aby określić drukarkę. Sprawdź dostępne drukarki za pomocą lpstat -p.

P: Czy mogę eksportować strony podręcznika na macOS bez instalowania dodatkowego oprogramowania?

A: Tak! Użyj man -t command | open -f -a Preview, aby otworzyć stronę podręcznika bezpośrednio w Preview, a następnie zapisz jako PDF. Zauważ, że w nowszych wersjach macOS usunięto pstopdf, więc do bezpośredniej konwersji będziesz potrzebować ps2pdf z Ghostscript.

P: Co robi polecenie "man -t"?

A: Flaga -t informuje man, aby wyświetlał wynik w formacie PostScript zamiast w pagerze. PostScript to język drukarki, który można przekształcić na PDF lub wysłać bezpośrednio do drukarek. Traktuj to jako wersję gotową do druku strony podręcznika man.

P: Jak wyeksportować wiele stron podręcznika naraz?

A: Użyj pętli:

for cmd in ls grep sed awk; do
man -t "$cmd" | ps2pdf - "${cmd}.pdf"
done

Q: Dlaczego mój wyeksportowany plik PDF wygląda inaczej niż wyświetlenie w terminalu?

A: Terminal używa formatowania ANSI (pogrubienie, podkreślenie), podczas gdy PDF używa rzeczywistych czcionek. Zawartość jest identyczna, ale prezentacja wizualna różni się. Jest to normalne i oczekiwane.

P: Jak znaleźć strony podręcznika w konkretnych sekcjach?

A: Strony podręcznika są uporządkowane w sekcje (1-8). Użyj man numer_sekcji polecenie. Na przykład, man 5 passwd pokazuje format pliku passwd (sekcja 5) zamiast polecenia passwd (sekcja 1). Eksportuj za pomocą man -t 5 passwd | ps2pdf - passwd5.pdf.

P: Czy mogę zautomatyzować eksport stron podręcznika w skryptach?

A: Tak! Oto funkcja do dodania do twojego .bashrc:

manpdf() {
man -t "$@" | ps2pdf - "$ {1}.pdf" && xdg-open "$ {1}.pdf"
}


Następnie użyj: manpdf grep

P: Jaka jest różnica między ps2pdf, ps2pdf12, ps2pdf13 i ps2pdf14?

A: Te produkują różne wersje PDF:

- ps2pdf - Domyślnie (aktualnie PDF 1.4)
- ps2pdf12 - PDF 1.2 (zgodne z Acrobat 3+)
- ps2pdf13 - PDF 1.3 (zgodne z Acrobat 4+)
- ps2pdf14 - PDF 1.4 (zgodne z Acrobat 5+)

Dla maksymalnej kompatybilności użyj ps2pdf13. Dla nowoczesnych systemów domyślny ps2pdf jest w porządku.

P: Jak zapisać strony podręcznika jako HTML zamiast PDF?

A: Użycie: man command | groff -mandoc -Thtml > command.html. Jednak PDF jest zazwyczaj bardziej niezawodny i przenośny dla stron podręcznika (man).

P: Czy mogę eksportować strony podręcznika w BSD bez ps2pdf?

A: Tak! Systemy BSD z mandoc mogą bezpośrednio generować PDF: mandoc -Tpdf /usr/share/man/man1/ls.1 > ls.pdf. Ścieżkę strony podręcznika znajdziesz za pomocą man -w ls.

P: Dlaczego otrzymuję „Nie można otworzyć wyświetlacza” podczas korzystania z xdg-open przez SSH?

A: Próbujesz otworzyć aplikację GUI przez SSH bez przekazywania X11. Użyj ssh -X do przekazywania X11 lub skopiuj PDF na swój lokalny komputer: scp user@host:file.pdf .

P: Jak wydrukować tylko wybrane strony długiej strony podręcznika?

A: Użyj opcji -P z lp: man -t bash | lp -P 1-5 drukuje tylko strony 1-5. Zwróć uwagę, że są to numery stron fizycznych, a nie numery sekcji.

P: Jak wyszukać polecenia, gdy nie znam ich nazwy?

A: Użyj apropos keyword, aby wyszukać nazwy stron podręcznika i opisy. Na przykład, apropos compress znajdzie wszystkie polecenia związane z kompresją.

P: Czy mogę konwertować strony podręcznika (man) na inne formaty, takie jak EPUB lub DOCX?

A: Chociaż możliwe, jest to skomplikowane i rzadko daje dobre rezultaty. Strony podręcznika są przeznaczone do wyświetlania w terminalu i do drukowania. W przypadku dokumentacji w innych formatach należy szukać oficjalnej dokumentacji projektu zamiast konwertować strony podręcznika.

Kluczowe wnioski

  • Wymagania wstępne: Większość systemów ma man i groff; konwersja do PDF wymaga ps2pdf (Ghostscript)
  • Eksport do PDF: man -t command | ps2pdf - output.pdf konwertuje strony man na przenośne pliki PDF
  • Bezpośrednie drukowanie: man -t command | lp wysyła strony man bezpośrednio do drukarki
  • Tekst zwykły: man command | col -bx > output.txt tworzy czyste, przeszukiwalne pliki tekstowe
  • Specjalne dla macOS: man -t command | open -f -a Preview otwiera w Preview bez dodatkowych narzędzi
  • Alternatywa BSD: Systemy z mandoc mogą używać mandoc -Tpdf $ (man -w command) > output.pdf

ściąga

Konwertuj stronę podręcznika na PDF (Linux/macOS):

man -t ls | ps2pdf - ls.pdf

Drukuj stronę podręcznika bezpośrednio:

man -t command | lp

Eksportuj do zwykłego tekstu:

man command | col -bx > command.txt

macOS: Otwórz w Podglądzie:

man -t ssh | open -f -a Preview

Aby uzyskać więcej informacji, zapoznaj się ze stroną podręcznika odpowiedniego polecenia:

  • man man - Dowiedz się więcej o systemie man
  • man groff - dokumentacja formatera tekstu GNU roff
  • man mandoc - formatownik stron podręcznika BSD (systemy BSD)
  • man lp - Wyślij zadania do drukarek CUPS
  • man ps2pdf - Opcje konwertera PostScript na PDF

Alternatywne podejścia

Oto kilka alternatywnych podejść dla man -t:

  • Pandoc - Uniwersalny konwerter dokumentów (może konwertować Markdown na strony podręcznika)
  • ronn/ronn-ng - Generowanie stron podręcznika (man pages) z Markdown
  • help2man - Generuj proste strony podręcznika (man) z wyjścia pomocy programu
  • man2html - Konwertuj strony podręcznika na HTML (mniej niezawodne niż PDF)

Podsumowanie

Eksportowanie i drukowanie stron podręcznika jest proste, gdy zrozumiesz przepływ pracy PostScript. Główne polecenie "man -t" generuje wydruk przyjazny dla drukarki, który można zapisać, przekonwertować lub wydrukować bezpośrednio.

Dla większości użytkowników przepływ pracy z PDF (man -t command | ps2pdf - output.pdf) zapewnia najlepszą równowagę między przenośnością a jakością. Do szybkiego drukowania przekierowanie bezpośrednio do lp eliminuje pliki pośrednie. Do przetwarzania tekstu col -bx tworzy czysty, przeszukiwalny wynik.

Te techniki wykorzystują standardowe narzędzia Uniksa, które są stabilne od dziesięcioleci. Działają w różnych dystrybucjach i wariantach Uniksa przy minimalnych zależnościach. Opanuj te podstawy, a będziesz mieć niezawodny dostęp do dokumentacji niezależnie od środowiska.

Zasoby

  • Projekt stron podręcznika Linuksa - Źródło stron podręcznika Linuksa
  • Przewodnik po drukowaniu CUPS - odniesienie do opcji drukarki
  • Dokumentacja Ghostscript - szczegóły ps2pdf
  • Podręcznik groff - System formatowania tekstu

Powiązana lektura:

  • Naucz się efektywnie korzystać z podręczników (man) w Linuksie
  • Efektywne przeszukiwanie stron podręcznika Linuksa
  • Dobre alternatywy dla stron podręcznika, które każdy użytkownik Linuksa powinien znać
  • Wyświetl określoną sekcję w stronach podręcznika w Linuksie
  • Znajdź najdłuższą stronę podręcznika w Linux
  • Łatwo przypomnij sobie zapomniane polecenia Linuksa
  • Twórz i utrzymuj własne strony podręcznika
  • Zainstaluj strony podręcznika w Alpine Linux
  • Zainstaluj brakujące strony podręcznika poleceń w Ubuntu
  • Pinfo - program CLI do czytania stron info i man w kolorze
  • Znajdź pomoc dla polecenia w Linuxie (Man, Info, Apropos, Whatis, -help)
  • Przeglądaj i czytaj całą Wiki Arch jako strony podręcznika Linuxa
  • Wyświetlanie ściągawki poleceń Linux za pomocą narzędzia Tealdeer
  • Wyświetlanie ściągawki poleceń Linuksa za pomocą Eg
  • Navi: Interaktywne narzędzie do cheat sheetów w wierszu poleceń
  • Szukaj, ucz się i ćwicz polecenia Linuksa w locie za pomocą Tldr++