Архив документации OpenNet.ru /
Раздел "Операционные системы, Разное" /
Индекс
[Содержание] [Назад] [Пред] [Вверх] [След] [Вперед]
Эта глава описывают команды, которые печатают или изменяют системные
параметры.
`date' без параметров печатает текущее время и дату, с
формате директивы `%c' (описанной ниже). Синтаксис:
date [ПАРАМЕТР]... [+ФОРМАТ]
date [-u|--utc|--universal] [ MMDDHHMM[[CC]YY][.SS] ]
Если дан аргумент, начинающийся с `+', `date' печатает текущее
время и дату (или время и дату указанные параметром `--date', см. ниже)
в формате, определяемом этим аргументом, который такой же как в функции
`strftime'. Исключая директивы, начинающиеся с `%', символы в строке
формата печатаются без изменений. Диретивы описаны ниже.
Директивы `date', относящиеся ко времени.
- `%H'
-
часы (00...23)
- `%I'
-
часы (01...12)
- `%k'
-
часы (0...23)
- `%l'
-
часы (1...12)
- `%M'
-
минуты (00...59)
- `%p'
-
местный AM или PM
- `%r'
-
время, 12-часовое (чч:мм:сс [AP]M)
- `%s'
-
секунды с начала эпохи, т.е. 1 января 1970 00:00:00 UTC (расширение
GNU). Заметьте, что это значение -- число секунд между началом эпохи и
текущей датой, определенной системным вызовом localtime. Оно не меняется
параметром `--date'.
- `%S'
-
секунды (00...61)
- `%T'
-
время, 24-часовое (чч:мм:сс)
- `%X'
-
местное представление времени (%Ч:%М:%С)
- `%z'
-
числовой часовой пояс в стиле RFC-822 (т.е. -0600 или +0100), или
ничего, если чясовой пояс неопределим. Это значение отражает текущий
часовой пояс. Оно не изменяется параметром `--date'.
- `%Z'
-
часовой пояс или ничего, если часовой пояс неопределим. Заметьте,
что это значение отражает текущий часовой пояс. Оно не изменяется параметром
`--date'.
Директивы `date', относящиеся ко дате.
- `%a'
-
местное сокращение для дня недели (Sun...Sat)
- `%A'
-
местное полное название дня недели, переменная длина (Sunday...Saturday)
- `%b'
-
местное сокращение для месяца (Jan...Dec)
- `%B'
-
местое полное название месяца, переменная длина (January...December)
- `%c'
-
местная дата и время (Sat Nov 04 12:02:33 EST 1989)
- `%d'
-
день месяца (01...31)
- `%D'
-
дата (мм/дд/гг)
- `%h'
-
тоже самое, что и %b
- `%j'
-
день года (001...366)
- `%m'
-
месяц (01...12)
- `%U'
-
номер недели в году, считая воскресенье первым днем недели, (00...53).
Дни в году предшествующие первому воскресенью относятся к нулевой неделе.
- `%V'
-
номер недели в году, считая воскресенье первым днем недели, (00...53).
Если неделя содержащая 1 января имеет 4 или более дней в новом году,
то она считается первой; иначе это 53 неделя прошлого года, следующая
неделя считается первой. (См. стандарт ISO 8601: 1988.)
- `%w'
-
день недели (0...6) с 0 соответветсвующим воскресенью
- `%W'
-
номер недели в году, считая понедельник первым днем недели, (00...53).
Дни в году предшествующие первому воскресенью относятся к нулевой неделе.
- `%x'
-
местное представление даты (мм/дд/гг)
- `%y'
-
последние две цифры года (00...99)
- `%Y'
-
год (1970....)
Директивы `date' выдающие сивольные строки.
- `%%'
-
символ %
- `%n'
-
новая строка
- `%t'
-
горизонтальная табуляция
По умолчанию `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' также устанавливает системные часы; см. следующий
раздел.
Программа понимает следующие параметры. См. также раздел 2. Общие параметры.
- `-d СТРОКА-ДАТЫ'
-
- `--date=СТРОКА-ДАТЫ'
-
Вывести дату и время, указанные в СТРОКЕ-ДАТЫ, вместо текущей даты
и времени. СТРОКА-ДАТЫ может быть почти любого обычного формата.
Она может сожержать названия месяцев, часлвых поясов, `am' и `pm',
`yesterday', `ago', `next', и т.д. раздел 3. Форматы ввода даты.
- `-f ФАЙЛ-ДАТЫ'
-
- `--file=ФАЙЛ-ДАТЫ'
-
Анализировать каждую строку и ФАЙЛЕ-ДАТЫ, как с `-d', и вывести результирующее
время и дату. если ФАЙЛ-ДАТЫ это `-', использоюется стандартный ввод.
Это полезно, когда нужно обрабоать много дат, поскольку замедление системы
при многократном запуске `date' может быть существенным.
- `-I[СПЕЦИФИКАЦИЯ-ВРЕМЕНИ]'
-
- `--iso-8601[=СПЕЦИФИКАЦИЯ-ВРЕМЕНИ]'
-
Вывести дату используя формат ISO 8601, `%Г-%м-%д'
Необязательный аргумент СПЕЦИФИКАЦИЯ-ВРЕМЕНИ указывает количесвто
дополнительно включаемых термов. Может быть одним из:
- `auto'
-
Стандартное поведение: вывести только дату.
- `hours'
-
Добавить час дня к дате.
- `minutes'
-
Добавить часы и минуты.
- `seconds'
-
Добавить часы, минуты и секунды.
Если выводятся любые термы времени, чавой пояс включается, используя
формат `%z'. Если `--utc' также указано, вместо `%z' используется `%Z'.
- `-R'
-
- `--rfc-822'
-
Вывести время и дату используя формат, определенный RFC-822, `%a,
%_d %b %Y %H:%M:%S %z'. Если `--utc' также указано, вместо `%z' используется
`GMT'.
- `-r ФАЙЛ'
-
- `--reference=ФАЙЛ'
-
Вывести время и дату последней модификации ФАЙЛА, вместо текущего
времени и даты.
- `-s СТРОКА-ДАТЫ'
-
- `--set=СТРОКА-ДАТЫ'
-
Установить время и дату к СТРОКЕ-ДАТЫ, см `-d' выше.
- `-u'
-
- `--utc'
-
- `--universal'
-
Вывести или установить время и дату в Universal Coordinated Time,
вместо местного времени.
Вот несколько примеров. См. также описание параметра `-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'.
- Чтобы напечатать дату без начального нуля для одноцифровых дней
месяца, Вы можете использовать (расширение GNU) модификатор `-' для
подавления набивки поля.
date -d=1may '+%B %-d'
- Чтобы напечатать текущее время и дату в формате, требуемом многими
не-GNU версиями `date' при установке системных часов:
date +%m%d%H%M%Y.%S
- Чтобы установить системные часы на две минуты вперед:
date --set='+2 minutes'
- Чтобы напечатать даьу в формате, определенном RFC-822, используйте
`date --frc'. Я только что сделал это и увидел:
Вск, 15 Апр 2001 15:15:10 +0400
- Чтобы преобразовать строку даты в число секунд с начала эпохи
(т.е. 1970-01-01 00:00:00 UTC), используйте параметр `--date'с форматом
`%s'. Это может быть полезно при сортировке и/или построении графиков
и/или сравнении данных по дате. Следующая команда выводит количество
секунд с начала эпохи для времени на одну секунду позже, в часовом поясе,
отличающемся на пять часов (Кембридж, Массачусеттс), т.о. общее время
пять часов и одна секунда с начала эпохи.
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
- Если Вы сортируете или строите графики датированных данных, Ваши
необработанные значения даты могут быть преобразованы в количество секунд
с начала эпохи. Но тольно несколько человек посмотрев на дату `9446684800'
заметят: "О, это первая секунда 2000 года".
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
Программа понимает следующие параметры. См. также раздел 2. Общие параметры.
- `-a'
-
- `--all'
-
Печатает всю информацию, описанную ниже.
- `-m'
-
- `--machine'
-
Печатает тип машины (аппаратного обеспечения)
- `-n'
-
- `--nodename'
-
Печатает имя хоста в сети.
- `-p'
-
- `--processor'
-
Печатает тип процессора машины.
- `-r'
-
- `--release'
-
Печатает релиз операционной системы.
- `-s'
-
- `--sysname'
-
Печатает имя операционной системы.
- `-v'
-
Печатает версию операционной системы.
Без аргументов `hostname' печатает имя текущей системы-хоста. С одним
аргументом она устанавливает текущее имя системы-хоста равное указанной
строке. Вы должны иметь соответсвующие привилегии для установки имени
системы-хоста. Синтаксис:
hostname [ИМЯ]
Параметрами являются `--help' и `--version'. См. раздел 2. Общие параметры.
[Содержание] [Назад] [Пред] [Вверх] [След] [Вперед]
Архив документации на OpenNet.ru