$ date --date="yesterday" +%F
или
$ date --date="1 days ago" +%F
2008-08-13
Или, скажем, какое число будет в воскресенье через две недели:
$ date --date="sunday next 2 week"
Sun Aug 31 01:00:00 EEST 2008
Если специально не оговаривать срок, то названия дней недели командой date будут восприниматься как ближайшие. Например, узнать дату ближайшей пятницы:
$ date --date="friday" +%F
2008-08-15
Тот же результат вы получите, если добавите ко дню недели слово
this то есть
date --
date="this friday" +
%F
Прошедшие дни недели указываются при помощи ключевого слова
last например, какое число было в прошлую пятницу:
$ date --date="last friday" +%F
2008-08-08
Думаю, что это хороший повод ещё разок за рюмкой чая почитать man date
здесь (на русском).
Консольный календарь в LinuxА ещё можно смотреть не просто на даты, а на календарик в консоли - для этого есть замечательная команда
cal - без параметров она выдаст календарь на текущий месяц:
Июль 2009
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Если же вам нужен календарь на год:
$ cal 2009
получим календарь на 2009 год. Календарь на месяц можно приготовить так:
$ cal 02 2009
выдаст календарь на февраль 2009 года. Помимо cal существует также ncal — Если же нужен «вертикальный» календарик, вроде
Февраль 2010
Пн 1 8 15 22
Вт 2 9 16 23
Ср 3 10 17 24
Чт 4 11 18 25
Пт 5 12 19 26
Сб 6 13 20 27
Вс 7 14 21 28
это можно сделать с помощью команды ncal. Хотя на самом деле, cal в современных дистрибутивах - просто ссылка на ncal, который смотрит как его вызвали и решает, симулировать ли ему поведение cal.
Ещё у команде cal очень полезен ключ -3, показывает текущий месяц, предыдущий и слудующий:
$ cal -3
и получаем:
Февраль 2012 Март 2012 Апрель 2012
Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5 1 2 3 4 1
6 7 8 9 10 11 12 5 6 7 8 9 10 11 2 3 4 5 6 7 8
13 14 15 16 17 18 19 12 13 14 15 16 17 18 9 10 11 12 13 14 15
20 21 22 23 24 25 26 19 20 21 22 23 24 25 16 17 18 19 20 21 22
27 28 29 26 27 28 29 30 31 23 24 25 26 27 28 29
30
Вызвав ncal с полезной опцией -w:
$ ncal -w
получим календарик с номерами недель:
$ ncal -w 02 2009
Февраль 2009
Пн 2 9 16 23
Вт 3 10 17 24
Ср 4 11 18 25
Чт 5 12 19 26
Пт 6 13 20 27
Сб 7 14 21 28
Вс 1 8 15 22
5 6 7 8 9
Кстати, этот вывод очень хорошо вставляется в Inkscape и далее можно быстро набросать простой календарик для ежедневника.
Часовые пояса в LinuxЕсли вы куда-то далеко переезжаете, то потребуется на ноутбуках менять часовые пояса. Тут нас выручит утилита tzselect. Для этого можно использовать утилиты tzselect (выбрать часовой пояс временно) и tzconfig (поставить часовой пояс постоянно). Например, быстренько посмотреть, сколько времени сейчас на другом конце света можно так:
dot:/home/dot# tzconfig
WARNING: the tzconfig command is deprecated, please use:
dpkg-reconfigure tzdata
dot:/home/dot
Чтобы не пришлось делать это каждый раз, конфигурируем наши часовые пояса с помощью:
# dpkg-reconfigure tzdata
Current default timezone: 'Australia/Sydney'
Local time is now: Wed Feb 24 09:08:35 EST 2010.
Universal Time is now: Tue Feb 23 22:08:35 UTC 2010
Всё, теперь будет установлено Австралийское время.
Часы в Windows и Linux при двойной загрузкеЕсли у вас на одном компьютере Windows и Linux, то после загрузки Windows часы в Linux будут идти неправильно. Дело в том, что Linux устанавливает часы по GMT, и не важно, в каком часовом поясе (time zone) вы живёте. Далее, в зависимости от часового пояса, время добавляется или отнимается, чтобы получилось правильное время. Это
стандарт, и Linux его соблюдает. Продукция Майкрософт
никогда не славилась соблюдением стандартов, и это большая проблема Майкрософт: Windows при загрузке устанавливает часы иначе.
Логичным шагом было бы исправть это в Windows, однако это проще сделать в Linux. Для этого редактируем файл:
sudo vim /etc/default/rcS
и исправляем параметр с
UTC=yes
на
UTC=no
Сохраняем изменения и выходим. Теперь в Linux и Windows часы будут работать одинаково.
СсылкиПост основан на материалах ЛинСовета и конкретно на этом
посте ув.тов.
bliznezz.
Спасибо ув.тов. Minoru за напоминание про ncal.