Trucchi e suggerimenti per la ricerca di informazioni nelle pagine man [chiuso]


80

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


1
man --help/ man -he il suo fratello più completo man manha suggerimenti per la ricerca e la navigazione.
Anton Tarasenko,

Risposte:


51

Presta attenzione al numero di sezione: Supponi di voler ricevere aiuto 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 printfe 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 del genere formats(5), che ti suggerisce di digitare man 5 formats.

Se sei infastidito che man printfti dà printf (1) e tutto ciò che vuoi è printf (3), devi cambiare l'ordine delle directory scansionate nella MANPATHvariabile d'ambiente e mettere quelle per il linguaggio C prima di quelle per i comandi di 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 introo man -s <section> intro. Questo ti dà un riepilogo dei comandi della sezione richiesta.

Le sezioni sono ben definite:

  • 1 è per i comandi della 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.


11
Sulla maggior parte dei sistemi è possibile verificare man manper una descrizione completa delle varie sezioni.
Steven D,

1
Sarebbe bello se ci fosse un programma per cercare una pagina con una «parola chiave». Vale a dire che di recente non riuscivo a ricordare il nome della funzione c per trovare una sottostringa (the strstr()) e non avevo una rete attorno a me.
Hi-Angel,

3
@ Ciao Angelo man -k substringo ti apropos substringavrei aiutato.
Kusalananda

58

Digitare slash /e quindi digitare la stringa da cercare. Quindi continuare a premere nper passare all'elemento successivo


37

man -k cerca

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


2
E per elencare tutte le pagine man relative alla 'ricerca' nella sezione specifica (numero 3, per esempio) si potrebbe usare questo: man -k search -s 3 menzionato anche in superuser.com/a/677969/599957
Kenichi

So che commenti come questo sono disapprovati, ma grazie, grazie, grazie! Ho letteralmente cercato un comando come questo per più di quanto mi piacerebbe ammettere ... anni !!
MikeyE,

19

Come dice @Steven D, non dimenticare le infopagine.

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

info gpg |less

In questo modo, posso navigare tra le infopagine usando il mio cercapersone preferito. Le infopagine ora si comporteranno come le manpagine.


1
ehi, questo è un ottimo consiglio sulla navigazione
glenn jackman,

18

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


1
man -k== apropos, non è vero?
phunehehe,

1
aproposè quello che uso sempre quando cerco qualcosa che non ha una pagina man per sé.
polemon

1
'man man' dice che 'man -k' equivale a 'apropos -r'. Penso che apropos sia un po 'più potente. In genere uso "man -k" poiché è leggermente più corto.
Kristof Provost,

16

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

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 premi n per passare alla partita successiva o
    • shift+ Nper passare alla partita precedente.
    • Se la pagina è coperta da corrispondenze non interessanti, premi spaceper passare alla pagina successiva.
  • Aggiungi un @prima dell'espressione regolare per cercare dall'inizio.

Questa è la risposta migliore. Punti extra per l'utilizzo dei simboli kbd. ;)
Chiramisu, il

Lo scorrimento su / giù di una pagina può anche essere fatto con ctrl+space/ f, che potrebbe essere utile a seconda delle dita che preferisci usare per la navigazione.
Joelostblom,

8

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


7

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

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

4

Suppongo che usare la maggior parte dei 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 carino, vero?

più cercapersone


2
Hai tralasciato l'informazione più importante: come faccio mosta visualizzare le pagine man.
user1968963,

2
@ACK_stoverflow - probabilmente non è una buona idea raccomandare al ragazzo di fare > ~/.bashrcin quanto sovrascriverà già quello che c'è dentro. Meglio aggiungere ( >>) o aggiungere manualmente il lime secondo me.
Vatsug,

@vatsug Wow buona chiamata, qui è che cosa il mio commento avrebbe dovuto dire: installarlo e provarlo: aptitude install most; export MANPAGER="most"; man man. Per renderlo permanente:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow

4

In Linux man, puoi fare man -K string(nota la K maiuscola) per fare una ricerca della forza bruta di un dato 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.


3

Non ignorare le infopagine. Molti strumenti 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". Ciò è particolarmente vero per qualsiasi cosa nel pacchetto coreutils GNU.

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


3

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 "$@" | lpr -pPrinter; }

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

2

Dalla risposta di Kristof, se digiti (es.) man -k chmodOtterrai 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 si dovrebbe cambiare -sper-S


man 1 chmod man 2 chmod fa la stessa cosa.
Vista ellittica

2

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

