Entiendo qué es GNU Info y cómo usarlo, pero ¿ para qué sirve ? ¿Por qué existe en paralelo a las páginas man? ¿Por qué no escribir páginas de manual detalladas en lugar de proporcionar una utilidad separada?
El archivo texinfo puede hacer mucho más las macros de groff.
jordanm
15
Tiene una ventaja sobre las páginas de manual: "hipervínculos". El resto son desventajas, comenzando con Not Invented Here Syndrom, combinaciones de teclas divertidas, problemas de mantenimiento de directorios y muchos más.
Jens
44
Úselo info --vi-keyspara hacer que las combinaciones de teclas de información se sientan más familiares. También se puede utilizar lesscon la información para que se sienta como man: info --subnodes -o - $1 | less. Sin embargo, se pierde algo de formato de texto de esta manera.
1
Alternativamente, apunte su navegador a gnu.org/manual . (Usar Vimperator / Vrome es opcional).
nwk
Respuestas:
63
GNU Info fue diseñado para ofrecer documentación que fuera completa, con hipervínculos y que fuera posible generar en múltiples formatos.
Las páginas de manual estaban disponibles, y fueron excelentes para proporcionar salida impresa. Sin embargo, fueron diseñados de tal manera que cada página de manual tenía un conjunto de contenido razonablemente pequeño. Una página de manual podría tener una discusión sobre una única función de C, como printf (3), o describiría el comando ls (1).
Eso se rompe cuando entras en sistemas más grandes. ¿Cómo encajaría la documentación de Emacs en las páginas man? Un ejemplo del problema es la página de manual de Perl, que enumera 174 páginas de manual separadas que puede leer para obtener información. ¿Cómo navega a través de eso o realiza una búsqueda para averiguar qué significa &&?
Como una mejora sobre las páginas de manual, Info nos dio:
La capacidad de tener un solo documento para un sistema grande, que contiene toda la información sobre ese sistema. (versus 174 páginas de manual)
Capacidad para realizar búsquedas de texto completo en todo el documento (v. Man -k, que solo verifica las palabras clave)
Hipervínculos a diferentes partes del mismo documento o de diferentes documentos (v. La sección Ver también, que se convirtió en hipervínculos por parte de algunos, pero no todos, los lectores de la página del manual)
Un índice para el documento, que podría examinarse o podría presionar "i" y escribir un término y buscaría el índice y lo llevaría al lugar correcto (v. Nada)
Exploración lineal de documentos a través de conceptos, lo que le permite leer las secciones anteriores y siguientes si lo desea, ya sea con el mouse o con la tecla (v. Nada).
¿Sigue siendo relevante? Hoy en día, la mayoría de las personas diría "Esta documentación no pertenece a una página de manual" y la pondrían en un PDF o en HTML. De hecho, los sistemas de ayuda en varios sistemas operativos se basan en HTML. Sin embargo, cuando se creó GNU Info (1986), HTML aún no existía. Hoy en día, texinfo le permite crear PDF, información u otros formatos, para que pueda usar esos formatos si lo desea.
man -K foo, con la opción en mayúsculas, realiza una búsqueda global de texto completo. Prueba man -K global-apropos: encuentra las páginas por mansí mismo, en inglés y en el idioma local.
Volker Siegel
1
¿Cómo saber qué significa '&&'? ... mira en el índice: "man perl", desde allí verá Descripción general, tutoriales, manual de referencia, internos, misceláneos (libros, fuentes comunitarias, licencia, registros de cambios) (~ 40), documentos específicos de idioma + plataforma. De ellos, para '&&', miro en la sección de referencia y veo la sintaxis, los datos y los operadores, como las primeras 3 secciones, como la mayoría de los manuales de referencia de idiomas. && parece una operación, así que miro en la página de manual de perlop, y en la segunda pantalla aparece una lista de todos los operadores. Compárelo con descifrar claves para --vi-mode arg a 'info' ... buena suerte.
Astara
41
La razón por la que se inventó el sistema de información es la necesidad, pero supongo que "pereza, arrogancia e impaciencia" es una explicación igualmente buena.
El objetivo del proyecto GNU era desarrollar un sistema operativo y herramientas libremente modificables y libremente distribuibles. El sistema tradicional de Unix man se basaba en el sistema de formateo de documentos nroff / troff de Bell Labs, que en ese momento era un software comercial (no libre). Finalmente, ese sistema fue diseñado por ingeniería inversa y se creó un reemplazo gratuito llamado groff, pero eso fue varios años después de que comenzara el proyecto GNU. Por lo tanto, usar el sistema man para la documentación de GNU antes habría requerido implementar un reemplazo troff, una gran empresa.
Mientras tanto, GNU Emacs fue el primer gran proyecto de GNU y requirió una extensa documentación. Frente a una montaña de trabajo que implementa el sistema GNU, Richard Stallman buscó el software existente que podría usar en su sistema. TeX ya existía y tenía poderosas capacidades de formateo de documentos. A diferencia de nroff / troff, TeX era libre de usar y redistribuir. Texinfo fue creado como un sistema de documentación para aprovechar el poder de TeX para manuales impresos y GNU Emacs para procesamiento y lectura de documentación en línea. El procesador Texinfo original y el navegador de documentos Info fueron escritos en Lisp y se ejecutaron dentro de Emacs. Las utilidades independientes de Texinfo llegaron varios años después.
Como dice la página de Wikipedia , Richard Stallman diseñó TeXinfo como la documentación oficial del proyecto GNU. Es un conjunto de macros sobre TeX, y fue diseñado para escribir manuales de software. Creo que Stallman consideró que las páginas de manual eran inadecuadas para la tarea. Dos ventajas que tiene Texinfo sobre las páginas de manual es que está hipervinculado, y en segundo lugar, que es, por diseño, fácil de convertir a otros formatos.
APÉNDICE: Si bien no es estrictamente relevante para la pregunta, tenga en cuenta que las páginas de manual todavía se consideran el sistema de documentación estándar en sistemas gratuitos tipo Unix como los que se ejecutan sobre el núcleo de Linux y también los diversos sabores de BSD. Por ejemplo, las plantillas de paquetes de Debian fomentan la adición de una página de manual para cualquier comando, y también lintian comprueba una página de manual. Texinfo todavía no se usa ampliamente fuera del proyecto GNU.
+1 especialmente para la nota sobre hipertexto, que creo que fue una razón importante para querer alejarnos del manformato orientado a la copia impresa (entonces más que ahora) .
Tripleee
@ChristopherSchultz editado
Faheem Mitha
Estoy acostumbrado a libros para materiales de referencia. Puedo leerlos de principio a fin. Si los manuales y libros son inadecuados para escribir documentación, las computadoras y los idiomas nunca se habrían enseñado o aprendido. En el aprendizaje, la mayoría sigue una progresión de bajo a alto conocimiento con temas más complejos construidos sobre temas más simples. Los libros son casi de lo que todo niño aprende: información presentada secuencialmente. Los enlaces H son para enfocarse en temas de interés aleatorios: si es experto y maestro del tema, usted sabe lo que quiere y los enlaces pueden llevarlo allí rápidamente. Para referencia y aprendizaje, los enlaces no encajan bien.
Astara
7
Desde un punto de vista práctico , infoes el más detallado de los tres niveles de documentación de referencia:
Los tres niveles suelen aumentar en detalle:
--helpcomo una opción de comando común: un breve resumen de uso , manlas páginas de manual clásicas, una referencia rápida y infoun manual más detallado específico de GNU , la documentación oficial completa .
Si una infopágina no está disponible, la página de manual generalmente contiene la documentación completa.
Tenga en cuenta que la página del manual contiene exactamente la misma información que la --helpsalida para muchos comandos de los núcleos de GNU, por ejemplo ls;
Compare ls --helpy man lsvea que la diferencia solo está en el formateo.
El visor de información predeterminado es info.
Hay alternativas más cómodas , como para la terminal pinfo, o para la GUI konqueror:
@mikeserv No encontré la función de inclusión de respuesta secundaria. ;)
Volker Siegel
hmmm ... muy interesante, excepto que olvidas mencionarlo helpcomo un comando para los comandos bash incorporados, aproposy whatiscomo hombre con opciones para su uso práctico.
Una referencia hipervinculada no es un manual o libro. Una wiki? tal vez, pero los manuales nunca vienen con hipervínculos en el mundo fuera de línea. Vienen con referencias (véase el capítulo 38), pero no es bueno aprender de ellas. Después de haber leído recientemente el libro más reciente de C ++, puedo aceptar que use referencias hacia adelante y hacia atrás si desea obtener más información sobre un tema que se tratará más adelante. Una vez que haya leído el libro, esas referencias pueden ser de gran ayuda para encontrar cosas. ¿Pero para alguien nuevo en un programa complejo? Preferiré un libro sobre un HTML vinculado o una página de información cada vez.
Astara
Me encantan las páginas de información. Son mucho más como tutoriales que las páginas de manual y, por lo tanto, mucho más fáciles para los principiantes. Prueba info sedy info grepcompara con man sedy man grep. Las páginas de manual son mucho más técnicas y carecen de ejemplos la mayoría de las veces. Hay excepciones a lo que acabo de describir, pero es cierto para la mayoría de los comandos, diría.
Fernando Basso
3
1 - tecnología avanzada pero ligera
Las páginas del manual son planas.
info es un arbol
Ambos permanecen basados en texto , por lo que pueden usarse durante el desarrollo del sistema de bajo nivel (a diferencia de http, que requiere una GUI y un navegador completos antes de poder usarlo).
Esto también es útil porque Linux puede ejecutarse en muchas máquinas de bajos recursos, por ejemplo, las cosas que se ejecutan en mi Arduino de Atmel se encuentran en info.
(Historia: infoes similar a Gopher , si recuerdas eso. Era lo que teníamos justo antes de que todos nos mudáramos a los sistemas operativos GUI, y explotó la red mundial. Recuerdo que Gopher funcionó bastante bien para encontrar información, y fue rápido y simple. Era fácilmente expandible, totalmente basado en texto y rápido).
Las páginas de manual no pueden tener hipervínculos operables. (Simplemente no es posible en esta tecnología).
infopuede y tiene muchos enlaces operables de nodo a nodo, o de nodo a hoja, lo que facilita mucho la navegación rápida de manuales grandes.
2: contiene contenido que no se encuentra en las páginas man
Muchos paquetes estándar también tienen un paquete hermano -doc . A menudo, este contenido se encuentra solo dentro info.
Estos paquetes de documentación agregan folletos dentro de la información, con secciones y subsecciones. En la infojerga, estos se llaman nodesy los nodos pueden contener otros nodesen una estructura de árbol.
Hay comandos para trepar alrededor del árbol, aquí hay algunos ejemplos:
subir una sección, por ejemplo, de la sección 2.1 a la sección 2
siguiente sección (es decir, moverse a lo largo de las puntas de las ramas de una página a otra), por ejemplo, de la Sección 2 a la Sección 2.1 y ( suponiendo que no haya una Sección 2.2 ), adelante a la Sección 3
derecha una sección, por ejemplo, de la Sección 2 directamente a la Sección 3, saltando la sección 2.1
Si estás leyendo y te desplazas línea por línea, visitarás todas las secciones de cada folleto.
Comandos importantes
l - volver atrás - Minúscula 'L', como en l ast. Es como el botón de retroceso en su navegador web. - Regrese al último nodo visto en esta ventana (inicialmente solo tenemos una ventana). ¡Guau, también podemos dividir la ventana del documento por la mitad!
d - mi pueblo - Ir a la 'principal d irectorio' nodo. - Esta es la parte superior del árbol INFO. Contiene enlaces a las familias:
t - mi familia - Vaya al nodo t op de este documento. - Generalmente la tabla de contenidos
u - mi padre - Ir u p de una sola planta. por ejemplo, pasar de la Sección 2.1 a la Sección 2.
n - mis hermanos - Vaya al nodo n ext en este nivel. por ejemplo, sección 2 -> sección 3 (no 2.1)
p - mis hermanos - Ir a la p nodo de la mera existencia en este nivel. por ejemplo, sección 3 -> sección 2
] - my children - Vaya al siguiente nodo en el documento, por ejemplo, sección 2 -> sección 2.1
[ - mis hijos - Vaya al nodo anterior en el documento, por ejemplo, sección 2.1 -> sección 2
Tampoco entendí realmente por qué querría usar la información. Anteriormente había incursionado en ello, y al principio lo encontré de la vieja escuela. Pero debido a que necesitaba más información para un proyecto de autoconf , y me sugirieron que aquí era donde estaba esa documentación, recientemente volví a mirar.
Lo primero que tuve que hacer fue descubrir cómo navegar mejor. La ayuda de H me pareció casi inútil. Eso fue hasta que me di cuenta de que podía desplazarme hacia esta ayuda ... pero luego hubo demasiada confusión.
Así que copié esta ayuda y la pegué en un Gnote, y comencé a tratar de entender cómo infofuncionaba.
A medida que aprendí más, reescribí su ayuda para mí. Quería saber cuál era la gama completa de comandos y cómo estaban categorizados.
Noté que muchas de las pulsaciones de teclas estaban duplicadas, con 2 o 3 formas de ejecutar un comando dado. También noté que todo esto se parecía mucho a emacs.
Aquí está mi hoja de trucos de comandos de información :
HELP - info - commands
#####################################################################################################################################################
Short list - 'basic' Info command keys (see below for full list)
C-g Cancel the current operation.
H Close this help window. (toggle help window)
q Quit Info altogether.
h Invoke the Info tutorial.
Move in this node
Up Move up one line.
Down Move down one line.
PgUp Scroll backward one screenful. - also backspace
PgDn Scroll forward one screenful. - also space
Home Go to the beginning of this node.
End Go to the end of this node.
TAB Skip to the next hypertext link.
/ Search forward for a specified string.
} Search for next occurrence.
{ Search for previous occurrence.
Move to other nodes
RET Follow the hypertext link under the cursor.
1...9 Pick the first...ninth item in this node's menu.
0 Pick the last item in this node's menu.
l Last in history. Go back to the last node seen in this window (initially we only have one window). (?? history)
d Go to the main 'directory' node. my people
the Info main menu - "This is the top of the INFO tree."
t Go to the top node of this document. my family Generally the table of contents
u Go up one level. my parent e.g. go from Section 2.1, to Section 2.
n Go to the next node on this level. my siblings e.g. section 2 -> section 3 (not 2.1)
p Go to the previous node on this level.
] Go to the next node in the document. my children e.g. section 2 -> section 2.1
[ Go to the previous node in the document. (?siblings)
m <name> Pick a menu item specified by name.
f Follow a cross reference specified by name.
g Go to a node specified by name.
i Search for a specified string in the index (if there is an index), and select the node referenced by the first entry found.
I Synthesize menu of matching index entries. ???
#####################################################################################################################################################
Full list - of commands available in Info windows:
Notes:
M- (meta) is Alt; (also you can use an Esc prefix instead of meta -hwj)
M-C- means hold both Ctrl and Alt down at same time
* Basic commands (listed above)
HELP
* H (get-help-window) Toggle display of help message
* h (get-info-help-node) Visit Info node '(info)Help' (this gets: man info )
CANCEL
* C-g C-x C-g M-C-g (abort-key) Cancel current operation (?? esc)
* q C-c (quit) Quit using Info
C-x C-c (quit) Quit using Info
WINDOWS
C-l (redraw-display) Redraw the display
x C-x 0 (delete-window) Delete the current window
C-x 1 (keep-one-window) Delete all other windows (leaving 1)
C-x 2 (split-window) Split the current window (into 2)
C-x t (tile-windows) Divide the available screen space among the visible windows
C-x ^ (grow-window) Grow (or shrink) this window
C-x o (next-window) Select the next window (other)
C-x C-b (list-visited-nodes) Make a window containing a menu of all of the currently visited nodes
C-x w (toggle-wrap) Toggle the state of line wrapping in the current window
VIEW OTHER FILE
C-x C-f (view-file) Read the name of a file and select it
C-x C-v (view-file) Read the name of a file and select it
SCROLL
C-v (scroll-forward-page-only) Scroll forward in this window staying within node ('v' looks like a down arrow)
M-v (scroll-backward-page-only) Scroll backward in this window staying within node (meta-v is the reverse, or up arrow)
* PgDn SPC (scroll-forward) Scroll forward in this window (at end moving to next node??)
* PgUp DEL C-h (scroll-backward) Scroll backward in this window (at end moving to next node??) (DEL = Backspace or Del)
M-C-v ESC PgDn (scroll-other-window) Scroll the other window
ESC PgUp (scroll-other-window-backward) Scroll the other window backward
CURSOR MOVEMENT (within a 'node' / page)
Right C-f ( forward-char) Move forward a character
Left C-b (backward-char) Move backward a character
M-b (backward-word) Move backward a word
M-f ( forward-word) Move forward a word
C-a (beginning-of-line) Move to the start of the line
C-e (end-of-line) Move to the end of the line
* Up C-p (prev-line) Move up to the previous line
* Down C-n (next-line) Move down to the next line
M-r (move-to-window-line) Move the cursor to a specific line of the window
* Home b ESC < (beginning-of-node) Move to the start of this node
* End e ESC > (end-of-node) Move to the end of this node
SEARCHING
/ (search) Read a string and search for it
s (search) Read a string and search for it
? (search-backward) Read a string and search backward for it
R (toggle-regexp) Toggle the usage of regular expressions in searches
S (search-case-sensitively) Read a string and search for it case-sensitively
* } C-x n (search-next) Repeat last search in the same direction
* { C-x N (search-previous) Repeat last search in the reverse direction
C-s (isearch-forward) Search interactively for a string as you type it
C-r (isearch-backward) Search interactively for a string as you type it
M-/ (tree-search) Search this node and subnodes for a string.
M-} (tree-search-next) Go to next match in Info sub-tree
M-{ (tree-search-previous) Go to previous match in Info sub-tree
JUMP TO NODE CROSS REFERENCES (underlined links to nodes)
* TAB (move-to-next-xref) Move to the next cross reference
BackTab M-TAB (move-to-prev-xref) Move to the previous cross reference (Shift-tab)
SELECT A NODE (hyperlink)
* RET (select-reference-this-line) Select reference or menu item appearing on this line
* 1 .. 9 (menu-digit) Select this menu item (link) # in this node's menu (this page's menu)
* 0 (last-menu-item) Select the last menu item (link) in this node's menu (this page's menu)
< (first-node) Select the first node in this file
> (last-node) Select the last node in this file
* d (dir-node) Select the 'dir' node (in all files?) the Info main menu - "This is the top of the INFO tree."
* t (top-node) Select the 'Top' node in this file Generally the table of contents
* u ( up-node) Select the 'Up' node in this file i.e. go from Section 2.1, to Section 2.
* n (next-node) Select the Next node i.e. section 2.1 -> section 2.2
* p (prev-node) Select the Prev node
* g <name> (goto-node) Read a node name and select it
* m <item> (menu-item) Read a menu item and select its node ???
C-x b (select-visited-node) Select a node which has been previously visited in a visible window (c-x=Window, back)
MOVE TO ANOTHER NODE (in the tree)
* [ (global-prev-node) Move backwards or up through node structure (tree within this file)
* ] (global-next-node) Move forwards or down through node structure (tree within this file)
* l (history-node) last - Select the most recently selected node
GET NODE INFORMATION
= (display-file-info) Show full file name of node being displayed
O (goto-invocation-node) Find the node describing program invocation
READ IN NEW MENUS
G <menus> (menu-sequence) Read a list of menus starting from dir and follow them ???
INDEX
* i (index-search) Look up a string in the index for this file (Search for a specified string in the index
(if there is an index), and select the node referenced by the first entry found.
, (next-index-match) Go to the next matching index item from the last 'i' command
* I (virtual-index) List all matches of a string in the index
C-x f (all-files) Show all matching files
FOOTNOTES
* f (xref-item) Read a footnote or cross reference and select its node
r (xref-item) Read a footnote or cross reference and select its node
M-C-f (show-footnotes) Show the footnotes associated with this node in another window
NUMERIC
C-u (universal-argument) Start (or multiply by 4) the current numeric argument
M-- (add-digit-to-numeric-arg) Add this digit to the current numeric argument
M-0 .. M-9 (add-digit-to-numeric-arg) Add this digit to the current numeric argument
MISC
M-x (execute-command) Read a command name in the echo area and execute it ?? pwd and ls don't work
#####################################################################################################################################################
The following text commands can only be invoked via M-x (Alt-x -hwj):
This is a list of longer commands that can be typed, all prefixed with Alt-x:
M-x scroll-forward-set-window Scroll forward in this window and set default window size
M-x scroll-backward-set-window Scroll backward in this window and set default window size
M-x scroll-forward-page-only-set-window Scroll forward in this window staying within node and set default window size
M-x scroll-backward-page-only-set-window Scroll backward in this window staying within node and set default window size
M-x down-line Scroll down by lines
M-x up-line Scroll up by lines
M-x scroll-half-screen-down Scroll down by half screen size
M-x scroll-half-screen-up Scroll up by half screen size
M-x prev-window Select the previous xwindow
M-x set-screen-height <number> Set the height of the displayed window
M-x find-menu Move to the start of this node's menu
M-x visit-menu Visit as many menu items at once as possible
M-x man <name of man page> Read a manpage reference and select it
M-x print-node Pipe the contents of this node through INFO_PRINT_COMMAND
M-x clear-search Clear displayed search matches
M-x describe-key <key combo> Print documentation for KEY (one line of documentation)
M-x where-is Show what to type to execute a given command
M-x describe-command Read the name of an Info command and describe it
M-x index-apropos Grovel all known info file's indices for a string and build a menu (grep widely, and make a menu of what is found)
M-x describe-variable Explain the use of a variable
M-x set-variable Set the value of an Info variable
M-x info-version Display version of Info being run
#####################################################################################################################################################
Commands available in the 'echo' area (i.e. at bottom of screen):
(M- (meta) = Fn (not alt) -hwj)
C-l (redraw-display) Redraw the display
C-g Esc (echo-area-abort) Cancel or quit operation
M-C-g (echo-area-abort) Cancel or quit operation
MOVE
C-a Home (echo-area-beg-of-line) Move to the start of this line
C-e End (echo-area-end-of-line) Move to the end of this line
C-b Left (echo-area-backward) Move backward a character
C-f Right (echo-area-forward) Move forward a character
M-b (echo-area-backward-word) Move backward a word
M-f (echo-area-forward-word) Move forward a word
COMMAND LINE COMPLETIONS
M-? ? (echo-area-possible-completions) List possible completions
M-C-v (echo-area-scroll-completions-window) Scroll the completions window
TAB SPC (echo-area-complete) Insert completion
RET LFD (echo-area-newline) Accept (or force completion of) this line
DELETE/YANK
C-d (echo-area-delete) Delete the character under the cursor
C-h DEL (echo-area-rubout) Delete the character behind the cursor
M-d (echo-area-kill-word) Kill the word following the cursor
M-DEL (echo-area-backward-kill-word) Kill the word preceding the cursor
C-k (echo-area-kill-line) Kill to the end of the line
C-x DEL (echo-area-backward-kill-line) Kill to the beginning of the line
C-y (echo-area-yank) Yank back the contents of the last kill
M-y (echo-area-yank-pop) Yank back a previous kill
INSERT
C-q (echo-area-quoted-insert) Insert next character verbatim
M-TAB (echo-area-tab-insert) Insert a TAB character
TRANSPOSE
C-t (echo-area-transpose-chars) Transpose characters at point (and move ahead by one)
NUMERIC ARGUMENTS ???
C-u (universal-argument) Start (or multiply by 4) the current numeric argument
M-- (add-digit-to-numeric-arg) Add this digit to the current numeric argument
M-0 .. M-9 (add-digit-to-numeric-arg) Add this digit to the current numeric argument
C-x o (next-window) Select the next window
info --vi-keys
para hacer que las combinaciones de teclas de información se sientan más familiares. También se puede utilizarless
con la información para que se sienta comoman
:info --subnodes -o - $1 | less
. Sin embargo, se pierde algo de formato de texto de esta manera.Respuestas:
GNU Info fue diseñado para ofrecer documentación que fuera completa, con hipervínculos y que fuera posible generar en múltiples formatos.
Las páginas de manual estaban disponibles, y fueron excelentes para proporcionar salida impresa. Sin embargo, fueron diseñados de tal manera que cada página de manual tenía un conjunto de contenido razonablemente pequeño. Una página de manual podría tener una discusión sobre una única función de C, como printf (3), o describiría el comando ls (1).
Eso se rompe cuando entras en sistemas más grandes. ¿Cómo encajaría la documentación de Emacs en las páginas man? Un ejemplo del problema es la página de manual de Perl, que enumera 174 páginas de manual separadas que puede leer para obtener información. ¿Cómo navega a través de eso o realiza una búsqueda para averiguar qué significa &&?
Como una mejora sobre las páginas de manual, Info nos dio:
¿Sigue siendo relevante? Hoy en día, la mayoría de las personas diría "Esta documentación no pertenece a una página de manual" y la pondrían en un PDF o en HTML. De hecho, los sistemas de ayuda en varios sistemas operativos se basan en HTML. Sin embargo, cuando se creó GNU Info (1986), HTML aún no existía. Hoy en día, texinfo le permite crear PDF, información u otros formatos, para que pueda usar esos formatos si lo desea.
Es por eso que se inventó GNU Info.
fuente
man -K foo
, con la opción en mayúsculas, realiza una búsqueda global de texto completo. Pruebaman -K global-apropos
: encuentra las páginas porman
sí mismo, en inglés y en el idioma local.La razón por la que se inventó el sistema de información es la necesidad, pero supongo que "pereza, arrogancia e impaciencia" es una explicación igualmente buena.
El objetivo del proyecto GNU era desarrollar un sistema operativo y herramientas libremente modificables y libremente distribuibles. El sistema tradicional de Unix man se basaba en el sistema de formateo de documentos nroff / troff de Bell Labs, que en ese momento era un software comercial (no libre). Finalmente, ese sistema fue diseñado por ingeniería inversa y se creó un reemplazo gratuito llamado groff, pero eso fue varios años después de que comenzara el proyecto GNU. Por lo tanto, usar el sistema man para la documentación de GNU antes habría requerido implementar un reemplazo troff, una gran empresa.
Mientras tanto, GNU Emacs fue el primer gran proyecto de GNU y requirió una extensa documentación. Frente a una montaña de trabajo que implementa el sistema GNU, Richard Stallman buscó el software existente que podría usar en su sistema. TeX ya existía y tenía poderosas capacidades de formateo de documentos. A diferencia de nroff / troff, TeX era libre de usar y redistribuir. Texinfo fue creado como un sistema de documentación para aprovechar el poder de TeX para manuales impresos y GNU Emacs para procesamiento y lectura de documentación en línea. El procesador Texinfo original y el navegador de documentos Info fueron escritos en Lisp y se ejecutaron dentro de Emacs. Las utilidades independientes de Texinfo llegaron varios años después.
fuente
Como dice la página de Wikipedia , Richard Stallman diseñó TeXinfo como la documentación oficial del proyecto GNU. Es un conjunto de macros sobre TeX, y fue diseñado para escribir manuales de software. Creo que Stallman consideró que las páginas de manual eran inadecuadas para la tarea. Dos ventajas que tiene Texinfo sobre las páginas de manual es que está hipervinculado, y en segundo lugar, que es, por diseño, fácil de convertir a otros formatos.
APÉNDICE: Si bien no es estrictamente relevante para la pregunta, tenga en cuenta que las páginas de manual todavía se consideran el sistema de documentación estándar en sistemas gratuitos tipo Unix como los que se ejecutan sobre el núcleo de Linux y también los diversos sabores de BSD. Por ejemplo, las plantillas de paquetes de Debian fomentan la adición de una página de manual para cualquier comando, y también lintian comprueba una página de manual. Texinfo todavía no se usa ampliamente fuera del proyecto GNU.
fuente
man
formato orientado a la copia impresa (entonces más que ahora) .Desde un punto de vista práctico ,
info
es el más detallado de los tres niveles de documentación de referencia:Los tres niveles suelen aumentar en detalle:
--help
como una opción de comando común: un breve resumen de uso ,man
las páginas de manual clásicas, una referencia rápida yinfo
un manual más detallado específico de GNU , la documentación oficial completa .Si una
info
página no está disponible, la página de manual generalmente contiene la documentación completa.Tenga en cuenta que la página del manual contiene exactamente la misma información que la
--help
salida para muchos comandos de los núcleos de GNU, por ejemplols
;Compare
ls --help
yman ls
vea que la diferencia solo está en el formateo.El visor de información predeterminado es
info
.Hay alternativas más cómodas , como para la terminal
pinfo
, o para la GUIkonqueror
:pinfo ls
konqueror info:ls
fuente
help
como un comando para los comandos bash incorporados,apropos
ywhatis
como hombre con opciones para su uso práctico.info sed
yinfo grep
compara conman sed
yman grep
. Las páginas de manual son mucho más técnicas y carecen de ejemplos la mayoría de las veces. Hay excepciones a lo que acabo de describir, pero es cierto para la mayoría de los comandos, diría.1 - tecnología avanzada pero ligera
Las páginas del manual son planas.
info
es un arbolAmbos permanecen basados en texto , por lo que pueden usarse durante el desarrollo del sistema de bajo nivel (a diferencia de http, que requiere una GUI y un navegador completos antes de poder usarlo).
Esto también es útil porque Linux puede ejecutarse en muchas máquinas de bajos recursos, por ejemplo, las cosas que se ejecutan en mi Arduino de Atmel se encuentran en
info
.(Historia:
info
es similar a Gopher , si recuerdas eso. Era lo que teníamos justo antes de que todos nos mudáramos a los sistemas operativos GUI, y explotó la red mundial. Recuerdo que Gopher funcionó bastante bien para encontrar información, y fue rápido y simple. Era fácilmente expandible, totalmente basado en texto y rápido).Las páginas de manual no pueden tener hipervínculos operables. (Simplemente no es posible en esta tecnología).
info
puede y tiene muchos enlaces operables de nodo a nodo, o de nodo a hoja, lo que facilita mucho la navegación rápida de manuales grandes.2: contiene contenido que no se encuentra en las páginas man
Muchos paquetes estándar también tienen un paquete hermano -doc . A menudo, este contenido se encuentra solo dentro
info
.Estos paquetes de documentación agregan folletos dentro de la información, con secciones y subsecciones. En la
info
jerga, estos se llamannodes
y los nodos pueden contener otrosnodes
en una estructura de árbol.Hay comandos para trepar alrededor del árbol, aquí hay algunos ejemplos:
Si estás leyendo y te desplazas línea por línea, visitarás todas las secciones de cada folleto.
Comandos importantes
l - volver atrás - Minúscula 'L', como en l ast. Es como el botón de retroceso en su navegador web. - Regrese al último nodo visto en esta ventana (inicialmente solo tenemos una ventana). ¡Guau, también podemos dividir la ventana del documento por la mitad!
d - mi pueblo - Ir a la 'principal d irectorio' nodo. - Esta es la parte superior del árbol INFO. Contiene enlaces a las familias:
t - mi familia - Vaya al nodo t op de este documento. - Generalmente la tabla de contenidos
u - mi padre - Ir u p de una sola planta. por ejemplo, pasar de la Sección 2.1 a la Sección 2.
n - mis hermanos - Vaya al nodo n ext en este nivel. por ejemplo, sección 2 -> sección 3 (no 2.1)
p - mis hermanos - Ir a la p nodo de la mera existencia en este nivel. por ejemplo, sección 3 -> sección 2
] - my children - Vaya al siguiente nodo en el documento, por ejemplo, sección 2 -> sección 2.1
[ - mis hijos - Vaya al nodo anterior en el documento, por ejemplo, sección 2.1 -> sección 2
Tampoco entendí realmente por qué querría usar la información. Anteriormente había incursionado en ello, y al principio lo encontré de la vieja escuela. Pero debido a que necesitaba más información para un proyecto de autoconf , y me sugirieron que aquí era donde estaba esa documentación, recientemente volví a mirar.
Lo primero que tuve que hacer fue descubrir cómo navegar mejor. La ayuda de H me pareció casi inútil. Eso fue hasta que me di cuenta de que podía desplazarme hacia esta ayuda ... pero luego hubo demasiada confusión.
Así que copié esta ayuda y la pegué en un Gnote, y comencé a tratar de entender cómo
info
funcionaba.A medida que aprendí más, reescribí su ayuda para mí. Quería saber cuál era la gama completa de comandos y cómo estaban categorizados.
Noté que muchas de las pulsaciones de teclas estaban duplicadas, con 2 o 3 formas de ejecutar un comando dado. También noté que todo esto se parecía mucho a emacs.
Aquí está mi hoja de trucos de comandos de información :
fuente