Respuestas:
Presta atención al número de sección: supongamos que quieres ayuda printf
. hay al menos dos de ellos: en shell y en C. La versión bash de printf está en la sección 1, la versión C está en la sección 3 o 3C. Si no sabe cuál desea, escriba man -a printf
y se mostrarán todas las páginas del manual.
Si lo que está buscando es el formato de printf con todos los códigos% y no aparece en la página de manual de printf, puede saltar a las páginas de manual relacionadas que figuran en el párrafo VER TAMBIÉN. Puede encontrar algo como formats(5)
, lo que sugiere que escriba man 5 formats
.
Si está molesto porque eso man printf
le da printf (1) y todo lo que quiere es printf (3), debe cambiar el orden de los directorios escaneados en la MANPATH
variable de entorno y colocar los del lenguaje C antes que los de los comandos de shell. Esto puede suceder también cuando las páginas de manual de Fortran o TCL / Tk se enumeran antes de las de C.
Si no sabe por dónde empezar, escriba man intro
o man -s <section> intro
. Esto le da un resumen de los comandos de la sección solicitada.
Las secciones están bien definidas:
Por último, pero no menos importante: la información entregada en las páginas de manual no es redundante, por lo tanto, lea detenidamente de principio a fin para aumentar sus posibilidades de encontrar lo que necesita.
man man
para ver una descripción completa de las diferentes secciones.
strstr()
) , y no tenía Internet a mi alrededor.
man -k substring
o apropos substring
te hubiera ayudado.
Escriba barra diagonal /
y luego escriba la cadena para buscar. Luego sigue presionando n
para llegar al siguiente elemento
man -k search
Esto le dará una lista de todas las páginas man relacionadas con 'buscar'.
man -k search -s 3
También se mencionan en superuser.com/a/677969/599957
Como @Steven D dice, no olvides las info
páginas.
Además, no te dejes intimidar por las info
páginas. Conozco a muchas personas que no usan las páginas de información debido al sistema de navegación incorporado. Mi solución favorita es canalizar las páginas de información a través de less
:
info gpg |less
De esta manera, puedo navegar por las info
páginas con mi buscapersonas favorito. Las info
páginas ahora se comportarán igual que las man
páginas.
La apropos
utilidad es muy útil para encontrar la página de manual adecuada.
man -k
== apropos
, ¿no es así?
apropos
es lo que uso todo el tiempo cuando busco algo que no tiene página de manual para sí mismo.
El buscapersonas predeterminado para leer una página de manual es less
. Hay documentación less
aquí .
En particular:
ctrl+space
/ f
, lo que puede ser útil según los dedos que prefiera usar para la navegación.
Siempre revisa lo que hay en la sección VER TAMBIÉN. Los comandos que se muestran en esta sección en la info
página se pueden seleccionar colocando el cursor en el comando deseado y luego presionando la tecla Intro. Con frecuencia encuentro otros comandos o funciones útiles de esa manera.
Supongo que usar la mayoría de los buscapersonas es una buena idea. Este localizador es muy poderoso, pero la característica principal para mí es mostrar páginas de manual en color. Esta característica mejora la percepción del texto plano y facilita la búsqueda de la información necesaria.
Mira la captura de pantalla adjunta, el texto se ve muy bien, ¿no?
most
para ver páginas de manual.
> ~/.bashrc
ya que sobrescribirá lo que ya está allí. Es mejor agregar ( >>
) o agregar la lima manualmente en mi opinión.
aptitude install most; export MANPAGER="most"; man man
. Para hacerlo permanente:echo 'export MANPAGER="most"' >> ~/.bashrc
En Linux man
, puede hacer man -K string
(tenga en cuenta la K mayúscula) para hacer una búsqueda de fuerza bruta de un término determinado
-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.
muy útil cuando no sabes dónde buscar.
No ignores las info
páginas. Muchas herramientas de GNU tienen páginas de información mucho más extensas que las páginas de manual. A menudo, la sección VER TAMBIÉN dirá "La documentación completa para foo se mantiene como un manual de Texinfo". Esto es especialmente cierto para cualquier cosa en el paquete GNU coreutils.
Además, si es un usuario de emacs, no olvide que puede leer información y páginas de manual sin salir de su editor: M-x info
y M-x woman
.
Para esas páginas de manual más largas y complejas, me resulta mucho más fácil leerlas lejos de una computadora (extraño, lo sé), por lo que tengo estas funciones en mi .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 ;}
De la respuesta de Kristof, si escribe (es decir) man -k chmod
obtendrá una lista de posibilidades. Tenga en cuenta el número entre paréntesis, significa la sección que debe buscar en las páginas del manual:
En UNIX puedes probar:
man -s1 chmod
mostrará la página del comando man chmod
man -s2 chmod
mostrará la página del manual para la función C lib chmod ()
En Linux debes cambiar -s
por-S
Ver páginas de manual en una aplicación gráfica fácil de usar:
konqueror man:(command)
Para la tabla de contenido de nivel superior:
konqueror man:
caracteristicas:
info:(command)
. Algunos programas proporcionan mucha más información a través de "información" que a través de "man", y konqueror proporciona una interfaz mucho más agradable para navegar por estas páginas de información. Nota: Solo usar info:
, también funciona para obtener una tabla de contenido de nivel superior.
gman
paquete que establece un servidor web de página de manual en localhost / cgi-bin / man / man2html .
yelp
es un reemplazo directo más liviano para konqueror
, aunque tiene la deficiencia de no presentar una tabla de contenido o una página de desambiguación para los nombres utilizados en varias secciones. Debe diferenciarlos explícitamente agregando .(section)
, por ejemplo yelp man:open.2
. También puede usar <kbd> Ctrl-L </kbd> para abrir la barra de ubicación.
Dayum, gente! ¿Qué pasa con las respuestas complicadas? ¿Qué pasó con la simplicidad como la clave de la brillantez y qué no? La mayoría de sus teclas vi / vim funcionarán perfectamente:
/
o ?
- Buscar hacia adelante o hacia atrás (como algunos de los chicos ya han mencionado). En el caso de la primera, una n minúscula se desplazará a través de las coincidencias hacia adelante, una N mayúscula irá hacia atrás. Lo contrario es cierto para el último: el signo de interrogación.
Búsquedas un poco más complejas a través de expresiones regulares. La diferencia entre man
(o less
) y VIM es que tiene que usar el carácter escape () para declarar metacaracteres en su expresión cuando usa este último. La buena noticia es que cuando usa el primero ( man
o less
), no tanto. Lo que puede poner fácilmente esto para usar en la búsqueda, por ejemplo, una iptables
página del manual de múltiples términos, así:
/(iptables|rules)
. Si no está familiarizado con las expresiones regulares, esto significa "Buscar instancias de palabras iptables
Orules
". Después de ingresar esto y seguir presionando n, se desplazará a través de los resultados alternativos de la búsqueda con los resultados muy bien resaltados para usted con diferentes colores (dos, en realidad. Jaja). Si está intentando hojear la página y desea concentrarse en términos o conceptos específicos: ¡no se perderá nada!
Y, por supuesto, para una navegación más rápida, sus vi
reservas regulares siguen en pie (sin juego de palabras):
gg
o G
- principio / final del documento; (¡Corrección! En man
puedes usar todas las teclas mencionadas a continuación sin usar Ctrl. Eso es vi
solo).
Ctrl + u or d
- Desplazarse hacia arriba o hacia abajo;
Ctrl + b or f
- Lo mismo, solo en saltos más grandes. "Página hacia atrás o hacia adelante";
e
o y
- desplácese por una sola línea, pero creo que la mayoría de las personas preferirían simplemente usar las teclas de flecha. Sin embargo, si quieres quedarte "1337" y "nunca dejar la fila de casa" (como yo hago jajaja), ese es el camino a seguir.
Lo que estoy tratando de decir es que UNIX tiene dos tipos principales de controles de programa de teclado, que son ambas partes de la readline
biblioteca: vi y emacs. Mejora tus habilidades en cualquiera de los dos (pero, preferiblemente, en ambos) y hará tu vida mucho menos complicada. La mayoría de los programas CLI en UNIX emplean cualquiera de ellos. BASH
usa los controles de emacs de manera predeterminada, pero se puede configurar fácilmente en "modo vi" escribiendo set -o vi
. Lo mismo puede decirse de las expresiones regulares, pero eso estará fuera de tema. Incluso iría tan lejos como para decir que ambos son la "lingua franca" de UNIX.
Similar pero ligeramente diferente de la respuesta de Rob Hoelz,
Agregue lo siguiente en su ~/.vimrc
:
let $GROFF_NO_SGR=1
runtime ftplugin/man.vim
Ahora vimman
es un excelente visor de páginas de manual, y :Man
desde Vim (o simplemente presionando K
una palabra clave) es un excelente navegador de páginas de manual.
La mayoría de nosotros establecemos la variable PATH. Esto le mostrará cómo hacer que la ruta de búsqueda del hombre coincida automáticamente con su ruta de búsqueda de comandos.
Supongamos que agrega su ruta para incluir sus utilidades personales, específicas del trabajo e instaladas localmente, como export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:
. Como efecto secundario, man foo
no mostrará las páginas de manual almacenadas en ~ / man, / workgroup / man o / opt / local / man.
Para resolver esto, uso el manpath
comando para configurar automáticamente la ruta de búsqueda de la página del manual. Por ejemplo, mi ~ / .bashrc tiene lo siguiente. Esto funciona para mí en cientos de sistemas diferentes que ejecutan todo, desde FreeBSD 4.x, Darwin y 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
Algunos sistemas (como Apple Leopard) configuran MANPATH automáticamente, pero eso significa que su sistema usará la variable MANPATH en lugar de usar manpath
. Como resultado, las páginas de manual para 'MacPorts' (/ opt / local / man) se ignoran. Quiero controlar esto yo mismo, así que desarme MANPATH:
unset MANPATH
manpath >/dev/null
Si está molesto porque man printf le da printf (1) y todo lo que quiere es printf (3), puede decirle a man que desea que printf de la sección 3 ponga la sección antes de printf, así: man 3 printf
sin tener que cambiar el orden de directorios escaneados en la variable de entorno MANPATH y coloque los del lenguaje C antes que los de los comandos de shell.
Yo solo uso grep
. Si me preguntara qué hizo la -s
opción del read
comando, probaría estos comandos en orden hasta que obtuviera una respuesta:
info read |grep \\-s
man read |grep \\-s
help read |grep \\-s
En este caso, solo el info
comando proporcionó una respuesta clara. Esta excelente respuesta brinda detalles sobre los diferentes sistemas de ayuda.
Para buscar eficientemente el cambio de un solo carácter, por ejemplo -u
, a menudo puede usar:
/^ *-u($|\s)
Ahorra mucho tiempo si muchas opciones tienen '-u' como prefijo.
/-u($|[,\s])
en caso de que el carácter de opción esté enmarcado con una coma. Pero si quieres ver todas las entradas de la opción de carácter 'u' (como -u]
en la [--udp|-u]
del netstat
manual) que necesita algo como esto: /-u($|[^a-z])
Y si vi
, o vim
se utiliza como buscapersonas: /-u\($\|[^a-z]\)
El comando apropos (1) se utiliza para buscar páginas de manual. Sin embargo, la mayoría de las implementaciones de apropos (1) solo buscan en la sección NOMBRE, lo cual es muy limitante.
NetBSD tiene una implementación de búsqueda de texto completo de apropos (1), que es capaz de buscar el contenido completo de las páginas man. También hay una interfaz basada en la web para ello: man-k.org , que puede probar.
Si le resulta difícil leer las páginas de manual debido a todo el texto de color blanco, puede colorearlas. La mayoría de las páginas man abren con less
. Para less
, uso la siguiente configuración de color .bashrc
desde aquí :
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 "$@"
}
Esto es para bash y zsh. Para most
, fish
, xterm
y rxvt
ver el enlace anterior.
Para más lectura:
Y para aquellas personas a las que les gusta leer páginas man e información en una pantalla táctil, puede canalizar man / info a yad o zenity y hacer uso de todas las ventajas de gtk3 como el desplazamiento con el dedo nativo. También funciona muy bien con la pantalla y el mouse refulares:
man cat |yad --text-info
También puede usar zenity o puede agregar opciones yad como:
man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &
Consejo: al mostrar uri, puede hacer clic en los enlaces web dentro de las páginas man con el mouse / dedo.
man --help
/man -h
y su hermano más completoman man
tiene consejos de búsqueda y navegación.