Підказки та поради щодо пошуку інформації на сторінках man [закрито]


80

У когось є якісь хитрощі та поради щодо пошуку інформації на сторінках man?


1
man --help/ man -hта його більш повний брат man manмає поради щодо пошуку та навігації.
Антон Тарасенко

Відповіді:


51

Зверніть увагу на номер розділу: Припустимо, вам потрібна допомога printf. їх принаймні два: в оболонці та в C. Баш-версія printf знаходиться в розділі 1, версія C - у розділі 3 або 3С. Якщо ви не знаєте, яку з них хочете, введіть man -a printfі всі сторінки вручну відобразяться.

Якщо ви шукаєте, це формат printf з усіма кодами%, і він не відображається на manf сторінці printf, ви можете перейти на відповідні чоловічі сторінки, перелічені в розділі ДИВІТЬСЯ ТАКОЖ. Ви можете знайти щось подібне formats(5), що пропонує вам ввести текст man 5 formats.

Якщо ви дратуєтесь тим, що man printfнадає printf (1), і все, що вам потрібно, це printf (3), вам доведеться змінити порядок відсканованих каталогів у MANPATHзмінній оточення та поставити ці для мови C перед тими для команд оболонки. Це може статися і тоді, коли сторінки Fortran або TCL / Tk перелічені перед C-сторінками.

Якщо ви не знаєте, з чого почати, введіть man introабо man -s <section> intro. Це дає вам підсумок команд запитуваного розділу.

Розділи чітко визначені:

  • 1 призначений для команд оболонки,
  • 2 - для системних дзвінків,
  • 3 призначений для інтерфейсів програмування (іноді 3C для C, 3F для Fortran ...)
  • 5 - це формати файлів та інші правила, такі як формати printf або regex.

І останнє, але не менш важливе: інформація, що надходить на чоловічих сторінках, не є зайвою, тому уважно читайте її від початку до кінця, щоб збільшити шанси знайти те, що вам потрібно.


11
У більшості систем ви можете ознайомитися, man manщоб побачити повний опис різних розділів.
Стівен Д

1
Було б здорово, якби була програма для пошуку сторінок за «ключовими словами». Тобто я нещодавно не міг запам'ятати назву функції c, щоб знайти підрядку (the strstr()) , і в мене не було Інтернету навколо.
Привіт-Ангел

3
@ Привіт-Ангел man -k substringчи apropos substringдопомогла б тобі.
Кусалаланда


37

людина -к пошуку

Це дасть вам список всіх сторінок, які стосуються "пошуку".


2
І щоб перелічити всі чоловічі сторінки, які стосуються "пошуку" у конкретному розділі (наприклад, номер 3), можна використати це: man -k search -s 3 Також згадується в superuser.com/a/677969/599957
kenichi

Я знаю, що такі коментарі нахмурені, але дякую, дякую, дякую! Я буквально шукав таку команду довше, ніж я б хотів визнати ... років !!
MikeyE

19

Як говорить @Steven D, не забудьте infoсторінки.

Крім того, не лякайте infoсторінки. Я знаю безліч людей, які не використовують інформаційні сторінки через вбудовану систему навігації. Моє улюблене рішення - передати інформаційні сторінки через less:

info gpg |less

Таким чином я можу переміщуватися по infoсторінках за допомогою мого улюбленого пейджера. Зараз infoсторінки будуть поводитись так само, як manсторінки.


1
Ей, це чудова порада щодо навігації
Гленн Джекман

18

aproposУтиліта серйозно зручна для знаходження відповідної довідкової сторінки.


1
man -k== apropos, чи не так?
phunehehe

1
aproposце те, що я весь час використовую, коли шукаю щось, що не має для себе сторінку людини.
полемон

1
'man man' говорить, що 'man -k' еквівалентно 'apropos -r'. Я думаю, що apropos є дещо потужнішим. Я зазвичай використовую 'man -k', оскільки це трохи коротше.
Крістоф Простой

16

Типовим пейджером для читання чоловічої сторінки є less. Існує документація на less тут .

Зокрема:

  • Прокрутіть вгору / вниз по одній сторінці: b/ space
  • Прокрутіть вгору / вниз на половину сторінки: u/ d
  • Пошук вперед / назад: // ?, а потім введіть регулярний вираз,
    • потім натисніть, n щоб перейти до наступного матчу або
    • shift+ Nперейти до попереднього матчу.
    • Якщо сторінка покрита нецікавими збігами, натисніть, spaceщоб перейти до наступної сторінки.
  • Додайте @перед звичайним виразом для пошуку з самого початку.

