LINUX.ORG.RU

cal в Debian 6: как сделать, чтобы первым днём недели выводился понедельник


1

1

В Дебиане-6 cal не имеет опции, чтобы выводить первым днём недели понедельник.

Проблема неоднократно решалась:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=230004
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=609871

Несмотря на это, в Squeeze она так и не решена :-)

Оказывается, в Дебиане-6 используется «неправильный» cal из bsdmainutils, а есть ещё «правильный» cal из util-linux.

Поэтому можно просто взять cal из util-linux. Например, вот эта версия компилируется под Дебианом-6.0.4 без проблем:

ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.21/util-linux-2.21-rc2.tar.xz

Распаковываем, configure, make. Но не надо делать make install! Дело в том, что util-linux в Дебиане уже есть (без cal'а).

После компиляции берём получившийся файл cal и кладём в /usr/local/bin; файл cal.1 кладём в /usr/local/share/man/man1.

В системе будут сразу 2 cal'а: старый в /usr/local и новый в /usr/local. Общеизвестно, что файлы в /usr/local просматриваются «первее» файлов из /usr, поэтому вызываться будет «правильный» cal.

Открываем новую вкладку терминала (в старой может не сработать) и проверяем результат. cal -m должно дать то, что нужно.

Решение простое, но вдруг кому поможет сэкономить время :-)



Последнее исправление: sergey_feo (всего исправлений: 3)

сразу 2 cal'а: старый в /usr/local и новый в /usr/local

Уверен, что 2 файла с одинаковым именем будут в одном каталоге.

Открываем новую вкладку терминала (в старой может не сработать)

О Боже! Сделай меня это развидеть и расскажи sergey_feo о замечательной команде «hash -r».

Распаковываем, configure, make.

А по-человечески не осилил?

gentoo_root ★★★★★
()

компилляции

ВНЕЗАПНО, compile пишется с одной l, и компиляция тоже с одной л.

И да, калом всё равно никто не пользуется, лучше бы рассказал, как сделать то же самое в календаре gnome-shell.

gentoo_root ★★★★★
()

А какой день недели выводится первым?

kitar ★★★★★
()

А ещё можно запускать ncal.

Что интересно, как описанная в man опция -M, так и предложенная в багрепорте -m не работают, как хотелось бы, если вызывать ncal как cal.

AITap ★★★★★
()

В Дебиане-6 cal не имеет опции, чтобы выводить первым днём недели понедельник.

Номер багрепорта в Debian Bugzilla? %Ну ты понел.%

anonymous
()

Проще алиас на ncal поставить если это так важно.

anonymous_sama ★★★★★
()
Ответ на: комментарий от drBatty

в KDE 4.7.4 в календаре первым выводится понедельник, если по-русски.

Гном3 в своём репертуаре. Что в КДЕ всё работает, я знаю. В гноме2 тоже, кажется, работало.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

сразу 2 cal'а: старый в /usr/local и новый в /usr/local

Ой :-)

О Боже! Сделай меня это развидеть и расскажи sergey_feo о замечательной команде «hash -r».


Спасибо, не знал. Век живи — век учись.

Распаковываем, configure, make.

А по-человечески не осилил?

А по-человечески — это как?

ВНЕЗАПНО, compile пишется с одной l, и компиляция тоже с одной л.

Совершенно согласен. Не понимаю, почему меня постоянно тянет написать с двумя.

И да, калом всё равно никто не пользуется, лучше бы рассказал, как сделать то же самое в календаре gnome-shell.

Я не пользуюсь gnome-shell'ом.

sergey_feo
() автор топика
Ответ на: комментарий от GotF

Так дни недели будут столбиком, а я хочу строчкой.

Кстати, есть ещё всякие gcal, pcal и прочие, я много чего попробовал. То локаль не уважают, то с форматированием вывода проблемы. Самым простым оказалось заменить cal.

sergey_feo
() автор топика
Ответ на: комментарий от GotF

У тебя Debian GNU/Linux? И что, неужели при выполнении этой команды получаешь вывод, начинающийся с понедельника?

anonymous
()
Ответ на: комментарий от anonymous

У тебя Debian GNU/Linux? И что, неужели при выполнении этой команды получаешь вывод, начинающийся с понедельника?

С опцией -m:

cal -m
    Февраль 2012    
Пн Вт Ср Чт Пт Сб Вс
       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

http://img.flashtux.org/img13302922a6bdx34a900b9.png

У вас изображено примерно так:

ncal -M
    Февраль 2012
Пн     6 13 20 27
Вт     7 14 21 28
Ср  1  8 15 22 29
Чт  2  9 16 23
Пт  3 10 17 24      
Сб  4 11 18 25
Вс  5 12 19 26

Дни недели расположены в столбик. Я так не люблю, мне нравится как показано выше — в строчку.

И даже так!

cal -N -b -M

А вот на это у меня ни один из cal'ов не соглашается.

Встроенный в Дебиан 6 (из bsdmainutils 8.0.13):

$ /usr/bin/cal -N -b -M
/usr/bin/cal: неверный ключ — «N»
usage: cal [-hjy] [[month] year]
       cal [-hj] [-m month] [year]
       ncal [-hJjpwy3MS] [-s country_code] [[month] year]
       ncal [-hJeo] [year]


Из util-linux 2.21rc2:

$ /usr/local/bin/cal -N -b -M
/usr/local/bin/cal: неверный ключ — «N»

Usage:
 cal [options] [[[day] month] year]

Options:
 -1, --one        show only current month (default)
 -3, --three      show previous, current and next month
 -s, --sunday     Sunday as first day of week
 -m, --monday     Monday as first day of week
 -j, --julian     output Julian dates
 -y, --year       show whole current year
 -V, --version    display version information and exit
 -h, --help       display this help text and exit
sergey_feo
() автор топика

$ LANG=C cal; LANG=ru_RU.utf8 cal
February 2012
Su Mo Tu We Th Fr Sa
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

Февраль 2012
Пн Вт Ср Чт Пт Сб Вс
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

AnDoR ★★★★★
()
Ответ на: комментарий от sergey_feo

А по-человечески — это как?

В Дебиане, вообще-то, можно пакеты собирать. Это ж не LFS какой-нибудь, где всё через make install.

gentoo_root ★★★★★
()
2 января 2013 г.

Поработаю некропостером чуть-чуть, ибо тоже заметил эту кривизну cal и нашёл это обсуждение в гугле. Может, кому-то будет полезно. Если сделать алиас не просто на ncal -M, а ещё добавить ключ -C, то получится как раз то, что и хотел ТС: начало с понедельника, дни недели в строчку. Если кто не знает, в файле ~/.bashrc добавляем строку:

alias cal='ncal -M -C'
И тогда имеем, например:
~$ cal 1 2013
   Студзень 2013      
Па Аў Ср Чц Пя Су Ня  
    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           

LexArt ★★
()
Ответ на: комментарий от LexArt

Насчет того, что воскресенье - это Ня, готов согласиться, а вот остальные сокращения вызывают недоумение.

Deleted
()
Ответ на: комментарий от Deleted

Главное, что воскресенье ня! Хотя в локали be_BY двухбуквенные обозначения дней недели как раз нетрадиционные. Обычно так: пн, аў, ср, чц, пт, сб, нд. Надо будет поправить, кстати.

LexArt ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.