Как я могу получить помощь по командам терминала?

33

Я часто вижу такие вещи, как

Читать Для получения дополнительной информации прочитайте справочную страницу xyz . видетьman xyz

info xyz

так что мне интересно

  • Как я могу получить помощь по командам терминала вообще?
  • Что именно эти man и информационные страницы ?
  • Как я могу найти и просмотреть их?
Десерт
источник
Я также хотел бы упомянуть tldr.sh , который является попыткой упростить и представить man-страницы лучше.
Не показывалось мое настоящее имя
@ Nodon'tshownmyrealname Не могли бы вы написать ответ tldr? Вы также можете упомянуть cheatи, возможно, cheat.sh .
десерт

Ответы:

44

Что такое справочная страница ?

Страница man (сокращение от man-страницы) - это традиционная форма документации программного обеспечения для Unix-подобных ОС, таких как Ubuntu. Для подавляющего большинства команд и программ есть справочная страница, которая перечисляет их параметры и объясняет их использование.

Как я могу найти и просмотреть справочные страницы?

Оффлайн в терминале

Справочные страницы автоматически устанавливаются в вашей системе вместе с командами, которые они описывают. Для просмотра и поиска справочных страниц есть команда man:

man mv

отображает страницу человека в mvто время

man -k mv

ищет имена и короткие описания всех установленных man-страниц для строки mv. Расширенные регулярные выражения POSIX разрешены, и это поиск , так что это также найдет, например, git-mvи semver, если вы хотите искать именно mvиспользовать ^mv$вместо этого.

Смотрите. В чем разница между `man` и` man (#) `? читать о разделах справочной страницы. Для получения дополнительной информации прочитайте справочную manстраницу. ;)

Как я могу повлиять на отображение страницы руководства?

Программа по умолчанию для отображения man-страниц less. Этот так называемый пейджер предоставляет полезную функцию поиска, просто введите, /а затем поисковый запрос, например

/--version

и нажмите Enter. Это пометит все находки и перейдет к первому. Нажмите, Nчтобы перейти к следующей находке и ⇧ Shift+, Nчтобы перейти к предыдущей (см. Как я могу выполнить поиск на странице справки? ). Для просмотра списка команд нажмите H, для выхода lessнажмите Q.

Рядом lessесть другие пейджеры доступны: pg, mostа w3mпросто перечислить три. Я рекомендую most: он поставляется с очень полезной раскраской ключевых слов, что значительно облегчает чтение и навигацию по man-странице , убедитесь сами:

большинство скриншотов, отображающих man-страницу mv

Чтобы просмотреть справочную страницу, отличную от вашего пейджера по умолчанию, используйте -Pпараметр, например:

man -P most mv

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

  • изменить пейджер по умолчанию только man

    export MANPAGER=most
    

    Чтобы сделать изменения постоянными, добавьте эту команду в ваш ~/.bashrcфайл.

  • изменить пейджер по умолчанию всей вашей системы

    sudo update-alternatives --config pager
    

Поклонники могут даже (ab) использовать vimкак MANPAGER, см. Эту статью, написанную muru .

Страницы руководства отображаются шрифтом, указанным в настройках эмулятора терминала. Если вы регулярно работаете с терминалом, вы можете изменить этот шрифт; Я могу только порекомендовать Hack - гарнитуру, разработанную для исходного кода , см. Скриншот выше для ее красоты.

Оффлайн через графический интерфейс

Хорошим и простым способом отображения справочных страниц с помощью простого графического интерфейса пользователя является предустановленная yelpпрограмма. Чтобы запустить справочную страницу с помощью yelpexecute yelp man:PROGRAMили gnome-help man:PROGRAM, например:

yelp man:mv

Вы также можете просматривать справочные страницы в выбранном вами браузере , см. Как открыть справочные страницы в веб-браузере? , Например , для man mvв firefox:

man -Hfirefox mv

И последнее, но не менее важное: вы можете конвертировать справочные страницы в PDF и просматривать их с помощью предпочитаемого вами средства просмотра PDF, см .: Есть ли способ распечатать информационные / справочные страницы в PDF?

В сети

http://manpages.ubuntu.com

Вы можете просматривать справочные страницы программ, доступные через репозитории всех поддерживаемых в настоящее время версий Ubuntu, с сокращенным URL-адресом manpg.es/PROGRAM, например, http://manpg.es/mv . Откроется mvстраница руководства для последней версии Ubuntu, вы можете выбрать другую версию в верхней панели. Для поиска справочных страниц вы можете использовать, например, http://manpages.ubuntu.com/cgi-bin/search.py?q=mv .

Как объяснено выше, manмогут отображаться только справочные страницы программного обеспечения, установленного в системе. Для просмотра страницы человека от http://manpages.ubuntu.com с помощью терминала пейджера есть dmanдоступны в bikeshedпакете.