ЦЕ найкраща відповідь. Додаткові бали за використання символів kbd. ;)
Chiramisu

Прокручування вгору / вниз по одній сторінці також можна виконати за допомогою ctrl+space/ f, що може бути корисно в залежності від того, які пальці ви віддаєте перевагу використовувати для навігації.
joelostblom

8

Завжди перевіряйте, що є в розділі ДИВІТЬСЯ ТАКОЖ. Команди, показані в цьому розділі на infoсторінці, можна вибрати, розмістивши курсор на потрібній команді та натиснувши клавішу введення. Часто я знаходжу інші корисні команди чи функції таким чином.


7

Якщо вам більше комфортно з редактором, ніж з пейджером за замовчуванням, ви можете встановити його MANPAGERв оточенні. Наприклад, у мене є такий рядок у моєму ~/.bashrc:

export MANPAGER="col -b | vim -c 'set ft=man nomod nolist ignorecase' -"

4

Я думаю, використання більшості пейджерів є хорошою ідеєю. Цей пейджер дуже потужний, але головна особливість для мене - показ кольорових чоловічих сторінок. Ця функція покращує сприйняття простого тексту та полегшує пошук потрібної інформації.

Подивіться на скріншоті, текст виглядає дуже приємно, чи не так?

самий пейджер


2
Ви залишили найважливішу інформацію: як я використовую mostдля перегляду сторінок чоловіка.
користувач1968963

2
@ACK_stoverflow - напевно, не дуже гарна ідея рекомендувати хлопцеві робити, > ~/.bashrcоскільки він замінить те, що вже є. Краще додати ( >>) або додати вапно вручну, на мій погляд.
вацуг

@vatsug Wow хороший виклик, ось що мій коментар повинен був сказати: Встановіть його і спробувати його: aptitude install most; export MANPAGER="most"; man man. Щоб зробити його постійним:echo 'export MANPAGER="most"' >> ~/.bashrc
ACK_stoverflow

4

В Linux manви можете зробити man -K string(зверніть увагу на велику букву K), щоб здійснити грубої пошук заданого терміна

   -K, --global-apropos
          Search for text in all manual  pages.   This  is  a  brute-force
          search,  and is likely to take some time; if you can, you should
          specify a section to reduce the number of pages that need to  be
          searched.   Search terms may be simple strings (the default), or
          regular expressions if the --regex option is used.

дуже корисно, коли ви не знаєте, де шукати.


3

Не ігноруйте infoсторінки. Багато інструментів GNU мають набагато більш широкі інформаційні сторінки, ніж чоловічі. Часто в розділі SEE ТАКОЖ говориться "Повна документація для foo зберігається як посібник Texinfo". Особливо це стосується всього, що є в пакеті GNU coreutils.

Крім того, якщо ви користувач emacs, не забувайте, що ви можете прочитати інформацію та сторінки керівництва, не виходячи зі свого редактора: M-x infoі M-x woman.


3

На тих довших, складніших сторінках із керівництвом мені набагато легше читати їх подалі від комп’ютера (як це не знаю), і тому я маю ці функції в своєму .bashrc

# Print man pages 
manp() { man -t "$@" | lpr -pPrinter; }

# Create pdf of man page - requires ghostscript and mimeinfo
manpdf() { man -t "$@" | ps2pdf - /tmp/manpdf_$1.pdf && \
    xdg-open /tmp/manpdf_$1.pdf ;}

2

З відповіді Крістофа, якщо ви (тобто) введете, man -k chmodви отримаєте список можливостей. Зверніть увагу на число в круглих дужках, це означає, який розділ потрібно шукати на сторінках керівництва:

У UNIX можна спробувати:

man -s1 chmod він покаже сторінку man для команди chmod

man -s2 chmod на ній відобразиться сторінка man для функції lib C chmod ()

У Linux ви повинні змінити -sдля-S


man 1 chmod man 2 chmod робить те саме.
Еліптичний вигляд

2

Перегляд довідкових сторінок у зручному графічному додатку:

konqueror man:(command)

Для змісту верхнього рівня:

konqueror man:

Особливості:

  • Якщо ви введете команду, яка відповідає збігу в декількох розділах, вона перенесе вас на сторінку розбору
  • Це графічний додаток, тому вам не потрібно запам’ятовувати послідовні ключові послідовності, щоб переміщатися по сторінці
  • Вона включає гіперпосилання на пов’язані сторінки (включаючи сторінки "див. Також")
  • Ви можете відкрити пов'язані сторінки на окремих вкладках

