Как я проверяю справочные страницы для того, что делает единственный параметр команды?


12

Пример: я использую tar -zxvfкоманду, но я не знаю, что означает «х».

Как я могу проверить этот единственный параметр без необходимости прокрутки man tar?


Пожалуйста, проверьте эту [тему] [1] на superuser.com. [1]: superuser.com/questions/441654/…
Эйнар

Ответы:


17

Поиск

xдля extract.

После того, как вы вошли в man, введите /-xenterдля поиска информацию о параметре -x,
нажмите, nчтобы перейти к следующему совпадению -x, и Nдля предыдущего

Поиск с помощью Regex

Для больших страниц man или общих терминов можно использовать небольшое регулярное выражение, чтобы сузить поиск.

Если вы просто хотите основную запись, вы можете использовать /^ *-xдля удаления наиболее посторонних совпадений.
Это работает, так как большинство справочных страниц отформатированы с записью с пробелами.

  • ^ * соответствует началу строки, с нуля до многих пробелов.
  • -x это строка поиска.

7

Вы также можете сделать grepэто из справочной страницы с некоторым контекстом:

man tar | grep -C5 -- '-x\b'

5

Это работает в RHEL6 с Bash

В .bashrc

добавлять

function mans {
       man $1 | less -p "^ +$2"
}

начать новый экземпляр Bash

$ bash

сейчас

mans ls -l

имеет желаемый эффект.


2

Если вы используете Emacs M-x man RET tar, то C-s -x.

Нажимайте C-sнесколько раз, пока не доберетесь до нужного места, а затем нажмите клавишу возврата.

C-rто же самое, но в обратном направлении. (Но оба будут наносить двойной удар по верху / низу документа.)

Кроме того, в подобных случаях (поиск на странице man) предпочтителен поиск с учетом регистра . Изучите case-fold-searchпеременную.

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


0

Я знаю, что это старый вопрос, извините за возрождение, но я написал этот простой сценарий оболочки, который вы можете использовать:

function manopt() {
    mn=`man -P cat $1`
    for i in ${@:2}
    do
        echo $mn |  grep --color=always -A5 "^ *$i" | sed -En '/^$/q;p'
    done
}

Используйте его, например, как:

➜ manopt ls -l -a
       -l     use a long listing format
       -a, --all
              do not ignore entries starting with .

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


0

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

Если if - это программа GNU (или, по крайней мере, одна с infoдокументом), средство просмотра информации (например, встроенная emacs(1)или автономная pinfo(1)) - это удобный способ просмотра обязательного Invokingраздела с полным описанием того, как программа вызывается. Опять же, поиск доступен.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.