¿Cómo puedo obtener ayuda sobre los comandos del terminal?

33

A menudo veo cosas como

leer Para obtener más información, lea la página de manual de xyz . verman xyz

info xyz

entonces me pregunto

  • ¿Cómo puedo obtener ayuda sobre los comandos de terminal en general?
  • ¿Qué son exactamente estas páginas de hombre e información ?
  • ¿Cómo puedo encontrarlos y verlos?
postre
fuente
1
Parcialmente un engañado
muru
También me gustaría mencionar tldr.sh , que es un esfuerzo para simplificar y presentar las páginas man de una mejor manera.
No, no muestra mi nombre real el
@ Nodon'tshownmyrealname ¿Escribirías una respuesta tldr? También podría mencionar cheaty tal vez cheat.sh .
postre

Respuestas:

44

¿Qué es una página de manual ?

Una página man (abreviatura de página manual) es la forma tradicional de documentación de software en un sistema operativo tipo Unix como Ubuntu. Para la gran mayoría de comandos y programas, hay una página de manual que enumera sus opciones y explica su uso.

¿Cómo puedo encontrar y ver páginas de manual?

Desconectado en una terminal

Las páginas man se instalan automáticamente en su sistema junto con los comandos que describen. Para ver y buscar páginas de manual, está el comando man:

man mv

muestra la página de manual de mvwhile

man -k mv

busca nombres y descripciones cortas de todas las páginas man instaladas para la cadena mv. Las expresiones regulares extendidas POSIX están permitidas y es una búsqueda , por lo que también encontrará, por ejemplo , git-mvy semver, si desea buscar exactamente, mvuse ^mv$en su lugar.

Vea ¿Cuál es la diferencia entre `man` y` man (#) `? para leer sobre las secciones de la página man. Para más información lea manla página del manual. ;)

¿Cómo puedo influir en cómo se muestra una página de manual?

El programa predeterminado para mostrar páginas man es less. Este llamado buscapersonas proporciona una útil función de búsqueda, solo ingrese /seguido del término de búsqueda, por ej.

/--version

y presione Enter. Esto marcará cada hallazgo y se desplazará al primero. Presione Npara ir al siguiente hallazgo y ⇧ Shift+ Npara ir al anterior (consulte ¿Cómo puedo buscar dentro de una página de manual? ). Para obtener una lista de comandos H, presione , para salir, lesspresione Q.

Además lesshay otros buscapersonas disponibles pg, mosty w3msolo para enumerar tres. Recomiendo most: viene con un colorido muy útil de palabras clave que hace que una página de manual sea mucho más fácil de leer y navegar, compruébelo usted mismo:

más captura de pantalla que muestra la página de manual de mv

Para ver una página de manual en un localizador diferente al predeterminado, use la -Popción, por ejemplo:

man -P most mv

Si desea cambiar las páginas de manual del buscapersonas predeterminado , tiene dos opciones:

  • change the default pager solely of man

    export MANPAGER=most
    

    Para que el cambio sea persistente, agregue este comando a su ~/.bashrcarchivo.

  • cambiar el localizador predeterminado de todo su sistema

    sudo update-alternatives --config pager
    

Los fanáticos pueden incluso usar (ab) vimcomo MANPAGER, vea este artículo escrito por muru .

Las páginas man se muestran en la fuente especificada en la configuración del emulador de terminal. Si trabaja regularmente con el terminal, es posible que desee cambiar esta fuente; Solo puedo recomendar Hack, un tipo de letra diseñado para el código fuente , mira la captura de pantalla de arriba por su belleza.

Fuera de línea a través de GUI

Una manera agradable y fácil de mostrar páginas de manual con una GUI simple es el yelpprograma preinstalado . Para iniciar una página de manual con yelpexecute yelp man:PROGRAMo gnome-help man:PROGRAM, por ejemplo:

yelp man:mv

También puede ver páginas de manual con su navegador preferido , consulte ¿Cómo hago que las páginas de manual se abran en un navegador web? , por ejemplo, man mven firefox:

man -Hfirefox mv

Por último, pero no menos importante, puede convertir páginas de manual a PDF y verlas con su visor de PDF preferido, consulte: ¿Hay alguna manera de imprimir información / páginas de manual a PDF?

En línea

http://manpages.ubuntu.com

Puede ver las páginas de manual de los programas disponibles a través de los repositorios de cada versión de Ubuntu actualmente compatible con la URL abreviada manpg.es/PROGRAM, por ejemplo, http://manpg.es/mv . Esto abre mvla página de manual de la última versión de Ubuntu, puede elegir una versión diferente en la barra superior. Para buscar páginas de manual, puede utilizar, por ejemplo, http://manpages.ubuntu.com/cgi-bin/search.py?q=mv .

Como se explicó anteriormente man, solo puede mostrar páginas de manual del software instalado en el sistema. Para ver páginas de manual de http://manpages.ubuntu.com usando un localizador de terminales, hay dmandisponible en el bikeshedpaquete.

Otras fuentes

Cuando lees documentación de otras fuentes en línea, es una buena idea vigilar la versión del programa. La mayoría de los programas tienen una --versionopción que muestra la versión del programa en cuestión, p. Ej.

$ mv --version
mv (GNU coreutils) 8.25

Hay muchos sitios web que se dedicaron a hacer que las páginas de manual estén fácilmente disponibles, solo voy a presentar los dos que más me gustan:

  • man7.org viene con resaltado de sintaxis útil, pero presenta solo la última versión lanzada del programa
  • manpag.es aloja las páginas man de los lanzamientos de Ubuntu hace mucho tiempo EOL

Fuente no vinculada: https://wiki.ubuntuusers.de/man/

postre
fuente
Otro truco útil (al menos si eres un programador) es escribir un pequeño script para volcar la salida del hombre en el editor de texto que elijas. Por ejemplo (\ n es nueva línea) #! / Bin / tcsh \ n set name = $ argv [$ # argv] \ n set file = /tmp/man.$name.out\n / usr / bin / man $ * | col -bx> $ file \ n (ruta de acceso a su editor) $ file \ n rm $ file \ n Una macro similar pero específica del editor le permitirá llamar a man desde el editor, lo cual es bastante útil.
jamesqf
@jamesqf Interesante, ¿por qué lo haces y cuándo lo usas? Como los editores generalmente pueden leer desde stdin, puede simplificarlo a eg man $*|col -bx|nano -o man $*|col -bx|kate -i.
postre
@jamesqf si exporta la página de manual a un archivo de texto para buscar o navegar fácilmente, debería considerar echar un vistazo a la página "RESUMEN DE MENOS COMANDOS" . Puede abrirla escribiendo 'h' en less( manuse el lesscomando para paginación así que funciona mantambién)
Ludovic Ronsen
@Ludovic Ronsin: lo hago en mi editor en lugar de menos por dos razones. Primero, porque conozco los comandos de mi editor (que son mucho más poderosos que los menos comandos), y no tengo que molestarme en aprender otro conjunto de comandos, que inevitablemente confundiría en diferentes contextos. En segundo lugar, porque puedo conectar la versión del editor a una pulsación de tecla (Alt-m, como sucede) y así obtener ayuda en cualquier llamada de función que tenga una página de manual. En cuanto a por qué lo hago como lo hago, lo escribí hace más de 20 años, y funcionó lo suficientemente bien.
jamesqf
@jamesqf simplemente configuraría PAGER = "vim -" do?
d33tah
13

Ya se han cubierto los conceptos básicos, pero creo que un sitio web es bastante útil para decirle qué hace un comando es https://explainshell.com , que desglosa un comando en sus secciones y muestra lo que hace cada bit.

ingrese la descripción de la imagen aquí

Qwertie
fuente
1
+1 Eso no es lo que buscaba cuando escribí estas preguntas y respuestas, pero es un gran recurso que no conocía, ¡muchas gracias! Como las otras respuestas cubren deliberadamente un tema principal, ¿quizás extienda su respuesta para cubrir las herramientas en línea en general? shellcheck.net viene a la mente ...
postre
12

¿Qué es una página de información ?

Junto a

man program-name

a menudo también hay

info program-name

A veces son iguales (duplicados), pero a veces una de estas páginas contiene más información. Por ejemplo

info ddrescue

contiene más información que

man ddrescue

y

info date

contiene más información que

man date

El equilibrio entre many infodepende de la política de las personas que mantienen el programa particular [paquete].

Vea este enlace para más detalles,

unix.stackexchange.com/questions/19451/difference-between-help-info-and-man-command

sudodus
fuente
11

Cual es el helpcomando?

helpMuestra información útil sobre bashlos comandos integrados. Proporciona ayuda solo para comandos bash shell. Se puede utilizar typepara determinar si un comando es como un built-in, por ejemplo type echovs type rm.

Se llama con un patrón como argumento:

help if

muestra la página de ayuda para el ifcomando. Si solo está interesado en la sintaxis de un comando, use la -sopción, si desea helpproducir resultados en manformato de página, use -m. Para ver convenientemente textos de ayuda largos, puede canalizar la salida a su buscapersonas preferido (consulte la sección "¿Cómo puedo influir?" De esta respuesta ):

help -m if | less

Comparación con manyinfo

Puede ejecutar y comparar los siguientes comandos:

help echo  # for the bash built-in command `echo`
man echo   # for the program `/bin/echo`
info echo  # for the program `/bin/echo`

Al igual que en este ejemplo, hay programas que están disponibles tanto como programa incorporado como habitual (consulte ¿Por qué hay un / bin / echo y por qué querría usarlo? ), En este caso, la página del manual generalmente contiene un nota que indica eso.

Vea este enlace para más detalles: Diferencia entre ayuda, información y comando man · U&L