До речі, це теж працює info:(command). Деякі програми надають набагато більше інформації через "info", ніж через "man", а konqueror забезпечує набагато приємніший інтерфейс для перегляду цих інформаційних сторінок. Примітка. Просто використання info:, також працює для отримання змісту верхнього рівня.
nobar

Аналогічного ефекту можна досягти, використовуючи gmanпакет, який встановлює веб-сервер manpage на localhost / cgi-bin / man / man2html .
nobar

Альтернативи на AskUbuntu: askubuntu.com/questions/253705/…
nobar

... yelpє заміною легшої ваги для зменшення ваги, konquerorхоча вона має недолік у тому, щоб не містити змісту або сторінки розрізнення для імен, що використовуються у кількох розділах. Ви повинні чітко їх розмежувати, додаючи .(section)- наприклад yelp man:open.2. Ви також можете використовувати <kbd> Ctrl-L </kbd>, щоб відкрити рядок розташування.
nobar

2

Дайум, люди! Що з суперечливими відповідями ?! Що б не сталося, щоб простота була ключем до блиску, а що ні? Більшість ключів vi / vim працюватимуть плавно:

/або ?- Шукайте вперед або назад (як деякі хлопці вже згадували). У випадку, коли перший, малий n буде прокручувати сірники вперед, велика літера N піде назад. Протилежне до останнього - знак питання.

Трохи складніші пошуки за допомогою регулярних виразів. Різниця між man(або less) та VIM полягає в тому, що вам потрібно використовувати символ escape (), щоб оголосити метахарактери у своєму виразі під час використання останнього. Хороша новина полягає в тому, що коли ви використовуєте колишній ( manабо less) -не так багато. Таким чином , ви можете легко помістити це використовувати при пошуку, наприклад, на iptablesсторінці людини для декількох термінів , як так: /(iptables|rules). Якщо ви не знайомі з регулярними виразами, це означає "Шукати екземпляри слів iptablesАБОrules"" Після введення цього і продовження натискання n ви будете прокручувати почергові результати пошуку, результати будуть добре виділені для вас різними кольорами (два, власне. Ха-ха). Якщо ви намагаєтеся проскочити сторінку та хочете сконцентруватися на конкретних термінах чи поняттях - ви не пропустите жодної речі!

І, звичайно, для швидшої навігації звичайні viрежими очікування все ще стоять (каламбур не призначений): ggабо G- початок / кінець документа; (Виправлення! У manвас можна використовувати всі згадані нижче ключі, не використовуючи Ctrl. Це viлише для ). Ctrl + u or d- Прокручування вгору або вниз; Ctrl + b or f- Те саме, тільки більшими стрибками. "Сторінка назад або вперед"; eабо y- прокручування по одному рядку, але я думаю, що більшість людей скоріше просто використовувати клавіші зі стрілками. Однак, якщо ви хочете залишитися "1337" і "ніколи не залишати домашній рядок" (як я це люблю) - це шлях.

Що я намагаюся сказати, це те, що UNIX має два основні смаки керування програмами клавіатури, які є обома частинами readlineбібліотеки: vi та emacs. Збийте котлети або в одному (але, бажано, в обох), і це зробить ваше життя набагато менш складним. Більшість програм CLI в UNIX використовують будь-яку. BASHвикористовує елементи керування emacs за замовчуванням, але його можна легко встановити на "vi режим", набравши set -o vi. Те саме можна сказати і для регулярних виразів, але це буде поза темою. Я б навіть зайшов, щоб сказати, що обидва є "lingua franca" UNIX.


2

Схожий на, але трохи відмінний від відповіді Роб Хоельц,

Додайте у своє ~/.vimrc:

let $GROFF_NO_SGR=1
runtime ftplugin/man.vim

Зараз vimmanце чудовий переглядач сторінки, а :Manз Vim (або просто натискання Kна ключове слово) є чудовим браузером сторінки.


1

Більшість із нас встановлюють змінну PATH. Це покаже вам, як автоматично зробити так, щоб шлях пошуку людини відповідав вашій команді PATH пошуку.

Скажімо, ви додаєте свій шлях, щоб включити ваші особисті, робочі та локально встановлені утиліти, наприклад export PATH=$PATH:~/bin:/workgroup/bin:/opt/local/bin:. Як побічний ефект, man fooне відображатимуться Manpages, що зберігаються у ~ / man, / workgroup / man або / opt / local / man.

