Для чего Информация о GNU?

Из усовершенствованного руководства по программированию Bash:

"В целом, внешняя команда в сценарии ветвления от подпроцесса, тогда как встроенный Bash не делает. Поэтому builtins выполняются более быстро и используют меньше системных ресурсов, чем их внешние эквиваленты команды".

И немного далее вниз:

"Список команд, встроенный между круглыми скобками, работает как подоболочка".

Примеры:

[root@talara test]# echo $BASHPID
10792
[root@talara test]# (echo $BASHPID)
4087
[root@talara test]# (echo $BASHPID)
4088
[root@talara test]# (echo $BASHPID)
4089

Пример с помощью кода операции в секунду (с более короткими снами, потому что я нетерпелив):

echo $BASHPID

sleep 2
(
    echo $BASHPID
    sleep 2
    echo $BASHPID
)

Вывод:

[root@talara test]# bash sub_bash
6606
6608
6608

64
29.05.2013, 20:06
5 ответов

Информация о GNU была разработана для предложения документации, которая была подробной, связана гиперссылками, и возможен произвести к нескольким форматам.

Страницы справочника были доступны, и они были сильны в обеспечении печатного вывода. Однако они были разработаны таким образом, что каждая страница справочника имела довольно маленький набор содержания. Страница справочника могла бы иметь обсуждение единственной функции C, такой как printf (3) или опишет ls (1) команда.

Это ломается при вхождении в большие системы. Как Вы соответствовали бы документации для Emacs в страницы справочника? Примером проблемы является страница справочника Perl, которая перечисляет 174 отдельных страницы справочника, которые можно прочитать для получения информации. Как Вы просматриваете это или делаете поиск для обнаружения то, что означает &&?

Как улучшение по сравнению со страницами справочника, Информация дала нам:

  1. Способность иметь единый документ для большой системы, которая содержит всю информацию о той системе. (по сравнению с 174 страницами справочника)
  2. Способность сделать полнотекстовый поиск через весь документ (v. людей-k, который только проверяет ключевые слова),
  3. Гиперссылки к различным частям тех же или различных документов (против раздела See Also, который был превращен в гиперссылки некоторыми, но не всеми, средствами просмотра страницы справочника),
  4. Индекс для документа, который мог быть просмотрен или Вы могли поразить "i" и тип в термине, и он будет искать индекс и брать Вас к правильному месту (против Ничего)
  5. Линейный просмотр документа через понятия, позволяя Вам считал предыдущие и следующие разделы, если Вы хотите, или мышью или нажатием клавиши (против Ничего).

Это все еще релевантно? В наше время большинство людей сказало бы, что "Эта документация не принадлежит страницы справочника" и поместила бы ее в PDF или поднимет ее в HTML. На самом деле системы справочной информации на нескольких Ose основаны на HTML. Однако, когда Информация о GNU была создана (1986), HTML еще не существовал. В наше время texinfo позволяет Вам создавать PDF, Информацию или другие форматы, таким образом, можно использовать те форматы, если Вы хотите.

Вот почему Информация о GNU была изобретена.

66
27.01.2020, 19:32
  • 1
    man -K foo, с прописной опцией, делает глобальный полнотекстовый поиск. Попробовать man -K global-apropos - это находит страницы для man самостоятельно, на английском языке, и на местном языке. –  Volker Siegel 25.07.2014, 19:43

Причиной Информационная система была изобретена, является необходимость, но я предполагаю "лень, гордость и нетерпение" являются одинаково хорошим объяснением.

Точка проекта GNU должна была разработать свободно модифицируемый и свободно distributible операционная система и инструменты. Традиционная система человека Unix была основана на nroff/troff документе, форматирующем систему от Bell Labs, которая была в то время коммерческое (небесплатное) программное обеспечение. В конечном счете та система была перепроектирована, и свободная замена, названная groff, была создана, но это было спустя несколько лет после запущенного проекта GNU. Так использование системы человека для документации GNU к тому времени потребовало бы реализации troff замены, огромного обязательства.

Между тем GNU, Emacs был первым большим проектом GNU и он потребовал обширной документации. Сталкиваясь с горой работы, реализовывая систему GNU, Richard Stallman искал существующее программное обеспечение, которое он мог использовать в своей системе. TEX уже существовал и имел мощный документ, форматирующий возможности. В отличие от nroff/troff, TEX был свободен использовать и перераспределить. Texinfo был создан как система документации для усиления питания TEX для печатных руководств и GNU Emacs для чтения онлайн-документации и обработки. Исходный процессор Texinfo и Информационный браузер документа были и записаны в Lisp и работали в Emacs. Автономные утилиты Texinfo прибыли несколько лет спустя.

42
27.01.2020, 19:32

Как страница Wikipedia говорит, TeXinfo был разработан как официальная документация проекта GNU Richard Stallman. Это - ряд макросов сверху TEX и было разработано для записи руководств программного обеспечения. Я думаю Stallman, которого рассматривают страницами справочника, несоответствующими для задачи. Два преимущества, которые Texinfo имеет по страницам справочника, состоят в том, что он связывается гиперссылками, и во-вторых, что это дизайном, легким преобразовать в другие форматы.

