Ответы:
Обратите внимание на номер раздела: Предположим, вам нужна помощь printf
. их как минимум два: в оболочке и на языке C. Версия bash для printf находится в разделе 1, версия на C - в разделе 3 или 3C. Если вы не знаете, какой из них вы хотите, введите man -a printf
и все справочные страницы будут отображаться.
Если вам нужен формат printf со всеми кодами%, и он не отображается на справочной странице printf, вы можете перейти к соответствующим справочным страницам, перечисленным в разделе «СМОТРИ ТАКЖЕ». Вы можете найти что-то вроде formats(5)
, что предлагает вам напечатать man 5 formats
.
Если вас раздражает то, что man printf
вы получаете printf (1), и все, что вам нужно, это printf (3), вы должны изменить порядок сканированных каталогов в MANPATH
переменной среды и поставить для языка C перед каталогами для команд оболочки. Это может также произойти, если страницы руководства Fortran или TCL / Tk перечислены перед буквой C.
Если вы не знаете, с чего начать, введите man intro
или man -s <section> intro
. Это дает вам сводку команд запрошенного раздела.
Разделы хорошо определены:
И последнее, но не менее важное: информация, предоставляемая на страницах руководства, не является избыточной, поэтому внимательно читайте от начала до конца, чтобы увеличить свои шансы найти то, что вам нужно.
man man
посмотреть полное описание различных разделов.
strstr()
) , и у меня не было интернета вокруг меня.
man -k substring
или apropos substring
помог бы тебе.
Введите косую черту, /
а затем введите строку для поиска. Затем продолжайте нажимать, n
чтобы перейти к следующему пункту
man -k search
Это даст вам список всех справочных страниц, которые относятся к «поиску».
man -k search -s 3
Также упомянуто в superuser.com/a/677969/599957
Как говорит @Steven D, не забывайте о info
страницах.
Кроме того, не пугайтесь info
страниц. Я знаю много людей, которые не используют информационные страницы из-за встроенной навигационной системы. Мое любимое решение - передать информационные страницы через less
:
info gpg |less
Таким образом, я могу перемещаться по info
страницам, используя мой любимый пейджер. На info
страницах теперь будут вести себя так же , как man
страницы.
apropos
Утилита серьезно удобна для нахождения соответствующей справочной страницы.
man -k
== apropos
не так ли?
apropos
это то, что я использую все время, когда ищу что-то, что не имеет справочной страницы для себя.
Пейджер по умолчанию для чтения справочной страницы less
. Существует документация на less
здесь .
В частности:
ctrl+space
/ f
, что может быть полезно в зависимости от того, какие пальцы вы предпочитаете использовать для навигации.
Я полагаю, использование большинства пейджеров - хорошая идея. Этот пейджер очень мощный, но главная особенность для меня - отображение цветных man-страниц. Эта функция улучшает восприятие простого текста и облегчает поиск необходимой информации.
Посмотрите на прикрепленный скриншот, текст выглядит очень хорошо, не так ли?
most
для просмотра справочных страниц.
> ~/.bashrc
как он перезапишет то, что уже есть. Лучше добавить ( >>
) или добавить известь вручную, на мой взгляд.
aptitude install most; export MANPAGER="most"; man man
. Чтобы сделать его постоянным:echo 'export MANPAGER="most"' >> ~/.bashrc
В 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.
очень полезно, когда вы не знаете, где искать.
Не игнорируйте info
страницы. Многие инструменты GNU имеют гораздо более обширные информационные страницы, чем справочные страницы. Часто в разделе СМОТРИ ТАКЖЕ говорится: «Полная документация для foo поддерживается в виде руководства в формате Texinfo». Это особенно верно для всего, что есть в пакете GNU coreutils.
Кроме того, если вы являетесь пользователем emacs, не забывайте, что вы можете читать информацию и справочные страницы, не покидая своего редактора: M-x info
и M-x woman
.
Для более длинных и сложных man-страниц мне гораздо проще читать их с компьютера (странно, я знаю), и поэтому у меня есть эти функции в моем .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 ;}
От ответа Кристофа, если вы (то есть) напечатаете, man -k chmod
вы получите список возможностей. Обратите внимание на число в скобках, это означает раздел, который нужно искать на страницах справочника:
В UNIX вы можете попробовать:
man -s1 chmod
он покажет страницу руководства для команды chmod
man -s2 chmod
он покажет страницу руководства для функции C lib chmod ()
В Linux вы должны поменять -s
на-S
Просмотр справочных страниц в удобном графическом приложении:
konqueror man:(command)
Для оглавления верхнего уровня:
konqueror man:
Функции:
info:(command)
. Некоторые программы предоставляют намного больше информации через «info», чем через «man», и konqueror предоставляет гораздо более приятный интерфейс для просмотра этих информационных страниц. Примечание: просто использование info:
, также работает для получения оглавления верхнего уровня.
gman
пакета, который устанавливает веб-сервер manpage по адресу localhost / cgi-bin / man / man2html .
yelp
являясь более легкой заменой konqueror
- хотя у нее есть недостаток: она не содержит оглавления или страницы для устранения неоднозначности имен, используемых в нескольких разделах. Вы должны дифференцировать их явно, добавляя .(section)
- например yelp man:open.2
. Вы также можете использовать <kbd> Ctrl-L </ kbd>, чтобы открыть панель адреса.
Дайум, люди! Что с запутанными ответами ?! Что случилось с простотой, являющейся ключом к блеску, а что нет? Большинство ваших клавиш 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
. То же самое можно сказать и о регулярных выражениях, но это будет не по теме. Я бы даже сказал, что оба они являются «языком общения» UNIX.
Большинство из нас устанавливают переменную 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
. В результате страницы руководства для MacPorts (/ opt / local / man) игнорируются. Я хочу контролировать это сам, поэтому я отключил MANPATH:
unset MANPATH
manpath >/dev/null
Если вас раздражает, что man printf дает вам printf (1), и все, что вам нужно, это printf (3), вы можете сказать man, что вы хотите printf из раздела 3, поместив этот раздел перед printf, например так: man 3 printf
без необходимости изменять Порядок отсканированных каталогов в переменной среды MANPATH и поместите те для языка C перед тем для команд оболочки.
Я просто использую grep
. Если бы я задавался вопросом, что делает -s
опция read
команды, я бы попробовал эти команды по порядку, пока не получу ответ:
info read |grep \\-s
man read |grep \\-s
help read |grep \\-s
В этом случае только info
команда дала четкий ответ. Этот превосходный ответ дает подробную информацию о различных системах помощи.
Например -u
, для эффективного поиска односимвольного переключения вы часто можете использовать:
/^ *-u($|\s)
Экономит много времени, если многие опции имеют префикс -u.
/-u($|[,\s])
в случае, если символ опции заключен в запятую. Но если вы хотите , чтобы увидеть все записи символа опции «и» (как -u]
в [--udp|-u]
в netstat
руководстве) вам нужно что - то вроде этого: /-u($|[^a-z])
А если vi
и vim
используются в качестве пейджера: /-u\($\|[^a-z]\)
Команда apropos (1) используется для поиска man-страниц. Однако большинство реализаций apropos (1) просто выполняют поиск в разделе NAME, что очень ограничивает.
NetBSD имеет реализацию полнотекстового поиска apropos (1), которая способна выполнять поиск по всему содержимому справочных страниц. Для этого также есть веб-интерфейс: man-k.org , который вы можете попробовать.
Если вам трудно читать справочные страницы из-за всего текста белого цвета, вы можете раскрасить их. Большинство man-страниц открываются с помощью 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
увидеть ссылку выше.
Для дальнейшего чтения:
А для тех, кто любит читать страницы man и info на сенсорном экране, вы можете направить man / info в yad или zenity и использовать все вкусности gtk3, такие как нативная прокрутка пальцев. Также отлично работает с refular экраном и мышью:
man cat |yad --text-info
Вы также можете использовать zenity или добавить такие опции, как:
man cat |yad --text-info --height=500 --width=800 --center --wrap --show-uri --no-markup &
Подсказка: by show uri yoh может щелкать мышью / пальцем веб-ссылки на страницах руководства.
man --help
/man -h
и его более полный братman man
имеет советы по поиску и навигации.