it-swarm.it

Trucchi e suggerimenti per la ricerca di informazioni nelle pagine man

Qualcuno ha qualche trucco e suggerimento per trovare informazioni nelle pagine man?

82
Casebash

Prestare attenzione al numero della sezione: supponiamo che tu voglia aiuto su printf. ce ne sono almeno due: in Shell e in C. La versione bash di printf è nella sezione 1, la versione C è nella sezione 3 o 3C. Se non sai quale vuoi, digita man -a printf E verranno visualizzate tutte le pagine di manuale.

Se quello che stai cercando è il formato di printf con tutti i codici% e non appare nella pagina man di printf, puoi saltare alle pagine man relative elencate nel paragrafo VEDERE ANCHE. Potresti trovare qualcosa come formats(5), che ti suggerisce di digitare man 5 formats.

Se sei infastidito dal fatto che man printf Ti dà printf (1) e tutto ciò che vuoi è printf (3), devi cambiare l'ordine delle directory scansionate nella variabile d'ambiente MANPATH e mettere quelle per il linguaggio C prima di quelli per i comandi Shell. Questo può accadere anche quando le pagine man di Fortran o TCL/Tk sono elencate prima di quelle C.

Se non sai da dove iniziare, digita man intro O man -s <section> intro. Questo ti dà un riepilogo dei comandi della sezione richiesta.

Le sezioni sono ben definite:

  • 1 è per i comandi Shell,
  • 2 è per le chiamate di sistema,
  • 3 è per le interfacce di programmazione (a volte 3C per C, 3F per Fortran ...)
  • 5 è per i formati di file e altre regole come i formati printf o regex.

Ultimo ma non meno importante: le informazioni fornite nelle pagine man non sono ridondanti, quindi leggi attentamente dall'inizio alla fine per aumentare le tue possibilità di trovare ciò di cui hai bisogno.

51
mouviciel

Digita barra / e quindi digitare la stringa da cercare. Quindi continuare a premere n per passare all'elemento successivo

58

man -k ricerca

Questo ti darà un elenco di tutte le pagine man relative alla "ricerca".

37
Kristof Provost

Come dice @Steven D, non dimenticare le pagine info.

Inoltre, non lasciarti intimidire dalle pagine info. Conosco molte persone che non usano le pagine informative a causa del sistema di navigazione integrato. La mia soluzione preferita è reindirizzare le pagine di informazioni attraverso less:

info gpg |less

In questo modo, posso navigare tra le pagine info usando il mio cercapersone preferito. Le pagine info ora si comporteranno come le pagine man.

20
Stefan Lasiewski

L'utilità apropos è davvero utile per trovare la manpage appropriata.

18
Hank Gay

Il cercapersone predefinito per la lettura di una pagina man è less. C'è documentazione su lessqui .

In particolare:

  • Scorri su/giù di una pagina: b / space
  • Scorri su/giù di mezza pagina: u / d
  • Ricerca in avanti/indietro: / / ?, quindi digitare un'espressione regolare,
    • quindi colpire n per passare alla prossima partita o
    • shiftN per passare alla partita precedente.
    • Se la pagina è coperta da corrispondenze non interessanti, premi space per andare alla pagina successiva.
  • Aggiungi un @ prima dell'espressione regolare per cercare dall'inizio.
16
Casebash

Controlla sempre cosa c'è nella sezione VEDERE ANCHE. I comandi mostrati sotto questa sezione nella pagina info sono selezionabili posizionando il cursore sul comando desiderato e quindi premendo il tasto Invio. Spesso trovo altri comandi o funzioni utili in questo modo.

8
Neth

Se sei più a tuo agio con il tuo editor di quanto non lo sia con il cercapersone predefinito, puoi impostare MANPAGER nel tuo ambiente. Ad esempio, ho questa riga nel mio ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"
7
Rob Hoelz

Suppongo che usare most cercapersone sia una buona idea. Questo cercapersone è molto potente, ma la caratteristica principale per me è la visualizzazione di pagine man colorate. Questa funzione migliora la percezione del testo semplice e facilita la ricerca delle informazioni necessarie.

Guarda lo screenshot allegato, il testo sembra molto bello, no?

most pager

4
dr.

In Linux man, puoi fare man -K string (notare la K maiuscola) per eseguire una ricerca della forza bruta di un determinato termine

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

molto utile quando non sai dove cercare.

4
enzotib

Non ignorare le pagine info. Molti GNU hanno pagine di informazioni molto più estese delle pagine man. Spesso, la sezione VEDERE ANCHE dirà "La documentazione completa per foo è mantenuta come un manuale Texinfo. "Questo è particolarmente vero per qualsiasi cosa nel pacchetto GNU coreutils.

Inoltre, se sei un utente emacs, non dimenticare che puoi leggere informazioni e pagine di manuale senza lasciare l'editor: M-x info e M-x woman.

3
Steven D

Per quelle pagine man più lunghe e complesse trovo molto più facile leggerle da un computer (strano, lo so) e quindi ho queste funzioni nel mio .bashrc

# Print man pages 
manp() { man -t "[email protected]" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "[email protected]" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}
3
jasonwryan

Dalla risposta Kristof, se tu (cioè) digiti man -k chmod otterrai un elenco di possibilità. Nota il numero tra parentesi, indica la sezione da cercare nelle pagine del manuale:

Su UNIX puoi provare:

man -s1 chmod mostrerà la pagina man per il comando chmod

man -s2 chmod mostrerà la pagina man per la funzione C lib chmod ()

Su Linux dovresti cambiare -s per -S

2
jyz

Simile ma leggermente diverso dalla risposta di Rob Hoelz,

Aggiungi quanto segue nel tuo ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Ora vimman è un visualizzatore di manpage eccellente e :Man dall'interno di Vim (o semplicemente premendo K su una parola chiave) è un eccellente browser di manpage.

2
ephemient

Visualizza le pagine man in un'applicazione grafica intuitiva:

konqueror man:(command)

Per il sommario di primo livello:

konqueror man:

Caratteristiche:

  • Se inserisci un comando che ha una corrispondenza in più sezioni, ti porta a una pagina di chiarimento delle ambiguità
  • È un'applicazione grafica, quindi non è necessario ricordare le sequenze di tasti criptici per navigare nella pagina
  • Include collegamenti ipertestuali a pagine correlate (comprese le pagine "vedi anche")
  • È possibile aprire pagine correlate in schede separate
2
nobar

Dayum, gente! Cos'è con le risposte contorte ?! Qualunque cosa sia successa alla semplicità è la chiave per lo splendore e cosa no? La maggior parte dei tasti vi/vim funzionerà a meraviglia:

/ O ? - Cerca avanti o indietro (come alcuni ragazzi hanno già menzionato). Nel primo caso, una n minuscola scorrerà le partite in avanti, una N maiuscola arretrerà. È vero il contrario per quest'ultimo, il punto interrogativo.

Ricerche leggermente più complesse attraverso le espressioni regolari. La differenza tra man (o less) e VIM è che devi usare il carattere escape () per dichiarare i metacaratteri nella tua espressione quando usi quest'ultimo La buona notizia è che quando si utilizza il primo (man o less) - non così tanto. Quindi puoi facilmente utilizzarlo quando cerchi, ad esempio, un iptables man page per più termini come questo: /(iptables|rules). Se non hai familiarità con le espressioni regolari, significa "Cerca istanze di parole iptables OR = rules ". Dopo aver inserito questo e continuando a premere n, scorrerai i risultati alternati della ricerca con i risultati ben evidenziati per te con colori diversi (due, in realtà. Haha). Se sei cercando di sfogliare la pagina e vuoi concentrarti su termini o concetti specifici: non ti perderai nulla!

E, naturalmente, per una navigazione più veloce i tuoi normali standby vi sono ancora in piedi (nessun gioco di parole previsto): gg o G - inizio/fine del documento; (Correzione! In man puoi usare tutti i tasti menzionati sotto senza usare Ctrl. Questo è solo per vi). Ctrl + u or d - Scorri verso l'alto o verso il basso; Ctrl + b or f - Stessa cosa, solo con grandi salti. "Pagina indietro o avanti"; e o y - scorri di una sola riga, ma penso che la maggior parte delle persone preferisca semplicemente usare i tasti freccia. Tuttavia, se vuoi rimanere "1337" e "non lasciare mai la fila di casa" (come faccio io lol), è la strada da percorrere.

