Я , наконец , надоело , когда хотят , чтобы прочитать о баш «ы read
и это -s
вариант с man bash
. В конце концов я нашел правильное место (около строки 4500), но, как обычно, это было неприятно, так как оба /read
и даже /\s-s\s
поиски имеют слишком много совпадений.
Итак, вопрос: как я могу эффективно читать длинные страницы руководства или получать ту же информацию другими способами на местном уровне ? Как конкретный пример, как добраться до соответствующей документации после просмотра read -s pwd
в сценарии оболочки? Хорошим ответом может быть фрагмент сценария оболочки или подсказка о каком-либо инструменте и о том, как он используется, или что-то еще полностью, при условии, что он помогает найти правильное место для чтения.
Примечание: я не отмечаю тегом bash, потому что хочу, чтобы вопрос касался чтения справочной страницы в целом, хотя это, вероятно, наиболее часто встречающаяся огромная справочная страница.
man
страницу, я использую небольшой скрипт, который я оставляю на верхней панели. yuugian.com/demo/gkman.txt Поделитесь и наслаждайтесьbash
себе: так же, как и вам, мне тоже в основном нужнаSHELL BUILTINS
часть руководства, которая находится примерно в строке 3500 . Итак, зная это, в следующий раз я просто скажу,man bash
а затем уменьшусь на 66 процентов, набрав66%
, затем несколько раз PgDn, и я там. Хотя я выбрал 66, потому что его можно запомнить как «Маршрут 66» , на самом деле это немного больше, хотя запомнить его не так просто, если только это не начало вашего телефона # и т. Д. :) По крайней мере, «Маршрут 66» "универсален и известен во всем мире.Ответы:
Чтобы быстро получить помощь по встроенной функции Bash, используйте
help
:это то, что вы хотите.
Для форматирования, подобного man-странице, используйте
или даже лучше,
Если вы все еще настаиваете на поиске этого на странице руководства, я нахожу, что быстро приводит меня к объяснению команды:
Это работает, потому что, когда команда сначала объясняется, ее имя слегка отступает от начала строки. В конкретном случае
read
это займет немного времени, прежде чем вы перейдете к фактическомуread
документации, потому что (по понятным причинам) слово «чтение» многократно повторяется на всей странице руководства. [[] Означает совпадение с [, которое обычно предшествует необязательным параметрам. (Я обычно опускаю / ^ \ s * и просто делаю / <встроенную команду> [[])Еще одна альтернатива
Если вы не возражаете против изменения формата, вы можете преобразовать свою справочную страницу в файл DVI или PDF:
или
Конечно, имея документ DVI или PDF, вы можете легко выполнить текстовый поиск.
источник
help
здорово, я удивляюсь, как я никогда не слышал об этом ...ps2pdf
это не так полезно, так как он не может (по-видимому) создать индекс любого вида.Подход 1
man bash
тогда/read \[
тогда/-s
Подход 2
Вы можете попробовать инструмент с открытым исходным кодом для объяснения аргументов командной строки, называемый объясненный shell .
Это может быть использовано локально. Прочитайте документацию на https://github.com/idank/explainshell
Предостережения: обычно работает, но только с командами, найденными в репозитории man Ubuntu
В вашем случае он не может распознать
-s
переключательread -s pwd
.Подход 3
Я нашел другой инструмент, который кажется многообещающим, но он не работает в моей системе.
объяснение: краткая документация для команд Unix
источник
/-s\b
избегать таких ударов, как--some-other-command
(при этом все еще находя такие строки, как-s,
, которые вы не получите, если будете искать/-s
с пробелом).В этом случае я обычно просто запускаю
man
поискSHELL BUILTIN COMMANDS
заголовка, затем поиск встроенного, т.е.Тем не менее, в Bash вы можете сделать
или, в зависимости от системы, любой из
В общем, для этого у меня есть скрипт
he
("краткая справка"). Вы бы запустили это так:источник
desc
вhe
. github.com/mikelward/scripts/blob/master/heНе существует общего способа поиска информации на странице руководства, равно как нет общего способа поиска информации в книге. Это зависит от того, что вы ищете.
Когда вы ищете информацию о встроенной оболочке, вы можете искать встроенную строку в начале строки, сохраняя отступы, а затем пробел: поиск
^ *read␣
(например, тип/^ *read␣
Enter) (␣
это пробел). Это работает с dash, pdksh, mksh и bash. Справочная страница Zsh разделена, поэтому вам нужно прочитатьzshbuiltins
справочную страницу. Ksh93 содержит специальные символы перед именами некоторых встроенных функций, которые нужно искать^ *†*␣
в UTF-8 или^ *-*␣
в ASCII. Есть несколько ложных срабатываний, но это быстро приведет вас к правильной линии. Поиск^ *read($| [-[])
уменьшает количество ложных срабатываний.Вы можете ускорить поиск, сообщив своему пейджеру, куда вы хотите перейти. Например,
PAGER='less "+/^ *read \["' man bash
открывается страница руководства bash с описаниемread
встроенной функции. Вы можете сделать это функцией:источник
mksh
man-странице/ read
(два пробела, имя команды, один пробел) обычно находит нужное место (это трюк, который я использую сам, и быстро набираю). Спасибо, что спросили об этом; Я добавлю (несколько) отдельные ссылки на все утилиты, включенные в mksh, в моем TODO./ read
имеет много ложных срабатываний, когда ваша реализация оправдывает текст.Чтобы перейти непосредственно к разделу «Команды SHELL BUILTINS» на справочной странице bash, я определил в своем
$HOME/.bash_aliases
файле следующий псевдоним .источник
Просто чтобы предложить другую альтернативу, если вы предпочитаете использовать веб-браузер, который позволяет вам легко осуществлять поиск по текущей странице, вы можете использовать что-то вроде man.cgi используемое на freeBSD.org, которое также позволяет вам просматривать страницы man из разных систем, чтобы увидеть, как они отличаются. Я видел подобное на других сайтах, так что ожидайте, что есть другие варианты вокруг.
Ссылка справки под apropos предлагает некоторую информацию, чтобы получить копию сценария для размещения на вашем собственном сервере со ссылками для загрузки коллекций страниц справочника.
источник
Я нашел способ создать функцию bash для этой цели. Этот фрагмент может быть, например, вставлен в конце
~/.bashrc
:Комментарии немного объясняют, что он делает. В частности, строка поиска по умолчанию выполняет поиск заданного слова в начале строки, пропуская начальный пробел. Примеры:
Примечание: этот скрипт не имеет понятия о разделах man-страниц ... Я посмотрю, если я подправлю это позже, но установка
MANSECT
переменной среды man помогает.источник
trap 'rm -f "$tmp"'
man "$1" | vim -R - "+/$2"
сделал бы что-то подобное?$2
, так что нет.trap
. Я не нашел чистого способа сделать это в функции без создания подоболочки.+/REGEX
Собирая кусочки из другой дискуссии здесь вот быстрая функция , которую вы можете оставить в вашем ,
.bashrc
что приведет вас прямо к встроенному (если она существует). В противном случае он открываетсяman
как обычно:источник
Вы можете использовать любой дистрибутив Linux,
info bash
если хотите иметь отдельные параграфы по типу действий, в которых информация идентична страницам руководства.источник