Щоб вирішити це питання, я використовую manpathкоманду для автоматичного встановлення шляху пошуку на сторінці чоловічої сторінки. Наприклад, мій ~ / .bashrc має таке. Це працює для мене в ста різних системах, на яких працює все від FreeBSD 4.x, Darwin та CentOS 5:

### PATH & MANPATH
# My personal utilities
export PATH=$PATH:$HOME/bin

### Set the manpath based on the PATH, after man(1) parses man.conf
# - No need to modify man.conf or manually modify MANPATH_MAP
# - Works on Linux, FreeBSD & Darwin, unlike /etc/manpaths.d/
# See "SEARCH PATH FOR MANUAL PAGES" in man(1)
# Just set the man search path. Don't print output to screeen.
manpath >/dev/null

Деякі системи (як Apple Leopard) встановлюють MANPATH автоматично, але це означає, що ваша система використовуватиме змінну MANPATH замість використання manpath. Внаслідок цього сторінки man для "MacPorts" (/ opt / local / man) ігноруються. Я хочу контролювати це сам, тому я скасовую MANPATH:

unset MANPATH
manpath >/dev/null

1

Якщо ви шукаєте інформацію , що стосується bashвбудовану команду (наприклад time, disown, setабо [[), замість того , щоб наполегливі через детальну bashінформацію або сторінки man bash, ви можете ввести help {builtin-keyword}і отримати основну інформацію синтаксичної швидко.


1

Якщо ви дратуєтеся тим, що людина printf дає вам printf (1), і все, що вам потрібно, це printf (3), ви можете сказати людині, що ви хочете printf з розділу 3, поставивши розділ перед printf, як-от так:, man 3 printfне змінюючи значення порядок відсканованих каталогів у змінній середовища MANPATH та поставте ті для мови C перед тими для команд оболонки.


1

Я просто використовую grep. Якби мені було цікаво, що зробив -sваріант readкоманди, я спробував би ці команди, щоб отримати відповідь:

info read |grep \\-s

man read |grep \\-s

help read |grep \\-s

У цьому випадку лише infoкоманда дала чітку відповідь. Ця відмінна відповідь дає детальну інформацію про різні довідкові системи.


1

man -a printfпросто за замовчуванням man 1на моїй машині Linux Mint. whatis printfдає мені відповідну інформацію.


1

Наприклад -u, для ефективного пошуку одного символьного перемикача , ви можете часто використовувати:

/^ *-u($|\s)

Економить багато часу, якщо в багатьох опціях є "-u" як префікс.


Також цей регекс буде корисним: /-u($|[,\s]) у випадку, якщо символ параметра обрамлений комою. Але якщо ви хочете , щоб побачити всі записи символу опції «і» (як -u]в [--udp|-u]в netstatкерівництві) вам потрібно що - щось на зразок цього: /-u($|[^a-z]) А якщо viі vimвикористовуються в якості пейджера: /-u\($\|[^a-z]\)
Kenichi

0

Команда apropos (1) використовується для пошуку вручних сторінок. Однак більшість реалізацій apropos (1) просто шукають у розділі NAME, що дуже обмежує.

NetBSD має повнотекстовий пошук apropos (1), який здатний шукати повний вміст сторінок. Для нього також є веб-інтерфейс: man-k.org , який можна спробувати.


0

введіть тут опис зображенняЯкщо вам важко читати вручну через весь текст білого кольору, ви можете їх розфарбувати. Більшість чоловічих сторінок відкриваються разом із less. Для less, я використовую наступні налаштування кольору в .bashrcвід тут :

man() {
    LESS_TERMCAP_md=$'\e[01;31m' \red
    LESS_TERMCAP_me=$'\e[0m' \
    LESS_TERMCAP_se=$'\e[0m' \
    LESS_TERMCAP_so=$'\e[01;44;33m' \yellow on blue
    LESS_TERMCAP_ue=$'\e[0m' \
    LESS_TERMCAP_us=$'\e[01;32m' \green
    command man "$@"
}

Це для bash і zsh. Для most, fish, xtermі rxvtпобачити посилання вище.

Для подальшого читання:


0

А для тих, хто любить читати сторінки про людину та інформацію на сенсорному екрані, ви можете передати людину / інформацію до яду чи зену та скористатися всіма смаколиками gtk3, як прокрутка рідного пальця. Також чудово підходить для екрану і миші:

man cat |yad --text-info 

Ви також можете використовувати zenity або додати параметри yad, як-от:

man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &

Порада: за допомогою показу урі йо можна натиснути на веб-посилання всередині чоловічих сторінок мишкою / пальцем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.