Quello che sto cercando di dire è che UNIX ha due tipi principali di controlli di programma per tastiera, che sono entrambi parti della libreria readline: vi ed emacs. Aumenta le tue costolette in uno dei due (ma, preferibilmente in entrambi) e renderà la tua vita molto meno complicata. La maggior parte dei programmi CLI in UNIX utilizza uno dei due. BASH utilizza i controlli emacs per impostazione predefinita, ma può essere facilmente impostato su "modalità vi" digitando set -o vi. Lo stesso si può dire per le espressioni regolari, ma sarà fuori tema. Vorrei persino dire che entrambi sono la "lingua franca" di UNIX.

2
Max

Per cercare in modo efficiente il cambio di singolo carattere, ad esempio -u, puoi spesso usare:

/^ *-u($|\s)

Risparmia molto tempo se molte opzioni hanno '-u' come prefisso.

1
matt

Molti di noi impostano la variabile PATH. Questo ti mostrerà come far corrispondere automaticamente il percorso di ricerca man al tuo percorso di ricerca comandi.

Supponi di aggiungere il tuo percorso per includere le tue utility personali, specifiche del lavoro e installate localmente, come export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Come effetto collaterale, man foo non mostrerà le manpage archiviate in ~/man,/workgroup/man o/opt/local/man.

Per risolvere questo problema, utilizzo il comando manpath per impostare automaticamente il percorso di ricerca della pagina man. Ad esempio, il mio ~/.bashrc ha il seguente. Questo funziona per me su un centinaio di sistemi diversi che eseguono qualsiasi cosa da FreeBSD 4.x, Darwin e CentOS 5:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Alcuni sistemi (come Apple Leopard) impostano automaticamente MANPATH, ma ciò significa che il tuo sistema utilizzerà la variabile MANPATH invece di utilizzare manpath. Di conseguenza, le pagine man per " I MacPorts '(/ opt/local/man) vengono ignorati. Voglio controllarlo da solo, quindi deseleziono MANPATH:

unset MANPATH
manpath >/dev/null
1
Stefan Lasiewski

man -a printf ha come impostazione predefinita man 1 sulla mia macchina Linux Mint. whatis printf mi dà le informazioni pertinenti.

1
stu

Se stai cercando informazioni su un built-in bash (come time, disown, set o [[), invece di cercare nella pagina di informazioni dettagliate bash o man bash, Puoi entrare help {builtin-keyword} e ottenere rapidamente le informazioni di base sulla sintassi.

1
LawrenceC

Uso solo grep. Se dovessi chiedermi cosa il -s opzione del comando read, ho provato questi comandi per ottenere una risposta:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

In questo caso solo il comando info ha fornito una risposta chiara. Questa eccellente risposta fornisce i dettagli sui diversi sistemi di aiuto.

1
Cees Timmerman

Se sei infastidito dal fatto che man printf ti dia printf (1) e tutto ciò che vuoi è printf (3), puoi dire a man che vuoi il printf dalla sezione 3 mettendo la sezione prima di printf, in questo modo: man 3 printf, senza dover cambiare l'ordine delle directory scansionate nella variabile d'ambiente MANPATH e mettere quelle per il linguaggio C prima di quelle per i comandi Shell.

1
Li Lo

E per quelle persone a cui piace leggere le pagine man e info su un touchscreen, puoi reindirizzare man/info a yad o zenity e fare uso di tutte le chicche gtk3 come lo scroll nativo delle dita. Funziona alla grande anche con lo schermo e il mouse refular:

man cat |yad --text-info 

Puoi usare anche zenity oppure puoi aggiungere opzioni yad come:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

Suggerimento: con show uri puoi cliccare sui collegamenti web all'interno delle pagine man con il mouse/dito.

0
George Vasiliou

enter image description here Se trovi difficile leggere le manpage a causa di tutto il testo bianco, puoi colorarle. La maggior parte delle pagine man si aprono con less. Per less, utilizzo le seguenti impostazioni di colore in .bashrc da qui :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "[email protected]"
}

Questo è per bash e zsh. Per most, fish, xterm e rxvt vedi il link sopra.

Per ulteriori letture:

0
vikram99

Il comando apropos (1) viene utilizzato per la ricerca di pagine man. Tuttavia, la maggior parte delle implementazioni di apropos (1) cerca solo nella sezione NAME, che è molto limitante.

NetBSD ha un'implementazione di ricerca full-text di apropos (1), che è in grado di cercare il contenuto completo delle pagine man. Esiste anche un'interfaccia basata sul web: man-k.org , che puoi provare.

0
Abhinav Upadhyay