Другие источники

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

$ mv --version
mv (GNU coreutils) 8.25

Есть много сайтов, которые посвятили себя тому, чтобы сделать man-страницы легко доступными, я просто собираюсь представить два, которые мне нравятся больше всего:

  • В man7.org есть полезная подсветка синтаксиса, но в нем есть только последняя выпущенная версия программы.
  • На manpag.es размещены справочные страницы релизов Ubuntu, которые давно исчезли. EOL

Источник еще не связан: https://wiki.ubuntuusers.de/man/

Десерт
источник
Еще один полезный трюк (по крайней мере, если вы программист) - это написать небольшой скрипт для вывода вывода man в ваш текстовый редактор. Например (\ n - это новая строка) #! / Bin / tcsh \ n имя_установки = $ argv [$ # argv] \ n набор_файлов = /tmp/man.$name.out\n / usr / bin / man $ * | col -bx> $ file \ n (путь к вашему редактору) $ file \ n rm $ file \ n Подобный, но специфичный для редактора макрос позволит вам вызывать man из редактора, что весьма полезно.
jamesqf
@jamesqf Интересно, зачем ты это делаешь и когда ты это используешь? Поскольку редакторы обычно могут читать со стандартного ввода, вы можете упростить его, например, до man $*|col -bx|nano -или man $*|col -bx|kate -i.
десерт
@jamesqf, если вы экспортируете man-страницу в текстовый файл, чтобы легко находить или перемещаться по ней, вам действительно стоит взглянуть на страницу « ОБЩИЕ СВЕДЕНИЯ О МЕНЬШИХ КОМАНДАХ ». Ее можно открыть, введя «h» в less( manиспользуйте lessкоманду для разбивки на страницы так manтоже работает )
Людовик Ронсин
@Ludovic Ronsin: я делаю это в своем редакторе, а не по двум причинам. Во-первых, потому что я знаю команды моего редактора (которые гораздо более мощные, чем команды поменьше), и мне не нужно беспокоиться о изучении еще одного набора команд, который я неизбежно путаю в разных контекстах. Во-вторых, потому что я могу подключить версию редактора к нажатию клавиши (Alt-m, как это происходит) и, таким образом, получить помощь по любому вызову функции, имеющему страницу man. Что касается того, почему я делаю это так, как я, я написал это более 20 лет назад, и это сработало достаточно хорошо.
Джеймс
@jamesqf просто установит PAGER = "vim -" делать?
d33tah
13

Основы уже были рассмотрены, но один веб-сайт, который я считаю весьма полезным для того, чтобы рассказать вам, что команда делает, - это https://explainshell.com , который разбивает команду на ее разделы и показывает, что делает каждый бит.

введите описание изображения здесь

Qwertie
источник
1
+1 Это совсем не то, что я делал после того, как написал этот Q & A, но это отличный ресурс, о котором я не знал - большое спасибо! Поскольку другие ответы намеренно охватывают одну основную тему, возможно, вы расширили свой ответ, чтобы охватить онлайн-инструменты в целом? Shellcheck.net приходит на ум ...
десерт
12

Что такое информационная страница ?

рядом

man program-name

часто также

info program-name

Иногда они одинаковы (дубликаты), но иногда одна из этих страниц содержит больше информации. Например

info ddrescue

содержит больше информации, чем

man ddrescue

а также

info date

содержит больше информации, чем

man date

Баланс между manи infoзависит от политики людей, которые поддерживают конкретную программу [пакет].

Смотрите эту ссылку для более подробной информации,

unix.stackexchange.com/questions/19451/difference-between-help-info-and-man-command

sudodus
источник
11

Какая helpкоманда?

helpотображает полезную информацию о bashвстроенных командах. Он предоставляет справку только для команд оболочки bash. Вы можете использовать , typeчтобы определить , является ли команда такой встроенный, например , type echoпротив type rm.

Он вызывается с шаблоном в качестве аргумента:

help if

отображает страницу справки для ifкоманды. Если вы просто заинтересованы в синтаксисе команды, используйте -sопцию, если вы хотите helpпроизводить вывод в manформате страницы -m. Для удобного просмотра длинных справочных текстов вы можете перенаправить вывод на предпочитаемый пейджер (см. Раздел «Как я могу повлиять» на этот ответ ):

help -m if | less

Сравнение с manиinfo

Вы можете запустить и сравнить следующие команды:

help echo  # for the bash built-in command `echo`
man echo   # for the program `/bin/echo`
info echo  # for the program `/bin/echo`

Как и в этом примере, есть программы, которые доступны как встроенные, так и обычные (см. Почему существует / bin / echo и зачем мне его использовать? ), В этом случае страница man обычно содержит примечание, указывающее это.