la opción de un programa -hy / o--help

Por lo general, hay ayuda integrada en los programas disponibles a través de al menos una de las opciones -h, --helpo -?:

PROGRAM -h
PROGRAM --help
PROGRAM -?

Si ambas opciones -hy --helpexisten, que a menudo son equivalentes, pero a veces se consiguen 'más ayuda' con --help, -H, --longhelp, --help-allo comandos similares. Este comportamiento está documentado en la página man/ programa info.

Por lo general, hay más información a través de many info, pero a veces hay información exclusiva a través de -h. Ejecute y compare la salida de

man lsblk

y

lsblk -h

Algunos programas como df, tary rsyncutilizan la opción -hpara otra cosa. Esto se describe en la página man/ infode cada programa.

De nuevo, puede canalizar la salida a su buscapersonas preferido, por ejemplo:

lsblk -h | less
sudodus
fuente
Gracias por mencionar --help, que a menudo es lo único que necesito con la mayoría de los comandos, y siempre lo primero que intento.
JPhi1618
6

¿Qué es un tutorial y cómo puedo encontrar uno útil?

Cuando tenga experiencia en Linux, las páginas de manual , las páginas de información y las opciones de ayuda son muy útiles. Pero al principio, pueden ser difíciles de entender; necesita ayuda más detallada para comenzar.

Puedes encontrar ayuda detallada en tutoriales ,

  • explicación detallada de cómo usar un comando
  • ejemplos

Por lo general, encontrará tutoriales a través de Internet, a veces hay un tutorial útil en la página de manual o la página de información.

  • Pruebe algunas cadenas de búsqueda cuando utilice el motor de búsqueda de su navegador web, por ejemplo

    • Buscando herramientas específicas

      • nano tutorial
      • tutorial de sed
      • tutorial de imagemagick
      • tutorial rsync
    • Buscando tareas (y encontrando tutoriales para varias herramientas)

      • tutorial del editor de modo de texto de Linux
      • tutorial del editor de imágenes en modo por lotes de Linux

Mire brevemente algunos de los enlaces que encuentre y comience a trabajar con un tutorial que se ajuste a lo que necesita .

  • man rsync está lo suficientemente detallado como para que lo use como tutorial, pero es posible que desee más detalles (y busque un tutorial a través de Internet).
  • info ddrescue tiene un buen tutorial incorporado.
sudodus
fuente
Perfecto, gracias por tu constante contribución. Creo que esta pregunta será una fuente muy útil a la que los principiantes pueden apuntar. Agregaré un índice de contenido a la pregunta y vincularé las respuestas a los espectadores de repuesto para desplazarse.
postre el
1
@dessert, esta es una buena iniciativa tuya, y me alegra poder contribuir :-)
sudodus
2

Mi favorito es commandlinefu.com , tengo una función en tu .bashrco .zshrccomo esta

cmd() { curl "http://www.commandlinefu.com/commands/matching/$(echo "$@" \
    | sed 's/ /-/g')/$(echo -n $@ | base64)/plaintext" ;}

Probemos cmd mount cd, llamé a mi función cmd, puedes llamarlo como quieras

ingrese la descripción de la imagen aquí

La función anterior busca en el sitio web de commandlinefu, es un sitio web impulsado por la comunidad al igual que aquí, los usuarios tienen la capacidad de votar los comandos, etc. Luego muestra los mejores resultados como en la imagen.

o hay una nueva forma de hacerlo usando esto .

http://samirahmed.github.io/fu/

Aquí hay un tutorial .

Hagamos fu cron

ingrese la descripción de la imagen aquí

Lynob
fuente
1

Averigua cómo abrir una ventana de terminal y ejecuta el comando man man. Escriba la barra espaciadora para avanzar a la siguiente pantalla siempre que diga "Más" en la parte inferior. ¡Está leyendo la página del manual para el programa de lectura manual man!

Hay un problema muy pequeño de huevo y gallina para que lo superes. El mancomando le ayuda a leer el manual sobre cada comando en el sistema. Pero la mansalida usa otro comando llamado more. También puede leer man morepara aprender comandos de navegación adicionales para more.

¡Y eso es todo! Aprendí todo lo que sé sobre Unix leyendo las páginas de manual de cientos de comandos.

Douglas Held
fuente
3
En Ubuntu, manutiliza lesspor defecto, no more.
muru
0

Muchos manya lo han mencionado . Una pequeña característica interesante para manpocos son

man -t $ (página de manual) > manpage.ps

que produce un archivo PostScript para la página del manual. PostScript se puede convertir fácilmente a PDF. Esto da como resultado un formato mucho más agradable que la versión predeterminada del terminal de línea de comandos man.

Por ejemplo:

man -t man> man.ps

pstopdf man.ps

Lo acabo de probar en Ubuntu (y debería funcionar en otros Linuces) y Mac OS.

Oleg Lobachev
fuente