Прежде всего, это руководство неполное. Раздел `stty', в особенности, требует реорганизации и добавления описательного текста, прежде он будет на уровне стандарта других руководств GNU. Описательного текста недостаточно; руководство сейчас подразумевает, что Вы достаточно хорошо знаете, что нужно делать и нужлаетесь в простом напоминании как это сделать. Т.о. если Вы заинтересованы, пожайлуйста, участвуйте в улучшении этого руководства. Этим Вы принесете пользу всему сообществу GNU.
Некоторые мз этих программ полезны только при написании сценариев; такие утилиты, в действительности, составляют "язык" сценариев (большую часть). Другие иногда полезны сами по себе.
Утилиты оболочки GNU в основном совместимы со стандартом POSIX.2.
Пожалйста, сообщайте обошибках на bug-sh-utils@gnu.org. Незабудьте, указать номер версии, архитектуру машины, входные файлы, и любую другую информацию нелбходимую для воспроизведения ошибки: что Вы вводили, что ожидали получить, что получили и почему это неверно. Diff-файлы принимаются, но пожалйста влючите описание проблемы, поскольку оно не всегда очевидно.
Это руководство первоначально было создано из man-страниц Unix, в дистрибутиве, написанном Дэвидом МакКензи и обновленном Джимом Мейерингом. То, что Вы сейчас читаете -- это надежная документация по этим утилитам; man-страницы более не поддерживаются. Franc,ois Pinard (как его имя читается по-русски? напишите мне, если знаете) сделал начальное преобразование в формат Texinfo. Карл Берри сделал индексы, некоторую реорганизацию и корректировку результатов. Ричард Столлмен проявил свою неоценимую проницательность ко всему процессу.
Некоторые параметры доступны во всех этих программах. Вместо написания одинаковых описаний для каждой программы они описаны здесь. (Вообще, все программы GNU понимают (или должны понимать) эти параметры).
Многие изэтих программ принимают произвольные строки как параметры. В этих случаях, `--help' и `--version' воспринимаются как эти параметры, только если они являются единственными параметрами.
Во-первых, цитата:
сложны, ассиметричны и раздельны, что делать связанные вычисления в уме по времени невозможно. На самом деле, если некий Бог-тиран изобретал бы способ подчинить наш ум времени, чтобы сделать невозможной для нас возможность вырваться из подчинения сырым шаблонам и неприятным сюрпризам, он вряд ли мог сделать лучше, чем передать нашу современную систему. Это подобно набору трапецидальных строительных блоков без вертикальных и горизонтальных поверхностей, языку, в котором простейшая мысль требует витиеватых конструкций. В отличие от более успешных образцов языка и науки, которые позволяют нам видеть опыт широко или по крайней мере на высоком уровне, наша система измерения времени тихо и постоянно поощряет наш террор времени.
... Это подобно измерению длины в футах, ширины -- в метрах, а высоты --- в локтях, если базовые руководства требуют знания пяти различных языков. Это не чудо когда мы смотрим в наше недавнее прошлое или ближайшее будущее, прошлый вторник или неделю после воскресенья, с ощущением беспомощности. ...
-- Роберт Грудин, `Время и искусство жить'.
Этот раздел описывает текстовые представления даты, принимаемые программами GNU. Это строки, которые Вы как пользователь можете передать в качестве аргументов различным программам. C-интерфейс (через функцию `getdate') здесь не описывается.
Хотя этот синтаксис даты может представлять любое время начиная с нуля н.э., целые числа компьютеров недостаточно велики для такого (сравнительно) большого отрезка времени. Самая ранняя дата семантически допустимая на Unix системах -- это полночь 1 января 1970 г.
"Дата" -- это строка, возможно пустая, содержащая много элементов, разделенных пробелами. Пробел может быть опущен, если не появляются никакие неоднозначности. Пустая строка означает начало сегодняшнего дня (т.е. полночь). Порядок пунктов несущественен. Строка даты может содержать много разных пунктов:
Мы опишем каждый из этих типов элементов по очереди ниже.
Несколько чисел могут быть написаны словами в большинстве случаев. Это наиболее полезно для указания дня недели или относительных пунктов (см. ниже). Вот список: `first' -- 1, `next' -- 2, `third' -- 3, `fourth' -- 4, `fifth' -- 5, `sixth' -- 6, `seventh' -- 7, `eighth' -- 8, `ninth' -- 9, `tenth' -- 10, `eleventh' -- 11 и `twelfth' -- 12. Также `last'означает -1.
Когда месяц указывается таким образом, предполагается, что он указан численно, вместо "чтение полностью по буквам"; это изменяет допустимые строки.
Регистр букв полностью игнорируется в датах. Коментарии могут быть введены в круглых скобках, если включенные скобки правильно вложены. Дефисы без следующей за ними цифрой в начтоящее время игнорируютя. Лидирующие нули в числах игнорируются.
"Календарная дата" указывает день года. Она указывается различными способами, в зависимости от того, указывается месяц численно или прописью. Все эти строки указывают одну календаную дату:
1970-09-17 # ISO 8601. 70-9-17 # По умолчанию XX век используется. 70-09-17 # Лидирующие нули игнорируются. 9/17/72 # Обычная запись в США. 24 September 1972 24 Sept 72 # September имеет специальное сокращение. 24 Sep 72 # Трехбуквенные сокращения также допускаются. Sep 24, 1972 24-sep-72 24sep72
Год может быть опущен. В этом случае, используется последний указанный год, если такого нет -- текущий. Например:
9/17 sep 17
Здесь приведены правила.
Если месяц указан числом, допустим формат ISO 8601 `ГОД-МЕСЯЦ-ДЕНЬ', где ГОД -- это любое положительное число, МЕСЯЦ -- число между 01 и 12, ДЕНЬ -- число от 01 до 31. Лидирующий нуль должен быть указан, если число меньше 10. Если ГОД меньше 100, то 1900 добавляется к нему, для образования даты в XX веке. Конструкция `МЕСЯЦ/ДЕНЬ/ГОД', популярная в США допустима. Также `МЕСЯЦ/ДЕНЬ', опуская год.
Названия месяцев могут быть указаны полностью: `January', `February', `March', `April', `May', `June', `July', `August', `September', `October', `November' or `December'. Названия месяцев могут быть сокращены до первых трех символов, возможно заканчивающихся точкой. Также можно писать `Sept' вместо `September'.
Когда месяцы указаны прописью, календарная дата может быть задана следующим образом:
ДЕНЬ МЕСЯЦ ГОД ДЕНЬ МЕСЯЦ МЕСЯЦ ДЕНЬ ГОД ДЕНЬ-МЕСЯЦ-ГОД
Или, опуская год:
МЕСЯЦ ДЕНЬ
"Время суток" в строках даты указывает время в данный день. Вот несколько примеров, представляющие одно и то же время:
20:02:0 20:02 8:02pm 20:02-0500 # В EST (Стандартное восточное время в США).
В общем случае время суток задается в виде `ЧАС:МИНУТЫ:СЕКУНДЫ', где ЧАС -- эточисло между 0 и 23, МИНУТЫ -- число между 0 и 59, СЕКУНДЫ -- число между 0 и 59. `:СЕУКНДЫ' могут быть опущены, в этом случае они считаются равными нулю.
Если после времени указывается `am' или `pm' (или `a.m.' или `p.m.') ЧАС долен быть от 1 до 12, `:МИНУТЫ' можно опустить (считаются равными нулю). `am' указывает на первую половину дня, `pm' -- на вторую. В такой записи 12 предшествует 1: полночь это `12am', полдень -- `12pm'.
После времени может быть указан часовой пояс в виде `ЗЧЧММ', где З -- `+' или `-', ЧЧ -- количество часов в поясе, ММ -- количество минут в поясе. Когда часовой пояс задан таким образом, время интерпретируется относительно Coordinated Universal Time (UTC), перекрывая любые предыдущие спецификации часового пояса или местный частовой пояс. МИНУТЫ во времени суток не могут быть опущены, если указан часовой пояс. Это единственный способ указать часовой пояс используя дробные части часа.
Или `am'/`pm' или часовой пляс могут быть указаны, но не оба.
"Часовой пояс" определяет международный часовой пояс, указываемый небоьшим количеством букв. Они поддерживаются для обратной совместимости и не рекомендуются, потому что они неодносзначны на практике: сокращение `EST' имеет разное значение в США и Австралии. Точки игнорируются. В настоящее время только целые часы в поясах огут быть представлены в "часовом поясе". См. предыдущий раздел для лучшего управления часовыми поясами.
Здесь приведены не сберегащие дневное время часовые пояса, индексированные по поясному часу
Здесь приведены сберегающие дневное время часовые пояса, индексированные по поясному часу. Также окончивая не сберегающие дневное время часовые пояса строкой `DST' отдельным словом (отделенным пробелом), соответсвующий сберегающий дневное время часовой пояс может быть указан.
Явное указание дня недели увеличавает дату (только в случае необходимости) для достижения того дня недели в будущем.
Дни недели могут быть написаны полностью: `Sunday', `Monday', `Tuesday', `Wednesday', `Thursday', `Friday' or `Saturday'. Дни могут быть сокращены до первых трех букв, возможно заканичаващихся точкой. Специальные сокращения `Tues' для `Tuesday', `Wednes' для `Wednesday' и `Thur' или `Thurs' для `Thursday' также допустимы.
Число может предшествовать дню недели для сдвига вперед дополнительных недель. Лучше всего это использовать в выражениях вида `third monday'. В этом контексте `last ДЕНЬ' или `next ДЕНЬ' также допустимы; они сдигают на неделю вперед или назад день, представляемый ДНЕМ.
Запятая, следующая за днем недели, игнорируется
"Относительные элементы" устанавливают дату (или текущюу дату) вперед или назад. Эффект относительных пукнктов накпиливается. Вот несколько примеров.
1 year 1 year ago 3 years 2 days
Единица изменения времени может быть выбрана строкой `year' или `month' для изменения на целы годы или месяцы. Это не точные единицы, т.к. не все месяцы и годы имеют одинаковую продолжительность. Более точные единицы это: `fortnight', которая значаит 14 дней, `week' --- 7 дней, `day' -- 24 часа, `hour' -- 60 минут, `minute' или `min' --- 60 секунд и `second' или `sec' -- 1 секунда. Суффикс `s' для этих единииц допустим и игнорируется.
Единица времени может быть предворена множителем, данным как возможно число со знаком. Беззнаковые числа считатются положительными. Отсутсвие числа применяет 1 как множитель. Указывая за относительным пунктам слово `ago' эквивалентно предварению единицы множителем -1.
Строка `tomorrow' значит один день в будущее, завтра, (эквивалентно `day'), строка `yesterday' -- один день в прошлое, вчера, (эквивалентно `day ago').
Строки `now' или `today' -- это относительные пункты, указывающие нулевое смещение даты, эти строки исходят из факта, что нулевое смещение представляет собой текущее время, если предыдущие пункты его не изменили. Они могут использоваться для выделить другие пункты, как, например, в `12:00 today'. Строка `this' также иммет смысл нудевого смещения времени, но предподчительно в строках даты как `this thursday'.
Когда относительный пункт изменяет дату так, что сберегающий дневное время часовой пояс сменяется на не сберегающий дневное время часовой пояс или наоборот, что время выавнивается в соответвии с местным временем.
Точная интерпретация непосредственного десятичного числа заисит от контекста в строке даты.
Если десятичное число имеет вид ГГГГММДД и никаких элементов календарной даты (section Календарная дата перед ним нет в этой строке даты, то ГГГГ означает год, ММ -- месяц, а ДД -- день месяца.
Если десятичное число имеет вид ЧЧММ и никаких элементов времени суток перед ним нет в этой строке даты, то ЧЧ означает час суток, а ММ -- минуты часа. ММ может быть опущено.
Если календарная дата и время суток записаны слева от числа в строке даты, и нет относительных элементов, то число переопределяет год.
`getdate' был первоначально реализован Стивеном М. Белловином (smb@research.att.com) в Университете Северной Каролины. Код был позже подправлен парой людей из Usenet, затем полностью переработан Ричем Сальцем (rsalz@bbn.com) и Джимом Беретсом (jberets@bbn.com) в августе 1990. Различные ревизии для системы GNU были сделаны Дэвидом МакКензи, Джимом Мейерингом и др.
Эта глава первоначально была создана Franc,ois Pinard (Френсисом Пинардом, наверное, если кому известно как его имя читается по-русски напишите) (pinard@iro.umontreal.ca) из исходных текстов `getdate.y', а затем подкорректирована К. Берри (kb@cs.umb.edu).
Этот раздел описывает команды, печатающие текстовые строки.
`echo' пишет каждую данную СТРОКУ на стандартный вывод, с пробелом меджу каждой и переводом строки в конце. Синтаксис:
echo [ПАРАМЕТР]... [СТРОКА]...
Программа принимает следующие параметры. См. также section Общие параметры.
`printf' выполняет форматированную печать текста. Синтаксис:
printf ФОРМАТ [АРГУМЕНТ]...
`printf' печатает строку ФОРМАТ, интерпретирую `%'-директивы и `\'эскейп последовательности также как это деалет функция `printf' в C. Аргумент ФОРМАТ при необходимисти заново используется для преобразования всех переданных АРГУМЕНТов.
`printf' имеет одну дополнительную директиву, `%b', которая печатает строки-аргументы с `\' эскейп последовательностями, интерпретируемыми так же как в строке ФОРМАТ.
`printf' интерпретирует `\0ввв' в строке ФОРМАТ как восмиричное число (если ввв -- это от 0 до 3 восьмиричных цифр) укзывающее код символа и `\xшшш' -- как шеснадцатеричное число (если шшш -- это от 0 до 3 шеснадцатеричных цифр) указывающее код символа.
Дополнительная эскейп последовательность `\c' указывает `printf' не выводить более ничего.
Параметрами являются `--help' и `--version'. См. section Общие параметры
`yes' печатает аргументы командной строки, разделенные пробелами и завершаемые переводом строки, бесконечно пока не будет прервана. Если нет аргументов она печатает `y' с переводом строки бесконечно пока не будеь прервана.
Параметрами являются `--help' и `--version'. См. section Общие параметры
Эта глава описывает команды, которые преимущественно полезны из-за их кода возврата, чем их вывода. Т.о., они часто используются как условия в выражениях `if', или как последная команда в канале.
`false' ничего не делает за исключением того, что возвращает значение 1, означающий "ошибка". Она может использоваться для занимания места в скриптах, где необходима неуспешная команда. `false' игнорирует все аргументы коммандной строки, даже `--help' и `--version', т.к. в противном случае изметится ожидаемое поведение, на которое некоторые программисты расчитывают.
Эта версия `false' реализована на C и поэтому более защищена и быстра, чем скрипт, и может безопасно использоваться как фиктивный командный интерпретарор для выключенных профилей пользователей.
`true' ничего не делает кроме как возращает значение 0, означающее "успех". Она может использоваться для занимания места в скриптах, где необходима неуспешная команда, но встроенная команда `:' (двоеточие) делает то же быстрее.
`true' игнорирует все аргументы коммандной строки, даже `--help' и `--version', т.к. в противном случае изметится ожидаемое поведение, на которое некоторые программисты расчитывают.
Эта версия `true' реализована на C и поэтому более защищена и быстра, чем скрипт, и может безопасно использоваться как фиктивный командный интерпретарор для выключенных профилей пользователей.
`test' возвращает значение 0 (истина) или 1 (ложь) в зависимости от вполнения условного выражение ВЫРАЖ. Каждая часть выражения должна быть отдельным аргументом.
`test' может выполнять проверки состояния файлов, строковые операции и операции сравнения чисел.
Поскольку большинство командных оболочек имеют встроенную команду с таким именем, использование неуточненного имени команды в скрипте или интерактивно может привести к функциональных отличиям от данного описания.
Кроме параметров описанных ниже, `test' понимает взятые в отдельности `--help' или `--version'. section Общие параметры. Единственный не параметрический аргумент также допустим: `test' возвращает истину, если аргумент не пустой.
Эти параметры проверяют отдельные типы файлов. (Все является файлом, но не все файлы одинаковы!)
Эти параметры проверяют отдельные правва доступа.
Эти параметры проверяют другие файловые характеристики.
Эти параметры проверяют характеристики строк. Строки не закавычены для `test', хотя Вам может понадобиться закавычить их для защиты символов со специальным значением для командной оболочки, например, пробелов.
Сравнения чисел. Аргументы дожны быть полностью числовыми (возможно отрицательными), или специальным выражением `-l СТРОКА', которая определяет длину СТРОКИ.
Например:
test -1 -gt -2 && echo yes => yes test -l abc -gt 1 && echo yes => yes test 0x100 -eq 1 error--> test: ожидалось целочисленное выражение перед -eq
Обычные логические связки.
expr вычисляет выражение и пишет результат на стандартный вывод. Каждая лексема выражение должна быть отдельным аргументом.
Операнды могут быть числами или строками. `expr' преобразует все, что находится в позиции операнда, к целому числу или строке в зависимости от применяемой операции.
Строки не закавычены для `test', хотя Вам может понадобиться закавычить их для защиты символов со специальным значением для командной оболочки, например, пробелов.
Операторы могут быть заданы как инфиксные символы или префиксные ключевые слова. Скобки обычным образом для группировки (Вам нужно закавычить скобки, для защиты их от вычисления командной оболочкой).
Возвращаемое значение:
`expr' подерживает проверку по шаблону и другие строковые операторы. Они имеют более низкий приоритет чем арифметические операторы и операторы отношения.
Чтобы заставить `expr' интерпретировать ключевые слова как строки, Вы должны использовать оператор `quote'.
`expr' поддерживает обычные арифметические операторы, в порядке возрастания приоритета. Строковые операторы имеют более низкий приоритет, связки более высокий.
`expr' поддерживает обычные логические связки и отношение. Они имеют более высокий приоритет, чем строковые или арифметические операторы. Вот список в порядке возрастания приоритета.
Вот несколько примеров использования кавычек для метасимволов командных оболочек.
Чтобы сложить 1 и переменную оболочки `foo' в оболочках совместимых с Борновыми:
foo='expr $foo + 1'
Чтобы напечатать имя файла, хранимого в `$fname', без пути, который может не содержать `/':
expr $fname : '.*/\(^.*\)' '^|' $fname
Пример, показывающий, что `\+' это оператор:
expr aaa : 'a\+' => 3 expr abc : 'a\(.\)c' => b expr index abcdef cz => 3 expr index index a error--> expr: syntax error expr index quote index a => 0
Командные оболочки в Unix обеспечивают несколько видов "перенаправления" -- способов изменить входной источник и выходной приемник команды. Но одно полезное перенаправление реализуется отдельной программой, не командной оболочкой; она здесь описана.
Команда `tee' копирует стандартный ввод на стандартный вывод и также в любые файлы, переданные как аргументы. Это полезно когда Вы хотите не только послать данные по каналу, но и сохранить копию. Синтаксис:
tee [ПАРАМЕТР]... [ФАЙЛ]...
Если выходной файл не существует, то он создается. Если выходной файл существует, данные сранящиеся в нем переписываются, если не указан параметр `-a'.
Программа понимает следующие параметры. См. также section Общие параметры
Эта глава описывает команды, манипулирующие именами файлов.
`basename' удаляет любые предшествующие компоненты каталогов из ИМЕНИ. Синтаксис:
basename ИМЯ [СУФФИКС]
Если СУФФИКС указан и совпадает с окончанием ИМЕНИ, то он также удаляется. `basename' печатает результат на стандартный вывод.
Параметрами являются `--help' и `--version'. См. section Общие параметры
`dirname' печатает все кроме последнего отделенного слэшем компонента строки (предположительно имя файла). Синтаксис:
dirname ИМЯ
Если ИМЯ это одна компонента, `dirname' печатает `.' (означающую текущий каталог)
Параметрами являются `--help' и `--version'. См. section Общие параметры
`pathchk' проверяет переносимость имен файлов. Синтаксис:
pathchk [ПАРАМЕТР]... ИМЯ...
Для каждого ИМЕНИ `pathchk' печатает сообщение если одно из этих условий верно.
Программа пронимает следующие параметры. См. также section Общие параметры
Возвращаемое значение:
Эта глава описывает команды, которые показывают илиизменяют рабочий контекст: текущий каталог, установки терминала и т.д. См. также следующую главу, в которой описываются команды относящиеся к пользователям.
`pwd' печатает полное развернутое имя текущего каталога. Т.е. все компоненты напечатанного имени будут реальными именами каталогов, а не символических связей.
Поскольку большинство командных оболочек имеют команду с таким же именем, использование неуточненного имени команды в скрипте или интерактиво может привести к отличиям в функциональности от описанной здесь.
Параметрами являются `--help' и `--version'. См. section Общие параметры
`stty' печатает или изменяет характеристики терминала, такие как скорость. Синтаксис:
stty [ПАРАМЕТР] [УСТАНОВКА]... stty [ПАРМЕТР]
Если параметры не даны, `stty' печатает уровень бодов, номер порядка линии (на системах, которые его поддерживают), и установки линии, отличающиеся от значений, установленных `stty sane'. По умолчанию, режим чтения и установки выполняется на линии tty, присоедененной к стандартному вводу, этя она может быть изменена параметром `--file'
`stty' понимает много непараметрических аргументов, которые изменяют аспекты функционирования терминальной линии, как описано ниже.
Программа понимает следующие параметры. См. также section Общие параметры.
Много установок могут быть выключены указанием `-' перед ними. Такие аргуенты отмечены ниже с "Может отрицаться" в их описании. Сами описания относятся к влюченному, не выключенному, состоянию (конечно, если обратоное не указано).
Некоторые установки не доступны на некоторых POSIX системах, поскольку они используют расширения. Такие аргументы отмечены ниже с "не-POSIX" в их описании. На не-POSIX системах эти или другие установки также могут быть недоступны, но невозможно документировать все вариации: просто попытайтесь и Вы увидите.
Управляющие установки:
Эти аргументы определяют операции, относящиеся к выводу.
Коминирующие установки:
cread -ignbrk brkint -inlcr -igncr icrnl -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echokeа также устанавливает значения по умолчанию всем специальным символам.
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -opost -isig -icanon -xcase min 1 time 0Может отрицаться. Если отрицается, то же, что и `cooked'.
Значения по умолчанию специальных символов варьируется от системы к системе. Они могут быть заданы синтаксисом `имя значение', имена приведены в списке ниже, а значения могут задаваться символьно, в шапочной нотации или цклым числом, которое может начинаться с `0x', для шестнадцатеричных чисел, `0' для восьмиричных, или любой другой цифры для десятичных.
Для GNU stty значение `^-' или `undef' отключает специальный символ. (Это несовместимо с Ultrix `stty', которая использует значение `u' для отключения специального символа. GNU `stty' трактует значение `u' как любое другое, т.е. устанавливает значение специального символа в <U>.)
`printenv' печатает значения переменных окружения. Синтаксис:
printenv [ПАРАМЕТР] [ПЕРЕМЕННАЯ]...
Если ПЕРЕМЕННЫЕ не указаны, `printenv' печатает значения всех перменных окружения. Иначе, она печатает значения для каждой ПЕРЕМЕННОЙ, которая установлена, и ничего для тех которые не установлены.
Параметрами являются отдельно взятые `--help' и `--version' См. section Общие параметры.
Возвращаемое значение:
`tty' печатает имя файла терминала присоединенного к стандарному вводу. Она выдает `not a tty' если стандартный ввод не является терминалом. Синтаксис:
tty [ПАРАМЕТР]...
Программа понимает следующие параметры. См. также section Общие параметры
Возвращаемое значение:
Эта глава описывает команды печатают информацию о пользователе: логины, группы и т.д.
`id' печатает информация о указанном пользователе или работающем, если пользователь не указан. Синтаксис:
id [ПАРАМЕТР]... [ИМЯ-ПОЛЬЗОВАТЕЛЯ]
По умолчанию, она печатает действительный идентификатор пользователя, эффективный идентификатор, если он отличается от действительного, эффективный идентификатор группы, если он отличается от действительного, и идентификаторы дополнительных групп.
Каждое из этих числовых значений предваряется идентифицирующей строкой и продолжается соответсвующим именем пользователя или группы в скобках.
Параметры указывают `id' печатать только часть этой информации. См. также section Общие параметры.
`logname' печатает имя пользователя, указанное в файле `/var/run/utmp', и возвращает значение 0. Если в `/var/run/utmp' нет записи для вызывающего процесса, `logname' печатает сообщение об ошибке и возвращает значение 1.
Параметрами являются `--help' и `--version'. См. section Общие параметры.
`whoami' печатает имя пользователя, ассоциированное с текущим эффективным идентификатором пользователя. Это эквивалент команды `id -un'.
Параметрами являются `--help' и `--version'. См. section Общие параметры.
`groups' печатает имена основной и дополнительных групп для каждого указанного ИМЕНИ-ПОЛЬЗОВАТЕЛЯ, или текущего процесса, если имена не даны. Если имена указаны, имя каждого пользователя печатается перед списком пользовательских групп. Синтаксис:
groups [ИМЯ-ПОЛЬЗОВАТЕЛЯ]...
Списки групп эквивалентны выводу команды `id -Gn'.
Параметрами являются `--help' и `--version'. См. section Общие параметры.
`users' печатает единственную строку разделенного пробелами списка пользователей, работающих в данной системе в данный момент времени. Каждое имя пользователя соответсвует сессии, т.о. если пользователь имеет более одной сессии, его имя появится соответсвующее число раз в выводе. Синтаксис:
users [ФАЙЛ]
Без аргумента ФАЙЛ, `users' извлекает информацию из файла `/var/run/utmp'. Если файловый аргумент задан, `users' использует этот файл. Основной выбор это `/var/run/wtmp'.
Параметрами являются `--help' и `--version'. См. section Общие параметры.
`who' печатает информацию и пользователях, работающих в данное время в системе. Синтаксис:
`who' [ПАРАМЕТР] [ФАЙЛ] [am i]
Если аргументы не переданы, `who' печатает следующую информацию о работающих в системе пользователях: логин, линии терминала, время работы и имя удаленного хоста или X дисплея.
Если задан непараметрический аргумент, `who' использует его вместо `/var/run/utmp' в качестве имени файла, содержащего записи работающих в системе пользователей. `/var/run/utmp' в основном передается как аргумент для `who', чтобы посмотреть, кто ранее зашел в систему.
Если переданы два непараметрических аргумента, `who' печатет только запись для запустившего ее пользователя (определяется из стандартного ввода), предваренной именем хоста. Традиционно, два передаваемых аргумента это `am i', как в `who am i'.
Программа понимает следующие параметры. См. также section Общие параметры.
Эта глава описывают команды, которые печатают или изменяют системные параметры.
`date' без параметров печатает текущее время и дату, с формате директивы `%c' (описанной ниже). Синтаксис:
date [ПАРАМЕТР]... [+ФОРМАТ] date [-u|--utc|--universal] [ MMDDHHMM[[CC]YY][.SS] ]
Если дан аргумент, начинающийся с `+', `date' печатает текущее время и дату (или время и дату указанные параметром `--date', см. ниже) в формате, определяемом этим аргументом, который такой же как в функции `strftime'. Исключая директивы, начинающиеся с `%', символы в строке формата печатаются без изменений. Диретивы описаны ниже.
Директивы `date', относящиеся ко времени.
Директивы `date', относящиеся ко дате.
Директивы `date' выдающие сивольные строки.
По умолчанию `date' набивает числовые поля нулями, так, что, например, номера месяцев всегда выводятся двуми цифрами. GNU `date' распознает следующие числовые модификаторы между `%' и директивой.
Это расширения GNU.
Вот пример иллюстрирующий различия:
date +%d/%m -d "Feb 1" => 01/02 date +%-d/%-m -d "Feb 1" => 1/2 date +%_d/%_m -d "Feb 1" => 1/ 2
Если передан аргумент, не начинающийся с `+', `date' устанавливает системные часы на дату и время, указанные этим аргументом (как описано ниже). Вы должны иметь соответсвующие права для установки системного времени. Параметры `--date' и `--set' не могут быть использованы с таким аргументом. Параметр `--universal' может быть использован с таким аргументом для обозначения того, что указанное время и дата относительны к Coordinated Universal Time, на не кмесному часовому поясу.
Аргумент должен состоять только из цифр, имеющих следующее значение:
Параметр `--set' также устанавливает системные часы; см. следующий раздел.
Программа понимает следующие параметры. См. также section Общие параметры.
Вот несколько примеров. См. также описание параметра `-d' в предудущем разделе.
date --date='2 days ago'
date --date='3 months 1 day'
date --date='25 Dec' +%j
date '+%B %d'Но это может быть не то, что Вы хотите, потому что для первых девяти дней месяца `-d' расширяет нулями до двух цифр, например `date -d 1may '+%B %d" напечатает `May 01'.
date -d=1may '+%B %-d'
date +%m%d%H%M%Y.%S
date --set='+2 minutes'
Вск, 15 Апр 2001 15:15:10 +0400
date --date='1970-01-01 00:00:01 UTC +5 hours' +%s 18001Допустим Вы не указали часовой пояс в этом примере. Тогда `date' будет использовать мысль Вашего компьютера о часовом поясе при интерпретации строки. Вот, что Вы получите, если бы Вы были в Гринвиче, Англия:
# local time zone used date --date='1970-01-01 00:00:01' +%s 1
date --date='2000-01-01 UTC' +%s 946684800Чтобы преобразовать такое громозкое число секунд обратно в более читабельный вид, используйте команду как эта:
date -d '1970-01-01 946684800 sec' +"%Y-%m-%d %T %z" 2000-01-01 00:00:00 +0000
`uname' печатает информацию о машине и операционной системе, под которой она работает. Если параметры не указаны, `uname' днйствует как если бы был указан параметр `-s'. Синтаксис:
uname [ПАРАМЕТР]...
Если указаны несколько парметров или `-a', выбранная информация печатается в следующем порядке:
ИМЯ-СИСТЕМЫ ИМЯ-УЗЛА РЕЛИЗ ВЕРСИЯ-ОС МАШИНА
ВЕРСИЯ-ОС, по крайней мере, может состоять из нескольких слов. Например:
uname -a => Linux appolohost 2.2.15-4mdk #1 Wed May 10 15:31:30 CEST 2000 i586 unknown
Программа понимает следующие параметры. См. также section Общие параметры.
Без аргументов `hostname' печатает имя текущей системы-хоста. С одним аргументом она устанавливает текущее имя системы-хоста равное указанной строке. Вы должны иметь соответсвующие привилегии для установки имени системы-хоста. Синтаксис:
hostname [ИМЯ]
Параметрами являются `--help' и `--version'. См. section Общие параметры.
Эта главва описывает команды, которые выполняют другие команды в некотором контексте, отличном от текушщего: с измененным окружением, от другого пользователя и др.
`chroot' выполняет команду с указанным корневым каталогом. На многих системах только супер-пользователь может делать это. Синтаксис.
chroot НОВЫЙ-КОРЕНЬ [КОМАНДА [АРГУМЕНТЫ]...] chroot ПАРАМЕТР
Обычно имена файлов ищутся начиная с корневого каталога, т.е. `/'. `chroot' изменяет корневой каталог на НОВЫЙ-КОРЕНЬ (который должет существовать) и заетм запускает КОМАНДу с необязательными АРГУМЕНТами. Если КОМАНДА не указана, используется значение переменной окружения `SHELL' или, если она не установлена, `/bin/sh' с параметром `-i'.
Параметрами являются `--help' и `--version'. section Общие параметры.
`env' запускает программу с измененным окружением. Синтаксис:
env [ПАРМЕТР]... [ИМЯ=ЗНАЧЕНИЕ]... [КОМАНДА [АРГУМЕНТЫ]...] env
Аргументы вида `ИМЯ=ЗНАЧЕНИЕ' устанавливают переменной окружения ПЕРЕМЕННАЯ значение ЗНАЧЕНИЕ. ЗНАЧЕНИЕ может быть пустым (`ПЕРЕМЕННАЯ='). Задавая переменной пустое значение отличается от ее удаления.
Первый следующий за ними аргумент указывает имя программы, которую требуется выполнить; она ищется согласно переменной окружения `PATH'. Любые последующие аргументы воспринимаются как аргументы для этой программы.
Если имя команды не указано за спецификациями окружения, печатается результурующее окружение. Это подобно указанию имени команды `printenv'.
Программа понимает следующие параметры. См. также section Общие параметры
`nice' печатает или изменяет приоритет задачи. Синтаксис:
nice [ПАРАМЕТР]... [КОМАНДА [АРГУМЕНТ]...]
Если аргументы не заданы, `nice' печатает текущий приоритет, который наследуется. Иначе `nice' выполняет данную КОМАНДу с измененным приоритетом. Если ИЗМЕНЕНИЕ не задано, приоритет команды возрастает на 10. Вы должны олдадать соответсвующими правами для указания отрицательного приращения. Приоритет может быть изменен в пределах от -20 (наивысший) до 19 (наименьший).
Поскольку многие командные оболочки имеют встроенную команду с таким именем, использование неуточненного имени в скрипте или интерактивно может привести к отличиям в функциональности от описанной здесь.
Программа понимает следующие параметры. См. также section Общие параметры.
`nohup' запускает КОМАНДУ с игнорированием к разрыву линии, так что команда может продолжать выполнение в фоновом режиме после того как Вы выйдете из системы. Синтаксис:
nohup КОМАНДА [АРГУМЕНТЫ]...
`nohup' увеличичвает приоритет КОМАНДЫ на 5, т.о. она имеет небольшое изменение в работе. Если стандартный вывод это терминал, он и стандартный вывод ошибок перенаправляются таким образом, что они добавляются в файл `nohup.out'; если он не доступен для записи то, они дописываются в `$HOME/nohup.out'. Если это невозможно, то команда не выполняется.
Если `nohup' создает `nohup.out' или `$HOME/nohup.out', она создает его без разрешений для группы и остальных. Она не изменет разрешения, если выходной файл уже существует.
`nohup' не помещает команду автоматически в фоновый режим, Вы должны сделать это явно, завершив командную строку символом `&'/
Параметрами являются `--help' и `--version'. См. section Общие параметры.
`su' позволяет одному пользователю временно стать другим пользователем. Она запускает программу (обычно интерактивную оболочку) с реальным и эффективным идентификатором пользователя, группы и дополнительных групп для данного ПОЛЬЗОВАТЕЛЯ. Синтаксис:
su [ПАРАМЕТР]... [ПОЛЬЗОВАТЕЛЬ [АРГУМЕНТ]...]
Если ПОЛЬЗОВАТЕЛЬ не задан, считается, что это `root', супер-пользователь. Используемая оболочка берется из ПОЛЬЗОВАТЕЛЬской записи в `passwd' или `/bin/sh' если ни одна там не указана. Если ПОЛЬЗОВАТЕЛЬ имеет пароль, `su' спрашивает его, если эффективный идентификатор пользователя не равен нулю (супер-пользователь).
По умолчанию, `su' не изменяет текущий каталог. Она устанавливает переменные окружения `HOME' и `SHELL' из записи пароля для ПОЛЬЗОВАТЕЛЯ, и если ПОЛЬЗОВАТЕЛЬ не является супер-пользователем, устанавлтвает `USER' и `LOGNAME' в значение ПОЛЬЗОВАТЕЛЬ. По умолчанию, оболочка не является оболочкой входа (login shell).
Любые дополнительные АРГУМЕНТЫ передаются как дополнительные аргументы командной оболочке.
GNU `su' не трактует `/bin/sh' или дюбые другие оболочки специально (т.е. устанавливая `argv[0]' в `-su', передавая `-c' только отдельным оболочкам, и т.д.)
`su' может быть опционально скомпилирован для использования `syslog' для сообщения неуачных, и опционально успешных, попыток. (Если система поддерживает `syslog'.) Однако, GNU `su' не проверяет, является ли пользователем группы `wheel'; см. ниже.
Программа понимает следующие параметры. См. также section Общие параметры
`sleep' делает паузу на указанное время, суммируя значения в аргументах командной строки. Синтаксис:
sleep [ЧМСЛО[smhd]]...
Каждый аргумент представляет собой число с опциональной единицей времени; по умолчанию -- секунды. Единицы впремени:
Параметрами являются `--help' и `--version'. См. section Общие параметры
Эти программы выполняют операции, относящиеся к числам.
`factor' пеяатает простые делилили. Синтаксис:
factor [ЧИСЛО]... factor ПАРАМЕТР
Если ЧИСЛО(а) не указаны в командной строке, `factor читает числа, разделяемые переводами строки, пробелами, знаками табуляции со стандартного ввода.
Параметрами являются `--help' и `--version'. section Общие параметры.
`seq' печатает числовую почледовательность на стандартный вывод. Синтаксис:
seq [ПАРАМЕТР]... [ПЕРВОЕ [ШАГ]] ПОСЛЕДНЕЕ...
`seq' печатает числа от ПЕРВОГО до ПОСЛЕДНЕГО с шагом ШАГ. По умолчанию, ПЕРВОЕ и ШАГ раны 1, и кажое число печатается на отдельной строке. Все числа могут быть действительными, а не только целыми.
Программа принимает следующие параметры. См. также section Общие параметры
Jump to: ! - % - & - * - + - - - / - : - < - = - > - ? - \ - _ - a - b - c - d - e - f - g - h - i - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - | - н - с - А - Б - Д - Ф - Г - И - К - Л - М - Н - О - П - Р - С - Т - У - В - З - Ш - Ч
This document was generated on 2 April 2002 using texi2html 1.56k.