Смотрите эту ссылку для более подробной информации: Разница между справкой, информацией и командой man · U & L

опция программы -hи / или--help

Обычно в самих программах есть встроенная справка, доступная по крайней мере с помощью одного из параметров -h, --helpили -?:

PROGRAM -h
PROGRAM --help
PROGRAM -?

Если оба варианта -hи --helpсуществуют, они часто эквивалентны, но иногда вы получаете «больше помощи» с --help, -H, --longhelp, --help-allили подобными командами. Такое поведение описано в программах man/ infoстранице.

Обычно есть больше информации через manи info, но иногда есть эксклюзивная информация через -h. Запустите и сравните вывод

man lsblk

а также

lsblk -h

Некоторые программы нравится df, tarи rsyncиспользовать опцию -hдля чего - то еще. Это описано в man/ infoстранице каждой программы.

Опять же, вы можете направить вывод на ваш любимый пейджер, например:

lsblk -h | less
sudodus
источник
Спасибо за упоминание --help, это часто единственное, что мне нужно с большинством команд, и всегда первое, что я пробую.
JPhi1618
6

Что такое учебник и как мне найти полезный

Если у вас есть некоторый опыт для Linux, человек страницы, информация страниц и справочные параметры очень полезны. Но в начале их может быть трудно понять; Вам нужна более подробная помощь, чтобы начать.

Вы можете найти подробную помощь в учебниках ,

  • подробное объяснение как использовать команду
  • Примеры

Обычно вы найдете учебные пособия через Интернет, иногда есть полезное учебное пособие на странице руководства или на странице информации.

  • Попробуйте использовать некоторые поисковые строки, например, при использовании поисковой системы вашего веб-браузера.

    • Ищем указанные инструменты

      • нано учебник
      • учебник sed
      • учебник по imagemagick
      • rsync учебник
    • Поиск заданий (и нахождение учебных пособий для различных инструментов)

      • учебник по редактору текстового режима Linux
      • учебник по редактору изображений в пакетном режиме Linux

Посмотрите кратко на несколько ссылок, которые вы найдете, и начните работать с учебником, который соответствует тому, что вам нужно .

  • man rsync достаточно подробный, чтобы я мог использовать его в качестве учебного пособия, но вам может потребоваться более подробная информация (и поискать учебное пособие через Интернет).
  • info ddrescue имеет хороший встроенный учебник.
sudodus
источник
Отлично, спасибо за ваш постоянный вклад - я чувствую, что этот вопрос станет очень полезным источником, на который мы можем указать новичкам. Я добавлю оглавление к вопросу и свяжу ответы с запасными зрителями прокрутки.
десерт
1
@dessert, Это хорошая инициатива с вашей стороны, и я рад внести свой вклад :-)
sudodus
2

Мой любимый commandlinefu.com , есть функция в вашем .bashrcили .zshrcкак это

cmd() { curl "http://www.commandlinefu.com/commands/matching/$(echo "$@" \
    | sed 's/ /-/g')/$(echo -n $@ | base64)/plaintext" ;}

Давай попробуем cmd mount cd , я назвал свою функцию cmd, вы можете называть это как хотите

введите описание изображения здесь

Вышеприведенная функция выполняет поиск на веб-сайте commandlinefu, это веб-сайт, управляемый сообществом, как и здесь, пользователи имеют возможность добавлять команды и так далее. Затем он показывает лучшие результаты, как на картинке.

или есть новый способ сделать это с помощью этого .

http://samirahmed.github.io/fu/

Вот учебник .

Давай сделаем fu cron

введите описание изображения здесь

Lynob
источник
1

Выясните, как открыть окно терминала и выполнить команду man man. Введите пробел, чтобы перейти к следующему экрану, когда в нижней части появится надпись «Еще». Вы читаете страницу руководства для программы чтения вручную,man ,!

Для вас очень маленькая проблема с яйцом и курицей. Команда manпоможет вам прочитать руководство по каждой команде в системе. Но manвывод использует другую команду под названием more. Вы также можете прочитать, man moreчтобы узнать дополнительные команды навигации для more.

И это все! Я узнал все, что знаю о Unix, прочитав справочные страницы для сотен команд.

Дуглас Хельд
источник
3
В Ubuntu manиспользуется lessпо умолчанию, а не more.
Муру
0

Многие уже упоминали man. Немного крутая особенность для manнемногих в курсе

man -t $ (manpage) > manpage.ps

который создает файл PostScript для страницы руководства. PostScript может быть легко преобразован в PDF. Это приводит к гораздо более приятному форматированию, чем версия терминала по умолчанию для командной строки man.

Например:

man -t man> man.ps

pstopdf man.ps

Я только что проверил его на Ubuntu (и он должен работать на других Linux) и Mac OS.

Олег Лобачев
источник