Recupera la pagina di manuale formattata dalla riga di comando [duplicato]

4
    

Questa domanda ha già una risposta qui:

    

Provo ad esportare la pagina manuale di grep in grep.txt

    $ man grep > ~/desktop/grep.txt

Viene visualizzato in codice confuso:

            GREP(1)                   BSD General Commands Manual                  GREP(1)

            NNAAMMEE
                 ggrreepp, eeggrreepp, ffggrreepp, zzggrreepp, zzeeggrreepp, zzffggrreepp -- file pattern searcher

            SSYYNNOOPPSSIISS
                 ggrreepp [--aabbccddDDEEFFGGHHhhIIiiJJLLllmmnnOOooppqqRRSSssUUVVvvwwxxZZ] [--AA _n_u_m] [--BB _n_u_m] [--CC[_n_u_m]]

Come ottenere una pagina di manuale formattata dalla riga di comando?

    
posta JawSaw 27.03.2018 - 03:05
fonte

1 risposta

6

Puoi utilizzare il seguente comando di esempio per ottenere l'output in formato testo formattato per una pagina di manuale:

man grep | col -bx > ~/Desktop/grep.txt

Produce, ad esempio:

GREP(1)                   BSD General Commands Manual                  GREP(1)

NAME
     grep, egrep, fgrep, zgrep, zegrep, zfgrep -- file pattern searcher

SYNOPSIS
     grep [-abcdDEFGHhIiJLlmnOopqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
          [-e pattern] [-f file] [--binary-files=value] [--color[=when]]
          [--colour[=when]] [--context[=num]] [--label] [--line-buffered]
          [--null] [pattern] [file ...]

Per automatizzare l'uso di ad es. man grep | col -bx > ~/Desktop/grep.txt comando in Terminale , quindi puoi semplicemente digitare ad es. mant grep o altro comando , può essere racchiuso in una funzione bash inserita nel tuo .bash_profile file .

Normalmente preferisco avere le mie pagine di manuale in formato PDF tuttavia ho modificato la manp funzione bash che uso nel mio file .bash_profile per lavorare con testo semplice come mant .

Per le pagine di manuale in testo semplice:

function mant () 
{ 
    mpdir="$HOME/Documents/Manual Pages"
    [[ ! -d $mpdir ]] && mkdir -p "$mpdir"
    if [[ ! -z $1 ]]; then
        if [[ ! -f $mpdir/$1.txt ]]; then
            man "$1" | col -bx > "$mpdir/$1.txt"
            open -e "$mpdir/$1.txt"
        else
            open -e "$mpdir/$1.txt"
        fi
    else
        printf '  Error: Missing argument!...\n  Syntax: mant command_name\n  Example: mant man\n'
    fi
}

Per le pagine del manuale PDF:

function manp () 
{ 
    mpdir="$HOME/Documents/Manual Pages"
    [[ ! -d $mpdir ]] && mkdir -p "$mpdir"
    if [[ ! -z $1 ]]; then
        if [[ ! -f $mpdir/$1.pdf ]]; then
            man -t "$1" | pstopdf -i -o "$mpdir/$1.pdf"
            open "$mpdir/$1.pdf"
        else
            open "$mpdir/$1.pdf"
        fi
    else
        printf '  Error: Missing argument!...\n  Syntax: manp command_name\n  Example: manp man\n'
    fi
}

Per aggiungere una o entrambe le funzioni bash mostrate sopra al tuo .bash_profile file , in Terminale usa il seguente comando :

nano "$HOME/.bash_profile"

Quindi copia e incolla la / e funzione nel file .bash_profile , quindi salva il file ed esci nano premendo i seguenti tasti:

  • Controllo + X
  • Y
  • Invio

Chiudi e riapri l'app Terminale , non solo la finestra, e sei pronto per andare.

Per la pagina di manuale predefinita in Terminale , ad esempio:

man grep

Per una pagina di manuale di file di testo semplice, ad esempio:

mant grep

Per una pagina di manuale di file PDF, ad esempio:

manp grep

Con le funzioni bash , se un file per il comando non esiste già, viene creato e quindi aperto. Se il file del comando esiste già, è appena aperto. In questo modo puoi accedere facilmente alla pagina del manuale nel modulo che desideri in Terminale .

Se vuoi posizionare i file in una posizione diversa, modifica la porzione percorso della seguente riga di codice come appropriato:

mpdir="$HOME/Documents/Manual Pages"

Il resto del codice all'interno viene tokenizzato per utilizzare $mpdir per la posizione dei file .

Come nota a margine, se desideri semplicemente la pagina manuale completa per un determinato comando , in una finestra Terminale , che è facilmente scorrevole, puoi eseguire la segue ...

Digita il nome del comando da solo, quindi fai clic destro su di esso e seleziona: Apri pagina man

Questo è meglio quindi digitando per es. man grep e premendo invio , perché è completamente scorrevole e non è necessario navigare utilizzando le sequenze di tasti definite nell'utilità less comando utilizzata come cercapersone da% % co_de.

    
risposta data 27.03.2018 - 03:44
fonte

Leggi altre domande sui tag