Как следить за ссылками в man-страницах linux?

Есть ли способ отслеживать ссылки, упомянутые на странице руководства? Например, вот страница man для ps ; как мне получить доступ к ссылке, отмеченной красным?

Скриншот страницы ps man

  • Выделите текущее совпадение поиска на страницах руководства
  • Доступ к справочной странице ImageMagick
  • как переносить слова, выравнивать текст, как вывод человека?
  • Чтение и поиск длинных страниц
  • Разница между командой справки, информацией и человеком
  • На страницах руководства используется цитата: `<символ / строка> '(строка цитирования внутри серьезного акцента и апострофа)
  • опции командной строки и чтение файлов людей
  • Как должны быть установлены страницы человека?
  • 9 Solutions collect form web for “Как следить за ссылками в man-страницах linux?”

    Страницы Man возвращаются к Unix First Edition . Хотя гипертекст был изобретен, он все еще находился в зачаточном состоянии; сеть была на два десятилетия, и руководство было настоящей печатной книгой, часто с одной командой на страницу, если они вписываются (вот почему они назывались страницами).

    Формат, используемый для страниц руководства, немного изменился с тех пор, но большинство страниц на самом деле не предназначены для гипертекста, а программа по умолчанию для man не поддерживает его (это просто средство просмотра обычного текста с хаками для поддержки некоторого базового форматирования). Тем не менее существуют программы просмотра страниц man, которые реконструируют некоторые гиперссылки, главным образом, ссылки на другие страницы руководства, которые традиционно написаны в форме man(1) где man – это имя справочной страницы, а 1 – номер раздела :

    • tkman , просмотрщик страниц GUI с гиперссылками
    • WoMan ( wiki , man comparsion , ранее ), браузер страницы для Emacs, поддерживающий гиперссылки
    • man2html , человек для конвертера HTML (плюс веб-браузер для чтения результата)

    Вы можете просматривать страницы руководства нескольких операционных систем, преобразованные в HTML man2html или аналогичные инструменты, на ряде сайтов в Интернете, например:

    • CentOS
    • Debian
    • FreeBSD (и множество других коллекций)
    • Mac OS X
    • MINIX 3
    • NetBSD
    • OpenBSD
    • Solaris 10 , Solaris 11 , другие версии Solaris
    • Ubuntu
    • Unix 1st edition , Unix 6-е издание , Unix 8-е издание

    Некоторое время после того, как man-страницы стали установленным форматом документации в Unix, и некоторое время до того, как была изобретена сеть, проект GNU представил формат информационной документации, более продвинутый, чем человек, при этом придерживаясь простой разметки, предназначенной для текстовых терминалов. Главным новшеством информации по сравнению с человеком было создание многостраничной документации с гиперссылками на другие страницы. Информация по-прежнему является предпочтительным форматом документации для проектов GNU, хотя большинство информационных страниц генерируются из источника Texinfo (или иногда других форматов), которые также могут генерировать HTML. Когда существует инфо-документация для программы, она часто является основным руководством, а справочные страницы содержат только основную информацию о аргументах командной строки.

    Прежде всего, это не ссылка. Это просто подчеркивание. Человеческие страницы – это просто текстовые документы с небольшим количеством простого форматирования, с которым может работать терминал. Подчеркивание – всего лишь изюминка, в которой нет «ссылки».

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

    Есть некоторые специальные читатели документации, которые могли бы посмотреть на форматирование, подобное этому, и сделать обоснованное предположение, что такая подсветка может указывать на наличие связанной справочной страницы, которую можно было бы вытащить и создать ссылку, но я не знаю которые они делают. Возможно, pinfo ?

    Если вы хотите, чтобы веб-форматирование с гиперссылками, вы можете найти практически любую страницу руководства UNIX в Интернете с добавленными ссылками. Попробуйте ввести man [anything] в Google, и вы почти наверняка получите его в первых попаданиях.

    В случае вашего примера визуальная подсветка – это ключ к тому, что это другое имя программы, у которого есть собственная страница руководства, которую вы можете легко подтянуть. Попробуйте man 1 top . 1 указывает раздел страниц руководства для просмотра. См. Этот вопрос для объяснения разделов: что означают номера на странице руководства?

    Это очень поздний ответ, но используйте w3mman. w3mman – это системный пейджер системы w3m.

    http://www.linuxcommand.org/man_pages/w3mman1.html

    Вы можете попробовать, установив пакет w3m. Я считаю, что этот пакет зарегистрирован в репозиториях программного обеспечения большинства основных дистрибутивов Linux / UNIX и Cygwin.

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

    Это простейшее решение – восклицательный знак (если вы используете less чтобы отображать страницы руководства), и вы хотите перейти к подчеркнутой top :

     !man top 

    Или

     !man 1 top 

    Вам придется закрыть их все, нажимая q несколько раз. Также обратите внимание, что это не сработает, если LESSSECURE=1 задан как переменная окружения, которая уменьшит LESSSECURE=1 работы в безопасном режиме и не позволит вам использовать ! , Он скажет вам что-то вроде «Команда недоступна».

    Хотя w3mman является решением для следования ссылкам, не использует весь экран (по крайней мере, на ubuntu 12.10)

    Я предпочитаю использовать:

     $ sudo su - # apt-get install w3m man2html # exit $ alias man=' hman -P w3m' 

    добавьте последнюю команду в ~ / .bash_aliases или аналогичный сценарий запуска, чтобы получить ее на каждом сеансе.

    -P w3m – это потому, что первый браузер hman – это рысь или разумный браузер, но я предпочитаю w3m

    hman – это инструмент, связанный с html2man. См. Это

    Если выход с подтверждением вас раздражает, то мне это нравится

    Я смог использовать аргумент --html для man , чтобы открыть его в браузере, определяемом переменной окружения $ BROWSER, поэтому:

     BROWSER=google-chrome man ps --help 

    Я использую Fedora. Не уверен, что это работает для вашего дистрибутива, пожалуйста, проверьте и сообщите в комментариях.

    У меня есть (пара) взлома.

    взломать 1

    Поместите это в свой ~ / .bashrc или ваш ~ / .zshrc

     function man(){ for arg in "$@"; do vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"' done } 

    Скриншот..

    руководство в vim скриншот

    Asciinema ..

    https://asciinema.org/a/130131

    Теперь..

    1. например, когда вы вводите man vim , он откроет эту страницу man в vim

      • если вы наберете man man vim , например, сначала откроете руководство для человека, и после выхода из vim он откроет руководство vim
    2. когда вы нажимаете K (это капитал k ), когда вы находитесь на другой странице руководства внизу (раздел SEE ALSO ), вы перейдете к этому руководству (к сожалению, внутри менее пейджера – это потому, что мы let no_man_maps = 1 , если вы этого не сделаете, то vim заставит q быть :q и вы не сможете легко записать макрос, а vim может вести себя охотно другими способами).

      • выход из этого второго введенного вами руководства приведет вас к предыдущему руководству, которое вы просматривали
    3. вы получаете очень симпатичную подсветку синтаксиса, так как вы загрузили ftplugin / man.vim, а ft (автоматически) установлен на man .

    4. вы можете копировать и вставлять, свободно перемещаться в vim и даже модифицировать буфер и :w ~/usefulfile . Вы можете делать все, что обычно делаете в vim, включая макросы записи, yank в буфер обмена с "+y (если у вас есть +clipboard ) и т. Д. И т. Д.

    Я нахожу это намного лучше, чем меньше .

    Единственная незначительная неудача, которую я обнаружил (которая все еще существует, если вы используете меньше, как ваш пейджер), – это если вы хотите открыть несколько руководств в одном сеансе vim. Я действительно не вижу способа сделать это.

    Несколько примечаний:

    1. если вы попытаетесь сохранить буфер, вы получите E382: Cannot write, 'buftype' option is set

      • Мне нравится, что вы не можете сохранить, поскольку это предотвращает его случайное сохранение
    2. вы все равно можете сохранить :w /tmp/man.man

      • если вы сохраните его с расширением .man , тогда его открытие установит для вас тип файла для man
      • если вы не сохраните его с расширением .man , вы можете просто установить ft на man , запустив :set ft=man
    3. если вам нужно делать что-то при открытии man-страниц, вы можете использовать autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!' , например.

    4. Я поставил следующее в своем vimrc, чтобы я мог нажать K, чтобы попытаться открыть руководство, а затем нажмите G, чтобы вернуться к предыдущему руководству:


     augroup man autocmd! autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr> autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>cr>\"\<lt>cr>"<cr> augroup END 

    взломать 2

    поместите это в ваш ~ / .bashrc или ~ / .zshrc

     function man(){ declare -a args for arg in "$@"; do command man "$arg" > "/tmp/${arg}.man" args+=("/tmp/${arg}.man") done vim "${args[@]}" } 

    Скриншот..

    несколько руководств в vim

    Asciinema ..

    https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv

    Это решает проблему, которая взламывает 1 и меньше лица (теперь вы можете просматривать несколько руководств в одном буфере), но она менее изящна.

    Заметки:

    1. ВАЖНО, если вы хотите, чтобы hack2 работал, тогда вы должны поставить :let no_man_maps = 1 в ~/.vimrc . Это связано с тем, что vim будет источником .../vim80/man.vim и q будет принудительно перенаправлен на :q .

    2. там задействовано более чистое (теперь вы храните каждое руководство в /tmp/*.man )

    3. теперь вы можете просматривать несколько страниц персонажа за один сеанс, как указано выше

    4. если вы нажмете K , вы все равно откроете новую сессию vim, однако

      • если вы хотите, вы можете связать autocmd (используя autocmd, как и выше), чтобы сделать что-то вроде autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<cr>\" > /tmp/\<cr>\".man\<cr>:edit /tmp/\<cr>\".man\<cr>" или что-то такое безумное ( непроверенное )

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

     yelp 'man:exit' 

    Он по умолчанию будет разделен так, как я не знаю. Напоминание: чтобы получить список разделов для темы руководства, используйте whatis , как в whatis exit .

    Чтобы запросить Yelp отобразить страницу руководства из определенного раздела, скажем 2, выполните:

     yelp 'man:exit(2)' 

    Проблемы: у yelp есть ошибки и быть готовыми к выходу нескольких ошибок при вызове из командной строки. Там также псевдоним или пользовательская функция оболочки могут помочь перенаправить все ошибки в /dev/null

    Как они сказали, он не был предназначен для этого.

    Вы можете использовать info man а затем нажать enter, как только вы попадете в раздел SEE ALSO на свой предмет.

    info – читать информационные документы

    Linux и Unix - лучшая ОС в мире.