A veces te sientes deprimido, quieres 'man up': ¿cómo puedo agregar esta entrada manual en Unix?

44
Cris-Mac-Book-2:src cris$ man up
No manual entry for up

¿Cómo puedo remediar esta situación?

Quiero agregar una entrada manual 'inventada' para un comando no existente uppara poder escribir man upcuando sea necesario. Sugerencias de cosas para incluir son bienvenidas adiciones a las instrucciones de adición manual.

Además, en caso de que mi estación de trabajo tenga usuarios femeninos, me aseguraré de que las lnmujeres:

Cris-Mac-Book-2:src cris$ sudo link /usr/bin/man /usr/bin/woman
Cris-Mac-Book-2:src cris$ woman
What manual page do you want?
Cris-Mac-Book-2:src cris$ 

Aunque probablemente debería cambiar eso a Which womanual page do you want?, ¿eso implicaría volver a compilar o hay un parche?

Cris Stringfellow
fuente
44
Demasiado interesante para dejarlo pasar
Canadian Luke REINSTATE MONICA
3
También debe hacer un enlace simbólico lawyerpara que si alguna vez se encuentra en una situación precaria pueda lawyer up.
Justin ᚅᚔᚈᚄᚒᚔ
55
Si, sabio! Y aunque lo intenté nice lawyer up, todavía quería usar todos los recursos del sistema.
Cris Stringfellow
1
¡Y es una pregunta candente!
Canadian Luke REINSTATE MONICA

Respuestas:

31

Estas parecen ser buenas instrucciones para agregar una nueva página de manual:

Cómo: Linux / UNIX Crear una página de manual

En resumen, una página de manual es simplemente un archivo de texto, con información de formato adicional para troff

Generalmente está en el formato

.\" Manpage for up.
.\" Contact [email protected] to correct errors or typos.
.TH man 8 "06 May 2010" "1.0" "name man page"
.SH NAME
up \- into a higher position or level
.SH SYNOPSIS
up [anything you like]
.SH DESCRIPTION
up is a pretty good place to be
.SH OPTIONS
up does not take any options, though you can choose the speed of your acent 
.SH SEE ALSO
yes(1), time cat (2) cal 3() 
.SH BUGS
No known bugs. Gravity is not a bug, "Its a feature"
.SH AUTHOR
Chris Stringfellow ([email protected])

Guarda esto como up

Luego puede ver la página de manual man ./updesde el mismo directorio

Las páginas de manual suelen estar debajo /usr/local/man/man8/y comprimidas

Puede copiar su página de manual con y cp up /usr/local/man/man8/up.1luego comprimirla congzip /usr/local/man/man8/name.1

Luego puede probarlo con man up, lo que debería generar algo como esto

Kride
fuente
44
Además, si escribir un marcado en bruto * roff no es su taza de té, podría, por ejemplo, escribir la página en POD y usar pod2man para convertirla en una página de manual.
Ilmari Karonen
8

Aunque probablemente debería cambiar eso a Which womanual page do you want?, ¿eso implicaría volver a compilar o hay un parche?

La recompilación produce los mejores resultados, pero esto debería hacerlo mientras tanto:

#!/bin/bash

ARG=${1/woman/man}

man $ARG > /dev/null 2>&1

if [ $? -eq 0 ]; then
    man $ARG 2> /dev/null \
        | sed \
            -e 's/\(m[ae]n\)/wo\1/g' \
            -e 's/\(M[AE]N\)/WO\1/g' \
            -e 's/M\([ae]n\)/Wom\1/g' \
            -e 's/    //' \
            -e 's/\([^ ]\)  /\1 /g' \
        | less
else
    man $ARG 2>&1 | sed -e 's/\(m[ae]n\)/wo\1/'
fi

Guardar como /usr/sbin/woman, establecer permisos de ejecución y comenzar a probar:

woman
woman down
woman woman
Dennis
fuente
2
Sin embargo, detecté un error en mi nueva mujer. Ella sigue diciendo No wo0ual entry for down: ¿qué dije mal?
Cris Stringfellow
woman sedsolo se menciona a \1través de \9for s/regexp/replacewoment/, por lo que \0podría no estar disponible en todos los sabores y versiones de sed. He editado mi respuesta.
Dennis
2
Me aseguraré de verificar la woman sedpróxima vez, ¡generalmente tienen razón! ;) Por cierto, funciona ahora. No womanual entry for sexEs clásico. La womanpágina de Sed es un clásico de deadset:A single comwomand may be specified as the first arguwoment to sed.
Cris Stringfellow