A proposito, funziona anche con questo info:(command). Alcuni programmi forniscono molte più informazioni tramite "info" che tramite "man" e konqueror fornisce un'interfaccia molto più piacevole per la navigazione di queste pagine di informazioni. Nota: solo usando info:, funziona anche per ottenere un sommario di alto livello.
nobar,

Un effetto simile può essere ottenuto usando il gmanpacchetto che stabilisce un server web manpage su localhost / cgi-bin / man / man2html .
nobar,

Alternative su AskUbuntu: askubuntu.com/questions/253705/…
nobar

... yelpessendo un sostituto drop-in più leggero per konqueror- sebbene abbia la carenza di non presentare un sommario o una pagina di chiarimento dei nomi usati in più sezioni. Devi differenziarli esplicitamente aggiungendo .(section), ad esempio yelp man:open.2. Puoi anche usare <kbd> Ctrl-L </kbd> per aprire la barra degli indirizzi.
nobar,

2

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

/oppure ?- Cerca avanti o indietro (come alcuni ragazzi hanno già menzionato). Nel primo caso, una n minuscola scorrerà le partite in avanti, una N maiuscola andrà indietro. È 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 ( mano less) -non così tanto. Così si può facilmente mettere questo a utilizzare per la ricerca, per esempio, una iptablespagina di manuale per i termini più in questo modo: /(iptables|rules). Se non hai familiarità con le espressioni regolari, significa "Cerca istanze di parole iptablesOPPURErules". Dopo aver inserito questo e continuare a premere n, scorrerai i risultati alternati della ricerca con i risultati che verranno evidenziati per te con colori diversi (due, in realtà. Haha). Se stai cercando di scorrere la pagina e vuoi concentrarti su termini o concetti specifici: non ti perderai nulla!

E, naturalmente, per una navigazione più veloce i tuoi vistandbie normali rimangono (nessun gioco di parole previsto): ggoppure G- inizio / fine del documento; (Correzione! In manpuoi usare tutti i tasti menzionati di seguito senza usare Ctrl. Questo è visolo). 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"; eoppure y- scorrere di una sola riga, ma penso che la maggior parte delle persone preferirebbe 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 da tastiera, che sono entrambi parti della readlinebiblioteca: vi e 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. BASHusa 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

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 eccellente visualizzatore di manpage e :Mandall'interno di Vim (o semplicemente premendo Kuna parola chiave) è un eccellente browser di manpage.


1

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 utilità personali, specifiche del lavoro e installate localmente, come export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Come effetto collaterale, man foonon mostrerà le pagine man memorizzate in ~ / man, / workgroup / man o / opt / local / man.

Per risolvere questo problema, utilizzo il manpathcomando 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 sistema utilizzerà la variabile MANPATH invece di utilizzarla manpath. Di conseguenza, le pagine man per "MacPorts" (/ opt / local / man) vengono ignorate. Voglio controllarlo da solo, quindi ho disattivato MANPATH:

unset MANPATH
manpath >/dev/null

1

Se siete alla ricerca di informazioni relative a un bashintegrato (come time, disown, set, o [[), invece di slogging attraverso il dettaglio di bashpagina di informazioni o man bash, è possibile inserire help {builtin-keyword}e ottenere le informazioni di base della sintassi rapidamente.


1

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 printfsenza dover cambiare il ordine delle directory scansionate nella variabile d'ambiente MANPATH e mettere quelle per il linguaggio C prima di quelle per i comandi di shell.


1

Io uso solo grep. Se dovessi chiedermi che cosa ha fatto l' -sopzione del readcomando, proverei questi comandi in ordine finché non avessi una risposta:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

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


1

man -a printfper impostazione predefinita su man 1sulla mia macchina Linux Mint. whatis printfmi dà le informazioni pertinenti.


1

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

/^ *-u($|\s)

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


Inoltre, questa regex sarebbe utile: /-u($|[,\s]) nel caso in cui l'opzione carattere sia incorniciata da una virgola. Ma se volete vedere tutte le voci del carattere opzione 'u' (come -u]in [--udp|-u]di netstatmanuale) avrete bisogno di qualcosa di simile a questo: /-u($|[^a-z]) E se vio vimè utilizzato come cercapersone: /-u\($\|[^a-z]\)
Kenichi

0

Il comando apropos (1) è usato per cercare 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

inserisci qui la descrizione dell'immagineSe 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, io uso le seguenti impostazioni di colore .bashrcda 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 "$@"
}

Questo è per bash e zsh. Per most, fish, xterme rxvtvedi il link qui sopra.

Per ulteriori letture:


0

E per quelle persone a cui piace leggere le pagine man e info su un touchscreen, è possibile reindirizzare man / info a yad o zenity e utilizzare tutte le chicche di 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.