Карманный справочник The Debian Cookbook



31 коммент.
Время от времени я забываю некоторые детали настройки Linux и поэтому сам же часто читаю свой блог. Однако иногда я оказываюсь там, где интернетов нет, а лезть в архивы своего блога долго. И тут, после очередного полученного мной электронного письма с вопросом "а не планируете ли вы засесть за книгу" меня посетила мысль изваять свой хендбук. Гентушники вон сделали, а что, дебианщики жиже? :-) Ничуть.


Debian Cookbook - поваренная книга
В общем, не буду долго томить: есть пре-альфа версия The Debian Cookbook, как я его пока назвал. Ведётся разработка на Google Code, репозиторий Mercurial/HG
The Debian Cookbook project
[ссылка на PDF]
Идея проста: я прохожусь по тегам поста и собираю конкретные рецепты. Дальше копирую в кратком виде в LaTeX и распечатываю под свой ежедневник. Cookbook призвано оправдать своё название - это карманный справочник рецептов. Производные работы приветствуются, дополнения и патчи тем более.

Чтобы отслеживать возможность скачать новую версию, можно подписаться на RSS-ленту разработки: забрать RSS.

По мере моих скромных сил я буду пополнять этот файл и выкладывать его, а уважаемые комментаторы приглашаются покидать в автора помидорами и высказать конструктивную критику.
Читать далее

Дата и время в Linux



19 коммент.
В UNIX время имеет огромное значение: демоны вылязят для свершения тёмных злодеяний по crontab, в логах фиксируется время сообщений, а файловые системы хранят информацию о том, когда файл в последний раз обновлялся. Для поддержания времени есть в Linux есть команда date, и у неё есть множество других замечательных возможностей, о которых владельцы UNIX-систем могут и не догадываться. Итак...


Дата и время
Просто просмотреть время в Linux можно командой:
$ date

Чтв Авг 21 14:07:23 MSD 2008

Чтобы изменить время часов, нужно заделаться рутом и написать:
$ date MMDDhhmm
То есть в виде МесяцДеньЧасМинута, остальное [MMDDhhmm[[CC]YY][.ss]] по вкусу. Об это хорошо (и главное в самом верху) написано в мануале man date, однако остальное писалось, по всей видимости, роботами для роботов.

Среди функций date есть также вычисление дат. Например, вы хотите узнать, какое число было вчера:
$ 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 часы будут работать одинаково.



Ссылки
Пост основан на материалах ЛинСовета и конкретно на этом посте ув.тов.
Читать далее