Правильно читаем маны (Структура командной строки и man)

Готовые решения для многих вопросов, которые очень часто задаются снова и снова.

Модератор: Модераторы разделов

Аватара пользователя
mozg
Сообщения: 4

Правильно читаем маны

Сообщение mozg »

Как я понял, у командной строки есть операнд над которым производится команда и параметры выполнения этой команды. И вроде есть ещё какие-то ключи. Чтение производится слева направо.
В связи с этим вопрос. На что влияют параметры, и на что влияют ключи. Приведите пример.

Далее. Когда я, ввожу man [команда], то выводится помощь. Как я понял, помощь имеет структуру. Т.е. описываются отдельно параметры и ещё что-то.
NAME – имя команды.
SYNOPSIS – все возможные параметры с операндами.
DESCRIPTION – описание команды.
ENVIRONMENT – это я не понял что и зачем.
EXAMPLAS – ПРИМЕР.
SEE ALSO – СМОТРЕТЬ ТАКЖЕ. Это зачем?

Допустим ввожу man man
man [-adfhkotw] [-m machine] [-p string] [-M path] [-P pager] [-S list] [section] name …

Как я понял, то, что идёт со знаком минус параметр, а если без знака минус, то значит, это операнд по отношению к которому применяется команда.
Т. е. в данном случае [-adfhkotw] - это набор возможных параметров команды, name - это операнд. Т.е. можно записать так: man –a –d –f –h –k –o –t -w man
Что означает machine, string, path, pager? Тоже какие-то операнды? Как я понял, параметры, стоящие перед ними, действуют, только если стоят эти операнды.

Параметры с разным регистром означают просто разные параметры или есть тут какая-либо договорённость? Т.е. параметры в верхнем регистре это такие-то параметры, а в нижнем такие-то.

И как вывести на принтер помощ по команде? FreeBSD.
Спасибо сказали:

Аватара пользователя
ch_IP
Сообщения: 45
ОС: FreeBSD 6.2-RELEASE

Re: Правильно читаем маны

Сообщение ch_IP »

Как я понял, у командной строки есть операнд над которым производится команда и параметры выполнения этой команды. И вроде есть ещё какие-то ключи. Чтение производится слева направо.

Ну да, ты правильно понял! ;)

В связи с этим вопрос. На что влияют параметры, и на что влияют ключи. Приведите пример.

Это просто.. Вот смотри. Например, команда
# aterm - просто запустит терминал
# aterm -fg green - тут есть параметр -fg (цвет шрифта) со значением green
# aterm -tr - есть параметры без значений. (тут просто прозрачность включается)
FreeBSD [6.2 - RELEASE] && AMD [Athlon 64] && Opera [8]
Does UNIX exist in Siberia?
Спасибо сказали:

Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Правильно читаем маны

Сообщение Bolverk »

Я не совсем понимаю русскую терминологию, но все-таки:
(mozg @ Понедельник, 19 Сентября 2005, 1:35) писал(а):ENVIRONMENT – это я не понял что и зачем.

(Специфические) переменные окружения, которые использует программа.
(mozg @ Понедельник, 19 Сентября 2005, 1:35) писал(а):SEE ALSO – СМОТРЕТЬ ТАКЖЕ. Это зачем?

полезные ссылки :) на другие маны и прочее
(mozg @ Понедельник, 19 Сентября 2005, 1:35) писал(а):Как я понял, то, что идёт со знаком минус параметр

switch - ключ, переключатель, свитч.
(mozg @ Понедельник, 19 Сентября 2005, 1:35) писал(а):а если без знака минус, то значит, это операнд по отношению к которому применяется команда

Eсли в комбинации с ключом - это параметр ключа.
(mozg @ Понедельник, 19 Сентября 2005, 1:35) писал(а):Что означает  machine, string, path, pager? Тоже какие-то операнды?

Эээ, ууу, это, как бы сказать, "смысл" параметра. Т.е если есть, например,
tar -C dir
то ключ -C требует в качестве параметра каталог, иначе он неправильный. Подробнее в описание ключей.

(mozg @ Понедельник, 19 Сентября 2005, 1:35) писал(а):Параметры с разным регистром означают просто разные параметры или есть тут какая-либо договорённость?
Т.е. параметры в верхнем регистре это такие-то параметры, а в нижнем такие-то.

Ключи в нижнем и верхнем регистре - разные. Есть еще так называемые короткие - однобуквенные, напр. -h - и длинные - начинаются с двух минусов и имеют вид осмысленного слова или фразы, например --help. Короткие можно комбинировать, например
ls -1asF
означает ls с параметрами -1, -a, -s, -F. Короткие параметры как правило имеют длинные аналоги (их проще запомнить, но дольше писать), наоборот - совсем не обязательно (количество латинских букв и цифр ограничено).
Ну и хочу добавить что параметры обычно являются сокращением или полным английским словом, отсюда и некая унификация, например, -r обычно означает рекурсивное действие (recursive) и т.п.
Э, да, то, что я написал. относится к большинству программ, у некоторых (например find), могут быть существенные различия синтаксиса.
Спасибо сказали:

Аватара пользователя
mozg
Сообщения: 4

Re: Правильно читаем маны

Сообщение mozg »

ch_IP писал(а):
19.09.2005 06:27
Это просто.. Вот смотри. Например, команда
# aterm - просто запустит терминал
# aterm -fg green - тут есть параметр -fg (цвет шрифта) со значением green
# aterm -tr - есть параметры без значений. (тут просто прозрачность включается)

Хотелось бы всё-таки разобраться с терминологией.
Здесь у вас есть 3 термина: параметр, ключ, значение.
параметр и ключ - это разные вещи?
В данном примере -fg - это параметр. green - его значение.
Т.е. значение влияет на параметр, а параметр влияет на команду.

И что есть ключ?

Bolverk писал(а):
19.09.2005 13:54
Ключи в нижнем и верхнем регистре - разные.

Это я понял, что разные. Мне просто хотелось узнать, что может быть тут есть какая-либо договорённость?Т.е. параметры по какому-либо признаку делятся на два типа. И один тип параметров задаётся верхним регистром, а другой тип нижним. Или же параметров в командной строке может быть больше 28 и поэтому применяются оба регистра?
Спасибо сказали:

Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Правильно читаем маны

Сообщение Bolverk »

Второе. Ну и чаще употребляемые ключи стараются нижним регистром делать.
Спасибо сказали:

Аватара пользователя
alv
Бывший модератор
Сообщения: 7268
Статус: Пенсионер в законе
ОС: Cintu

Re: Правильно читаем маны

Сообщение alv »

по этому поводу есть такое вот сочинение:
http://linuxcenter.ru/lib/books/posixbook/ch12.phtml
Спасибо сказали:

Аватара пользователя
mozg
Сообщения: 4

Re: Правильно читаем маны

Сообщение mozg »

Как в командной строке мне отличить то, что надо писать как есть от того что надо чем-то заменить?
В FreeBSD, как я понял то что я должен заменить выделено белой полоской. И записаны они в разделе ENVIRONMENT в man. Это и есть:
Bolverk писал(а):
19.09.2005 13:54
(Специфические) переменные окружения, которые использует программа.

Т.е. если я даю комманду man find
и получается:
find [-H | -L | -P] [-EXdsk] [-f pathname] [pathname ... ] expression
то pathname мне надо заменить на название директории в которой будет вестись поиск.
Хотя чем отличается [-f pathname] от [pathname ... ]?
Спасибо сказали:

Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Правильно читаем маны

Сообщение t.t »

Хотя чем отличается [-f pathname] от [pathname ... ]?
А если почитать описание ключа f?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали: