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 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 del genere formats(5)
, che ti suggerisce di digitare man 5 formats
.
Se sei infastidito che man printf
ti dà printf (1) e tutto ciò che vuoi è printf (3), devi cambiare l'ordine delle directory scansionate nella MANPATH
variabile 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 intro
o 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 man
per una descrizione completa delle varie sezioni.
strstr()
) e non avevo una rete attorno a me.
man -k substring
o ti apropos substring
avrei aiutato.
Digitare slash /
e quindi digitare la stringa da cercare. Quindi continuare a premere n
per 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 info
pagine.
Inoltre, non lasciarti intimidire dalle info
pagine. 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 info
pagine usando il mio cercapersone preferito. Le info
pagine ora si comporteranno come le man
pagine.
L' apropos
utilità è 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?
most
a visualizzare le pagine man.
> ~/.bashrc
in 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 info
pagine. 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 info
e 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 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 si dovrebbe cambiare -s
per-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.
gman
pacchetto che stabilisce un server web manpage su localhost / cgi-bin / man / man2html .
yelp
essendo 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 ( man
o less
) -non così tanto. Così si può facilmente mettere questo a utilizzare per la ricerca, per esempio, una iptables
pagina di manuale per i termini più in questo modo:
/(iptables|rules)
. Se non hai familiarità con le espressioni regolari, significa "Cerca istanze di parole iptables
OPPURErules
". 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 vi
standbie normali rimangono (nessun gioco di parole previsto):
gg
oppure G
- inizio / fine del documento; (Correzione! In man
puoi usare tutti i tasti menzionati di seguito senza usare Ctrl. Questo è vi
solo).
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
oppure 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 readline
biblioteca: 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. BASH
usa 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 :Man
dall'interno di Vim (o semplicemente premendo K
una 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 foo
non mostrerà le pagine man memorizzate in ~ / man, / workgroup / man o / opt / local / man.
Per risolvere questo problema, utilizzo il manpath
comando 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 bash
integrato (come time
, disown
, set
, o [[
), invece di slogging attraverso il dettaglio di bash
pagina 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 printf
senza 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' -s
opzione del read
comando, 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 info
comando 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 netstat
manuale) avrete bisogno di qualcosa di simile a questo: /-u($|[^a-z])
E se vi
o 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 .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 "$@"
}
Questo è per bash e zsh. Per most
, fish
, xterm
e rxvt
vedi 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 -h
e il suo fratello più completoman man
ha suggerimenti per la ricerca e la navigazione.