cal — отображение календаря в терминале Linux

cal — стандартная команда в Linux, которая печатает ASCII‑календарь для указанного месяца и года. Она очень компактна и удобна для быстрого просмотра дат прямо в терминале.
Что такое cal и ncal
cal — простая командная утилита для показа календарей в текстовом виде. ncal — альтернативная реализация (в Ubuntu часто поставляется вместе) с другими опциями и форматом вывода.
Определение в одну строку:
- cal — выводит календарь в привычном виде (недели по воскресеньям по умолчанию в некоторых реализациях).
- ncal — выводит компактный вертикальный или альтернативный формат и позволяет задавать первый день недели.
Важно: реализация cal может отличаться между дистрибутивами (FreeBSD‑версия в Ubuntu отличается от util-linux в других системах). Чтобы увидеть точную справку для вашей системы, используйте:
man calБазовое использование
Чтобы увидеть календарь текущего месяца, выполните:
calВ приведённом примере текущий день выделен. Команда не требует прав суперпользователя и быстро отвечает.
Полезные флаги и примеры
Показывать последние три месяца подряд:
cal -3Вывести календарь на весь год:
cal -yКалендарь для конкретного года:
cal -y 2020Календарь для заданного месяца и года (замените month и year цифрами):
cal month yearНапример, чтобы увидеть март 1973:
cal 3 1973ncal предоставляет дополнительные флаги. В Ubuntu ncal поддерживает опции для первого дня недели:
- -S — неделя начинается с воскресенья
- -M — неделя начинается с понедельника
ncal -S
ncal -MСовет: если вы используете cal в скриптах, вывод парсится легче, когда вы ограничиваете количество строк или используете постоянный формат. Для автоматизации предпочитайте ncal, если нужен более предсказуемый вертикальный формат.
Особый случай: сентябрь 1752
Если вы выполните:
cal 9 1752вы увидите странный календарь: дни переходят с 2‑го на 14‑е. Это не ошибка. В сентябре 1752 года Великобритания и её колонии перешли с юлианского календаря на григорианский и пропустили 11 дней. Исторический факт иногда виден в реализации cal по историческим причинам.
Факт: переходы календарей происходили в разные годы в разных странах; на практике это бывает заметно только при работе с историческими датами.
Когда cal не подходит
- Если вам нужен графический календарь с синхронизацией и напоминаниями, cal не подойдёт.
- Для локализации с нестандартным форматом дат или нестандартной первой неделей лучше использовать утилиты с поддержкой локали или локальные GUI‑клиенты.
- cal отображает исторические календари, но не интерпретирует временные зоны или переходы летнего времени.
Альтернативы:
- GNOME Calendar, KOrganizer, Thunderbird/Lightning — графические и синхронизируемые приложения.
- calcurse — текстовый календарь/органайзер с возможностью задач и напоминаний.
Ментальные модели и хитрости
- cal — «освоил и забыл»: запомните 2–3 флага (plain, -y, -3) и этого хватит для повседневных задач.
- ncal — используйте, если вам нужен вертикальный вывод или контроль первого дня недели.
- man cal — ваша «входная» справка: всегда проверяйте мануал для своей системы.
Шпаргалка: команды и примеры
- Текущий месяц:
cal- Последние три месяца:
cal -3- Весь год:
cal -y- Конкретный месяц и год:
cal 12 2024- Использование ncal с первой неделей в понедельник:
ncal -MРолевые чек‑листы
Для системного администратора:
- Проверить реализацию cal (man cal).
- В скриптах использовать ncal при необходимости стабильно парсить даты.
- Документировать поведение для старых/исторических дат, если критично.
Для разработчика автоматизации:
- Использовать стабильный вывод (ncal) для парсинга.
- Тестировать сценарии на пограничных датах (конец года, високосные года).
Мини‑методология для автоматизации с cal
- Выбор формата: cal для визуального, ncal для парсинга.
- Проверка реализации: man cal.
- Тестирование: прогон команд на целевых системах.
- Логирование: сохранять вывод при ошибках для отладки.
Ключевые числа и факты
- Пропущено 11 дней при переходе Британии на григорианский календарь (сентябрь 1752).
- cal — встроенная, лёгкая команда, не требует установки в большинстве дистрибутивов.
Примечание
Важно: поведение cal может отличаться между дистрибутивами. Перед внедрением в продуктивные скрипты проверьте man‑страницу и тестируйте вывод на целевой системе.
Краткое резюме
cal — удобный инструмент для быстрого просмотра календарей в терминале. Для большинства задач достаточно команд cal, cal -3 и cal -y. Если нужна стабильность формата и контроль первого дня недели, используйте ncal. Для графических нужд выбирайте полноценные календарные приложения.
Ключевые выводы:
- cal быстро показывает месяц и год в ASCII.
- ncal даёт дополнительные опции и удобен для парсинга.
- Исторические особенности (как сентябрь 1752) отражают реальные изменения календарей.
Важно: читайте man cal на своей системе, чтобы избежать сюрпризов в поведении.
Критерии приёмки
- Команда cal выводит ожидаемый месяц в терминале.
- Для скриптов формат вывода согласован с использованием ncal.
- Документация команды доступна через man cal.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone