[Содержание]   [Назад]   [Пред]   [Вверх]   [След]   [Вперед]  


10. Системный контекст

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

10.1 `date': Вывод или установка системной даты и времени

`date' без параметров печатает текущее время и дату, с формате директивы `%c' (описанной ниже). Синтаксис:

     date [ПАРАМЕТР]... [+ФОРМАТ]
     date [-u|--utc|--universal] [ MMDDHHMM[[CC]YY][.SS] ]

Если дан аргумент, начинающийся с `+', `date' печатает текущее время и дату (или время и дату указанные параметром `--date', см. ниже) в формате, определяемом этим аргументом, который такой же как в функции `strftime'. Исключая директивы, начинающиеся с `%', символы в строке формата печатаются без изменений. Диретивы описаны ниже.

10.1.1 Директивы времени

Директивы `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'.

10.1.2 Директивы даты

Директивы `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....)

10.1.3 Символьные директивы

Директивы `date' выдающие сивольные строки.

`%%'
символ %
`%n'
новая строка
`%t'
горизонтальная табуляция

10.1.4 Набивка

По умолчанию `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

10.1.5 Установка времени

Если передан аргумент, не начинающийся с `+', `date' устанавливает системные часы на дату и время, указанные этим аргументом (как описано ниже). Вы должны иметь соответсвующие права для установки системного времени. Параметры `--date' и `--set' не могут быть использованы с таким аргументом. Параметр `--universal' может быть использован с таким аргументом для обозначения того, что указанное время и дата относительны к Coordinated Universal Time, на не кмесному часовому поясу.

Аргумент должен состоять только из цифр, имеющих следующее значение:

`ММ'
месяц
`ДД'
день месяца
`ЧЧ'
часы
`ММ'
минуты
`ВВ'
первые две цифры года (необязательные)
`ГГ'
последние две цифры года (необязательные)
`СС'
секунды (необязательные)

Параметр `--set' также устанавливает системные часы; см. следующий раздел.

10.1.6 Параметры `date'

Программа понимает следующие параметры. См. также раздел 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, вместо местного времени.

10.1.7 Примеры использования `date'

Вот несколько примеров. См. также описание параметра `-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
    

10.2 `uname': Вывод инфомации о системе

`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'
Печатает версию операционной системы.

10.3 `hostname': Вывести или установить имя системы

Без аргументов `hostname' печатает имя текущей системы-хоста. С одним аргументом она устанавливает текущее имя системы-хоста равное указанной строке. Вы должны иметь соответсвующие привилегии для установки имени системы-хоста. Синтаксис:

     hostname [ИМЯ]

Параметрами являются `--help' и `--version'. См. раздел 2. Общие параметры.


[Содержание]   [Назад]   [Пред]   [Вверх]   [След]   [Вперед]  

Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости