Я понимаю, что такое GNU Info и как его использовать, но для чего он нужен ? Почему он существует параллельно с man-страницами? Почему бы не написать подробные справочные страницы, а не предоставить отдельную утилиту?
Файл texinfo может сделать намного больше макросов groff.
Иордания
15
У него есть одно преимущество перед страницами руководства: «гиперссылки». Остальные - это недостатки, начиная с синдрома «Не изобретено здесь», забавных привязок клавиш, хлопот по обслуживанию каталогов и многих других.
Дженс
4
Используйте, info --vi-keysчтобы информация о клавишах стала более знакомой. Вы можете также использовать lessс информацией , чтобы сделать его чувствовать себя так же , как man: info --subnodes -o - $1 | less. Вы теряете некоторое форматирование текста таким образом.
1
Кроме того, укажите ваш браузер на gnu.org/manual . (Использование Vimperator / Vrome необязательно.)
nwk
Ответы:
63
GNU Info была разработана, чтобы предлагать исчерпывающую документацию с гиперссылками и возможность вывода в нескольких форматах.
Были доступны справочные страницы, и они отлично справлялись с печатной продукцией. Тем не менее, они были разработаны таким образом, чтобы каждая страница справочника имела достаточно небольшой набор контента. Страница man может обсуждать одну функцию C, такую как printf (3), или описывать команду ls (1).
Это ломается, когда вы попадаете в более крупные системы. Как бы вы поместили документацию по Emacs на страницы руководства? Примером проблемы является справочная страница Perl, которая содержит 174 отдельных справочных страниц, которые вы можете прочитать, чтобы получить информацию. Как вы просматриваете это или делаете поиск, чтобы выяснить, что означает &&?
В качестве улучшения по сравнению с man-страницами Info дала нам:
Возможность иметь единый документ для большой системы, который содержит всю информацию об этой системе. (против 174 страниц руководства)
Возможность выполнять полнотекстовый поиск по всему документу (v. Man -k, который проверяет только ключевые слова)
Гиперссылки на разные части одного и того же или разных документов (v. Раздел «См. Также», который был превращен в гиперссылки некоторыми, но не всеми, пользователями man-страниц)
Индекс для документа, который можно просмотреть, или вы можете нажать «i» и ввести термин, и он будет искать в индексе и доставит вас в нужное место (v. Nothing)
Линейный просмотр документов по концепциям, позволяющий вам читать предыдущие и следующие разделы, если вы хотите, либо с помощью мыши или нажатия клавиши (v. Nothing).
Это все еще актуально? В настоящее время большинство людей говорят: «Эта документация не принадлежит man-странице» и помещают ее в PDF-файл или помещают в HTML. На самом деле, справочные системы в нескольких ОС основаны на HTML. Однако, когда GNU Info была создана (1986), HTML еще не существовало. В настоящее время texinfo позволяет создавать PDF, Info или другие форматы, поэтому вы можете использовать эти форматы, если хотите.
man -K foo, с прописной буквы, выполняет глобальный полнотекстовый поиск. Попробуйте man -K global-apropos- он находит страницы для manсебя, на английском и на местном языке.
Фолькер Сигел
1
Как вы узнаете, что означает & &&? ... вы смотрите в индексе: "man perl", откуда вы видите Обзор, Учебники, Справочное руководство, Внутренние компоненты, Разное (книги, источники сообщества, лицензия, журналы изменений). (~ 40), документы по языку + платформе. Из них, для '&&', я смотрю в справочном разделе и вижу синтаксис, данные и операторы, так как первые 3 раздела похожи на большинство справочников по языку. && выглядит как операционная, так что я смотрю на man-странице perlop, а на втором экране перечислены все операторы. Сравните это с выяснением ключей для аргумента --vi-mode к 'info' ... удачи.
Astara
41
Причиной, по которой была изобретена информационная система, является необходимость, но я думаю, что «лень, гордыня и нетерпение» - не менее хорошее объяснение.
Целью проекта GNU была разработка свободно модифицируемой и свободно распространяемой операционной системы и инструментов. Традиционная система Unix man была основана на системе форматирования документов nroff / troff от Bell Labs, которая в то время была коммерческим (несвободным) программным обеспечением. В конце концов, эта система была подвергнута обратной разработке и была создана бесплатная замена, называемая groff, но это было через несколько лет после начала проекта GNU. Таким образом, использование системы man для документации GNU до этого потребовало бы внедрения замены troff, а это огромная задача.
Между тем GNU Emacs был первым крупным проектом GNU и требовал обширной документации. Перед лицом огромной работы по внедрению системы GNU Ричард Столлман начал поиск существующего программного обеспечения, которое он мог бы использовать в своей системе. TeX уже существовал и имел мощные возможности форматирования документов. В отличие от nroff / troff, TeX можно было свободно использовать и распространять. Texinfo была создана как система документации, чтобы использовать возможности TeX для печатных руководств и GNU Emacs для обработки и чтения документации в режиме онлайн. Оригинальный процессор Texinfo и браузер документов Info были написаны на Лиспе и работали внутри Emacs. Автономные утилиты Texinfo появились несколько лет спустя.
Как говорится на странице Википедии , TeXinfo был разработан как официальная документация проекта GNU Ричардом Столлманом. Это набор макросов поверх TeX, разработанный для написания руководств по программному обеспечению. Я думаю, что Столлман считал справочные страницы не подходящими для этой задачи. По сравнению с man-страницами, Texinfo имеет два преимущества: он имеет гиперссылку, и, во-вторых, его легко конвертировать в другие форматы.
ДОБАВЛЕНИЕ: Хотя это и не относится к данному вопросу строго, обратите внимание, что справочные страницы по-прежнему считаются стандартной системой документации в бесплатных Unix-подобных системах, таких как системы, работающие на ядре Linux, а также в различных вариантах BSD. Например, шаблоны пакетов Debian поощряют добавление man-страницы для любых команд, а также проверку lintian для man-страницы. Texinfo до сих пор широко не используется вне проекта GNU.
+1 специально для заметки о гипертексте, которая, я думаю, была основной причиной, по которой я хотел отказаться от (тогда более чем сейчас) manформата, ориентированного на печатную копию .
tripleee
@ChristopherSchultz отредактировано
Фахим Митха
Я привык к книгам для справочных материалов. Я могу читать их от корки до корки. Если руководства и книги не подходят для написания документации, компьютеры и языки никогда бы не преподавались и не изучались. В обучении большинство следуют прогрессу от низкого -> высокого уровня знаний с более сложными темами, основанными на более простых. Книги - это почти то, чему каждый ребенок учится - последовательно представленная информация. H-ссылки предназначены для того, чтобы сосредоточиться на случайных темах, представляющих интерес: если вы эксперт и владелец темы - вы знаете, чего хотите, и ссылки могут быстро доставить вас туда. Для справки и обучения ссылки плохо подходят.
Астара
7
С практической точки зрения, infoявляется наиболее подробным из трех уровней в справочной документации:
Три уровня обычно увеличиваются в деталях:
--helpв качестве общей опции команды - краткая сводка об использовании , man- классические справочные страницы, краткий справочник и info- более подробное руководство по GNU - полная официальная документация .
Если infoстраница недоступна, справочная страница обычно содержит полную документацию.
Обратите внимание, что страница man содержит точно такую же информацию, как --helpвыходные данные для многих команд из GNU coreutils - например ls;
Сравните ls --helpи man lsувидите, что разница только в форматировании.
По умолчанию для просмотра информации info.
Есть более удобные альтернативы , как для терминала pinfo, для GUI konqueror:
@mikeserv Я не нашел функцию ответа на дополнительный ответ. ;)
Фолькер Зигель
хм ... очень интересно, за исключением того, что вы забыли упомянуть helpкак команду для встроенных команд bash, так aproposи whatisкак man с параметрами для практического использования.
Гиперссылка не является руководством или книгой. Вики? возможно, но в автономном мире руководства никогда не идут с гиперссылками. Они приходят со ссылками (см. Главу 38), но им нехорошо учиться. Недавно прочитав новую книгу по C ++, я могу согласиться, что она использует прямые и обратные ссылки, если вам нужна дополнительная информация по теме, которая будет рассмотрена позже. После того, как вы прочитаете книгу, эти ссылки могут оказать большую помощь в поиске вещей. Но для кого-то новичка в сложной программе? Я предпочитаю книгу, а не HTML-страницу или информационную страницу каждый раз.
Астара
Я люблю информационные страницы. Они намного больше похожи на учебные пособия, чем справочные страницы, и поэтому намного проще для начинающих. Попробуйте info sedи info grepсравните с man sedи man grep. Страницы руководства гораздо более технические и в большинстве случаев не содержат примеров. Есть исключения из того, что я только что описал, но я бы сказал, что это справедливо для большинства команд.
Фернандо Бассо
3
1 - передовая, но легкая технология
Страницы руководства плоские.
info это дерево.
Оба остаются текстовыми , поэтому их можно использовать при низкоуровневой разработке системы (в отличие от http, который требует полноценного графического интерфейса и браузера, прежде чем вы сможете его использовать).
Это также полезно, потому что linux может работать на многих компьютерах с ограниченными ресурсами, например, материал, который работает на моем Arduino от Atmel info.
(История: infoпохожа на gopher , если вы помните это. Это было то, что у нас было до того, как мы все перешли на GUI OS, и всемирная паутина взорвалась. Я помню, что gopher работал довольно хорошо для поиска информации, и это было быстро и просто. Он легко расширяемый, полностью текстовый и быстрый.)
Страницы руководства не могут иметь действующие гиперссылки. (Это просто невозможно в этой технологии.)
infoможет иметь и имеет много действующих ссылок от узла к узлу или от узла к листу, что значительно упрощает навигацию по большим руководствам.
2 - содержит контент, не найденный в справочных страницах
Многие стандартные пакеты также имеют пакет -doc . Зачастую этот контент встречается только внутри info.
Эти пакеты документации добавляют буклеты внутри информации, с разделами и подразделами. В infoжаргоне они называются nodes, и узлы могут содержать другие nodesв древовидной структуре.
Есть команды для лазания по дереву, вот несколько примеров:
вверх раздел, например, из раздела 2.1 в раздел 2
следующий раздел (т. е. переходить по подсказкам веток от страницы к странице), например, из раздела 2, в раздел 2.1, и ( при условии отсутствия раздела 2.2 ) далее в раздел 3
Право раздел, например, из раздела 2 непосредственно в раздел 3, пропуская раздел 2.1
Если вы читаете и прокручиваете строку за строкой, то вы посетите все разделы каждого буклета.
Важные команды
l - вернуться назад - нижний регистр 'L', как в l ast. Это как кнопка возврата в вашем веб-браузере. - Вернитесь к последнему узлу, увиденному в этом окне (изначально у нас есть только одно окно). Ого, мы тоже можем разделить окно документа пополам!
d - мои люди - перейти к главному узлу ' d irectory'. - Это вершина дерева информации. Содержит ссылки на семьи:
t - моя семья. Перейдите в узел t op этого документа. - обычно оглавление
у - мой родитель - Go ˙U P один уровень. например, перейдите из раздела 2.1 в раздел 2.
n - мои братья и сестры - перейдите к узлу n ext на этом уровне. например, раздел 2 -> раздел 3 (не 2.1)
р - мои братья и сестры - Перейти к р узла revious на этом уровне. например, раздел 3 -> раздел 2
] - мои дети - перейти к следующему узлу в документе, например, раздел 2 -> раздел 2.1
[ - мои дети - перейти к предыдущему узлу в документе, например, раздел 2.1 -> раздел 2
Я также не очень понял, почему я хотел бы использовать информацию. Я раньше баловался этим, и сначала нашел это старой школой. Но так как мне нужна была дополнительная информация для проекта autoconf , и мне было предложено, что именно там находится эта документация, я недавно взглянул на нее еще раз.
Первое, что я должен был сделать, это выяснить, как лучше ориентироваться. Я нашел помощь, оказанную Н, почти бесполезной. Это было до тех пор, пока я не заметил, что могу прокрутить эту справку, но тогда было слишком много путаницы.
Поэтому я скопировал эту справку и соединил ее в Gnote, и начал пытаться понять, как это infoработает.
Когда я узнал больше, я переписал их помощь для себя. Я хотел знать, что это за полный набор команд, и как они были распределены по категориям.
Я заметил, что многие нажатия клавиш были продублированы с помощью 2 или 3 способов выполнения данной команды. Я также заметил, что все это очень похоже на emacs.
Вот моя шпаргалка информационных команд:
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
чтобы информация о клавишах стала более знакомой. Вы можете также использоватьless
с информацией , чтобы сделать его чувствовать себя так же , какman
:info --subnodes -o - $1 | less
. Вы теряете некоторое форматирование текста таким образом.Ответы:
GNU Info была разработана, чтобы предлагать исчерпывающую документацию с гиперссылками и возможность вывода в нескольких форматах.
Были доступны справочные страницы, и они отлично справлялись с печатной продукцией. Тем не менее, они были разработаны таким образом, чтобы каждая страница справочника имела достаточно небольшой набор контента. Страница man может обсуждать одну функцию C, такую как printf (3), или описывать команду ls (1).
Это ломается, когда вы попадаете в более крупные системы. Как бы вы поместили документацию по Emacs на страницы руководства? Примером проблемы является справочная страница Perl, которая содержит 174 отдельных справочных страниц, которые вы можете прочитать, чтобы получить информацию. Как вы просматриваете это или делаете поиск, чтобы выяснить, что означает &&?
В качестве улучшения по сравнению с man-страницами Info дала нам:
Это все еще актуально? В настоящее время большинство людей говорят: «Эта документация не принадлежит man-странице» и помещают ее в PDF-файл или помещают в HTML. На самом деле, справочные системы в нескольких ОС основаны на HTML. Однако, когда GNU Info была создана (1986), HTML еще не существовало. В настоящее время texinfo позволяет создавать PDF, Info или другие форматы, поэтому вы можете использовать эти форматы, если хотите.
Вот почему GNU Info была изобретена.
источник
man -K foo
, с прописной буквы, выполняет глобальный полнотекстовый поиск. Попробуйтеman -K global-apropos
- он находит страницы дляman
себя, на английском и на местном языке.Причиной, по которой была изобретена информационная система, является необходимость, но я думаю, что «лень, гордыня и нетерпение» - не менее хорошее объяснение.
Целью проекта GNU была разработка свободно модифицируемой и свободно распространяемой операционной системы и инструментов. Традиционная система Unix man была основана на системе форматирования документов nroff / troff от Bell Labs, которая в то время была коммерческим (несвободным) программным обеспечением. В конце концов, эта система была подвергнута обратной разработке и была создана бесплатная замена, называемая groff, но это было через несколько лет после начала проекта GNU. Таким образом, использование системы man для документации GNU до этого потребовало бы внедрения замены troff, а это огромная задача.
Между тем GNU Emacs был первым крупным проектом GNU и требовал обширной документации. Перед лицом огромной работы по внедрению системы GNU Ричард Столлман начал поиск существующего программного обеспечения, которое он мог бы использовать в своей системе. TeX уже существовал и имел мощные возможности форматирования документов. В отличие от nroff / troff, TeX можно было свободно использовать и распространять. Texinfo была создана как система документации, чтобы использовать возможности TeX для печатных руководств и GNU Emacs для обработки и чтения документации в режиме онлайн. Оригинальный процессор Texinfo и браузер документов Info были написаны на Лиспе и работали внутри Emacs. Автономные утилиты Texinfo появились несколько лет спустя.
источник
Как говорится на странице Википедии , TeXinfo был разработан как официальная документация проекта GNU Ричардом Столлманом. Это набор макросов поверх TeX, разработанный для написания руководств по программному обеспечению. Я думаю, что Столлман считал справочные страницы не подходящими для этой задачи. По сравнению с man-страницами, Texinfo имеет два преимущества: он имеет гиперссылку, и, во-вторых, его легко конвертировать в другие форматы.
ДОБАВЛЕНИЕ: Хотя это и не относится к данному вопросу строго, обратите внимание, что справочные страницы по-прежнему считаются стандартной системой документации в бесплатных Unix-подобных системах, таких как системы, работающие на ядре Linux, а также в различных вариантах BSD. Например, шаблоны пакетов Debian поощряют добавление man-страницы для любых команд, а также проверку lintian для man-страницы. Texinfo до сих пор широко не используется вне проекта GNU.
источник
man
формата, ориентированного на печатную копию .С практической точки зрения,
info
является наиболее подробным из трех уровней в справочной документации:Три уровня обычно увеличиваются в деталях:
--help
в качестве общей опции команды - краткая сводка об использовании ,man
- классические справочные страницы, краткий справочник иinfo
- более подробное руководство по GNU - полная официальная документация .Если
info
страница недоступна, справочная страница обычно содержит полную документацию.Обратите внимание, что страница man содержит точно такую же информацию, как
--help
выходные данные для многих команд из GNU coreutils - напримерls
;Сравните
ls --help
иman ls
увидите, что разница только в форматировании.По умолчанию для просмотра информации
info
.Есть более удобные альтернативы , как для терминала
pinfo
, для GUIkonqueror
:pinfo ls
konqueror info:ls
источник
help
как команду для встроенных команд bash, такapropos
иwhatis
как man с параметрами для практического использования.info sed
иinfo grep
сравните сman sed
иman grep
. Страницы руководства гораздо более технические и в большинстве случаев не содержат примеров. Есть исключения из того, что я только что описал, но я бы сказал, что это справедливо для большинства команд.1 - передовая, но легкая технология
Страницы руководства плоские.
info
это дерево.Оба остаются текстовыми , поэтому их можно использовать при низкоуровневой разработке системы (в отличие от http, который требует полноценного графического интерфейса и браузера, прежде чем вы сможете его использовать).
Это также полезно, потому что linux может работать на многих компьютерах с ограниченными ресурсами, например, материал, который работает на моем Arduino от Atmel
info
.(История:
info
похожа на gopher , если вы помните это. Это было то, что у нас было до того, как мы все перешли на GUI OS, и всемирная паутина взорвалась. Я помню, что gopher работал довольно хорошо для поиска информации, и это было быстро и просто. Он легко расширяемый, полностью текстовый и быстрый.)Страницы руководства не могут иметь действующие гиперссылки. (Это просто невозможно в этой технологии.)
info
может иметь и имеет много действующих ссылок от узла к узлу или от узла к листу, что значительно упрощает навигацию по большим руководствам.2 - содержит контент, не найденный в справочных страницах
Многие стандартные пакеты также имеют пакет -doc . Зачастую этот контент встречается только внутри
info
.Эти пакеты документации добавляют буклеты внутри информации, с разделами и подразделами. В
info
жаргоне они называютсяnodes
, и узлы могут содержать другиеnodes
в древовидной структуре.Есть команды для лазания по дереву, вот несколько примеров:
Если вы читаете и прокручиваете строку за строкой, то вы посетите все разделы каждого буклета.
Важные команды
l - вернуться назад - нижний регистр 'L', как в l ast. Это как кнопка возврата в вашем веб-браузере. - Вернитесь к последнему узлу, увиденному в этом окне (изначально у нас есть только одно окно). Ого, мы тоже можем разделить окно документа пополам!
d - мои люди - перейти к главному узлу ' d irectory'. - Это вершина дерева информации. Содержит ссылки на семьи:
t - моя семья. Перейдите в узел t op этого документа. - обычно оглавление
у - мой родитель - Go ˙U P один уровень. например, перейдите из раздела 2.1 в раздел 2.
n - мои братья и сестры - перейдите к узлу n ext на этом уровне. например, раздел 2 -> раздел 3 (не 2.1)
р - мои братья и сестры - Перейти к р узла revious на этом уровне. например, раздел 3 -> раздел 2
] - мои дети - перейти к следующему узлу в документе, например, раздел 2 -> раздел 2.1
[ - мои дети - перейти к предыдущему узлу в документе, например, раздел 2.1 -> раздел 2
Я также не очень понял, почему я хотел бы использовать информацию. Я раньше баловался этим, и сначала нашел это старой школой. Но так как мне нужна была дополнительная информация для проекта autoconf , и мне было предложено, что именно там находится эта документация, я недавно взглянул на нее еще раз.
Первое, что я должен был сделать, это выяснить, как лучше ориентироваться. Я нашел помощь, оказанную Н, почти бесполезной. Это было до тех пор, пока я не заметил, что могу прокрутить эту справку, но тогда было слишком много путаницы.
Поэтому я скопировал эту справку и соединил ее в Gnote, и начал пытаться понять, как это
info
работает.Когда я узнал больше, я переписал их помощь для себя. Я хотел знать, что это за полный набор команд, и как они были распределены по категориям.
Я заметил, что многие нажатия клавиш были продублированы с помощью 2 или 3 способов выполнения данной команды. Я также заметил, что все это очень похоже на emacs.
Вот моя шпаргалка информационных команд:
источник