¿Cómo saltar a una bandera en particular en una página de manual de Unix?

23

Al leer una página de manual de Unix en la terminal, ¿cómo puedo saltar fácilmente a la descripción de una bandera en particular?

Por ejemplo, necesito saber el significado de la -obandera para mount. Corro man mounty quiero saltar al lugar donde-o se describe. Actualmente, busco /-osin embargo esa opción se menciona en varios lugares antes de la sección que realmente la describe, así que debo saltar un poco.

Gracias.

dotancohen
fuente

Respuestas:

27

Lo que hago es poner algunos espacios en blanco frente a la bandera de esta manera:

/     -o

Eso no es 100% confiable, pero saltas a través de muchos menos aros. Si quieres una tasa de éxito aún mejor, inténtalo "/^ +-o". Eso encontraría líneas que comienzan con espacios en blanco y seguidas de -o. Sin embargo, no me gustaría escribir esa cadena rara a menudo.

akostadinov
fuente
11

He definido esta función en mi .bashrc

function manswitch () { man $1 | less -p "^ +$2"; }

que puedes usar de la siguiente manera

manswitch grep -r

Lo obtuve de esta línea de comando .

Nota: el argumento para el -pcambio de lesses una expresión regular que le dice a menos que busque una línea que comience con ( ^) uno o más espacios ( +) seguidos por el interruptor (segundo argumento, entonces $2), por lo que tiene la ventaja de trabajar con un formato diferente.

ggll
fuente
5

También puede abrir la página de manual en una posición específica desde la línea de comandos con

man -P 'less -p "     -o"' mount
prisa
fuente
Votaron por ser posible, pero eso es bastante más para escribir que para buscar desde dentro del hombre. Gracias, sin embargo!
dotancohen
Eso es bastante útil para enviar a alguien al lugar exacto en la página man :)
fiebre del
Sí, solo estaba pensando que si tuviera que abrir una página de manual en un script por alguna razón, también sería útil. ¡Gracias!
dotancohen
3

La respuesta de @ piccobello es genial, pero estaba comiendo los colores en mis páginas de manual. En lugar de canalizar a less( manya que lessusualmente ya se usa por defecto), simplemente paso el lesscomando modificado a man:

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

Esto conserva la funcionalidad que @piccobello tenía en su función, pero conserva los colores.

Jorge Israel Peña
fuente
1

Las otras soluciones son bastante buenas, pero también recuerda que las páginas man son solo datos y que puedes hacer casi cualquier cosa con ellas en Linux.

man some-command> file.txt

convierte la página en un archivo de texto sin formato que luego puede manipular. Guardo una copia del manual de bash como texto en mi directorio bin para poder cargarlo en mi editor de texto para buscar cosas y copiar y pegar mientras estoy editando scripts.

O puede colocarlo en filtros como

hombre algún comando | grep -A líneas-después de "algún patrón"

Aunque no funcionaría para usted en una terminal, yo (con la ayuda de un amigo) incluso escribí un script que toma una página de manual y la muestra en un navegador web para que pueda usar sus funciones de navegación / búsqueda, que son mucho mejores que menos Es un poco dependiente de kde, pero fácil de modificar.

http://dl.dropbox.com/u/54584985/kman

Joe
fuente
3
Es posible que desee probar man://en Konqueror. KDE tiene una página de manual KIOSLAVE!
dotancohen
@dotancohen - Genial. No sabía sobre eso.
Joe
@dotancohen: acabo de probarlo en Dolphin y también funciona, pero muestra las páginas de manual como directorios y archivos e inicia su navegador predeterminado cuando hace clic en un archivo. No entiendo la parte sobre KIOSLAVE. Probé man: // kioslave y fue lo mismo que man: //.
Joe
@dotancohen - No importa, busqué kioslaves en wikipedia. en.wikipedia.org/wiki/KIO
Joe
Sí, KDE tiene casi todo. ¡Disfrutar!
dotancohen
1

Escribí una herramienta que hace exactamente esto, llamada flagman . Aún en desarrollo pero ya utilizable. Por ejemplo:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
pliegue derecho
fuente