ПРИЛОЖЕНИЕ: В то время как не строго относящийся к вопросу, обратите внимание, что страницы справочника все еще считают стандартной системой документации в свободных подобных Unix системах как те, которые работают на ядре Linux и также различных разновидностях BSD. Например, шаблоны пакета Debian поощряют добавление страницы справочника для любых команд, и также lintian проверки на страницу справочника. Texinfo широко все еще не используется вне проекта GNU.

21
27.01.2020, 19:32
  • 1
    +1 специально для примечания о гипертексте, который я думаю, был основной причиной хотеть переехать от (затем больше, чем теперь) ориентированный на бумажную копию man формат. –  tripleee 29.05.2013, 19:49
  • 2
    Большое спасибо Celada :) Это действительно помогло бы изложить доводы с ними. отредактированный –  Faheem Mitha 07.02.2015, 07:16

С практической точки зрения , информация является наиболее подробным из трех уровней справочной документации:

​​Три уровня обычно увеличиваются в деталях:

- справка как общий параметр команды - краткое использование сводка ,
man - классические справочные страницы, краткий справочник и
информация - более подробное, специфичное для GNU руководство - полная официальная документация .

Если страница info недоступна, страница руководства обычно содержит полную документацию.

Обратите внимание, что справочная страница содержит ту же информацию, что и вывод - help для многих команд GNU coreutils, например ls ;

Compare ls --help и man ls , чтобы увидеть, что разница только в форматировании.


Средство просмотра информации по умолчанию - info.
Есть более удобные альтернативы , например, для терминала pinfo или для графического интерфейса konqueror:

pinfo ls

информация о konqueror: ls

7
27.01.2020, 19:32

( См. шпаргалку по командам ниже)

1 -продвинутая, но облегченная технология

Справочные страницы являются плоскими.

info— дерево.

Оба остаются текстовыми , поэтому их можно использовать при низкоуровневой разработке системы, (в отличие от http, для использования которого требуется полноценный графический интерфейс и браузер.)

Это также полезно, потому что linux может работать на многих машинах с низкими ресурсами, например, материал, который работает на моем Arduino от Atmel, находится в info.


Справочные страницы не могут иметь действующих гиперссылок.(В данной технологии это просто невозможно.)

infoможет иметь и имеет много действующих ссылок от узла к узлу или от узла к листу, что значительно упрощает быструю навигацию по большим руководствам.


(История:infoпохожа насуслика , если вы это помните. Это было то, что у нас было как раз перед тем, как мы все перешли на ОС с графическим интерфейсом, и всемирная паутина взорвалась. Я помню, что суслик работал довольно хорошо для поиска информации, и это было быстро и просто. Он был легко расширяемым, полностью текстовым и быстрым.)


2 -содержит контент, которого нет на справочных страницах

Многие стандартные пакеты также имеют родственный пакет-doc . Часто это содержимое затем находится только внутри info.

Эти пакеты документации добавляют буклеты внутри информации, с разделами и подразделами -. Вinfoжаргоне они называются nodes, и узлы могут содержать другиеnodesв древовидной структуре.


Ваша первая цель — ориентироваться.

Но помощь, оказанная Х , бесполезна. Больше похоже на работу какого-то робота.

Я скопировал их справку в Gnote и вручную реорганизовал ее (ниже ). Я также заметил, что многие из нажатий клавиш -были дублированы с 2 или 3 способами выполнения данной команды.Очень похоже на emacs.


Есть команды облазить дерево, вот несколько примеров:

  • вверх на раздел, например. из раздела 2.1 в раздел 2
  • вправо раздел, например. из раздела 2.1 сразу в раздел 2.2, , пропуская раздел 2.1.1
  • следующая секция (т.е. переход по кончикам ветвей от страницы к странице ), например. от Раздела 2.1 к Разделу 2.1.1, а затем (, при условии отсутствия Раздела 2.1.2 ), далее к Разделу 2.2

Если вы читаете и прокручиваете вниз строку за строкой, вы посещаете все разделы каждой брошюры.


Важные команды навигации -Перейти к

Последний
*l-последняя т.е. вернуться назад. Это похоже на кнопку возврата в вашем веб-браузере. -Вернитесь к последнему узлу в этом окне (изначально у нас есть только одно окно ). Ух ты, мы тоже можем разделить окно документа пополам!

Родитель
*u-u p один уровень. например. перейти от раздела 2.1 к разделу 2.

Братья и сестры
*n-n добавочный узел на этом уровне. например. раздел 2 -> раздел 3 (не 2.1)
*p-p предыдущий узел на этом уровне. например. секция 3 -> секция 2

Дети
*]-следующий узел в документе, например. раздел 2 -> раздел 2.1
*[-предыдущий узел в документе, например. раздел 2.1 -> раздел 2

Люди
*d-d irectory (основной )узел. -Это верхняя часть дерева INFO. Содержит ссылки на семьи:

Семья
*t-t op узел этого документа.-Общее содержание

Вот моя шпаргалка по информационным командам:

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)
        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):

        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))


        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
6
27.01.2020, 19:32

Теги

Похожие вопросы