Risposte:
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:
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.
man manper una descrizione completa delle varie sezioni.
strstr()) e non avevo una rete attorno a me.
man -k substringo ti apropos substringavrei aiutato.
Digitare slash /e quindi digitare la stringa da cercare. Quindi continuare a premere nper passare all'elemento successivo
man -k cerca
Questo ti darà un elenco di tutte le pagine man relative alla "ricerca".
man -k search -s 3 menzionato anche in superuser.com/a/677969/599957
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.
L' aproposutilità è davvero utile per trovare la manpage appropriata.
man -k== apropos, non è vero?
aproposè quello che uso sempre quando cerco qualcosa che non ha una pagina man per sé.
Il cercapersone predefinito per la lettura di una pagina man è less. C'è documentazione less qui .
In particolare:
ctrl+space/ f, che potrebbe essere utile a seconda delle dita che preferisci usare per la navigazione.
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?

mosta visualizzare le pagine man.
> ~/.bashrcin quanto sovrascriverà già quello che c'è dentro. Meglio aggiungere ( >>) o aggiungere manualmente il lime secondo me.
aptitude install most; export MANPAGER="most"; man man. Per renderlo permanente:echo 'export MANPAGER="most"' >> ~/.bashrc
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.
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.
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 ;}
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
Visualizza le pagine man in un'applicazione grafica intuitiva:
konqueror man:(command)
Per il sommario di primo livello:
konqueror man:
Caratteristiche:
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.
gmanpacchetto che stabilisce un server web manpage su localhost / cgi-bin / man / man2html .
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.
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.
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.
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
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.
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.
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.
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.
/-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]\)
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.
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, 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:
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.
man --help/man -he il suo fratello più completoman manha suggerimenti per la ricerca e la navigazione.