Гид по технологиям

Команда cal в Linux: как выводить календарь в терминале

• 4 min read • Linux • Обновлено 29 Nov 2025
Команда cal в Linux — календарь в терминале
Команда cal в Linux — календарь в терминале

Календарь с линейкой и ручкой

Использование терминала Linux может быть таким увлекательным, что вы теряете счёт дням. К счастью, в Linux есть команда, которая выводит календарь прямо в терминал. Cal — стандартная утилита, печатающая ASCII‑календарь для заданного месяца и года.

В этой статье коротко разберём cal, его ключевые опции и способы применения на вашей системе Linux.

Основы: как быстро получить календарь

Чтобы увидеть календарь текущего месяца, введите в терминале:

cal

Вывод команды cal в терминале

В этой реализации текущая дата подсвечивается. На скриншоте это было 16 марта 2021 года.

Частые опции и примеры

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

  • Показать последние три месяца:
cal -3

Трёхмесячный календарь

  • Показать весь год:
cal -y

Календарь на весь год

  • Показать конкретный год:
cal -y 2020

Календарь на конкретный год

  • Показать конкретный месяц и год (замените month и year на числа):
cal 3 1973

Пример выше выведет календарь за март 1973 года. В этот день, 1 марта 1973 года, вышел альбом Pink Floyd «The Dark Side of the Moon», что для многих является запоминаемой датой.

Календарь конкретного месяца

ncal и начало недели

В Ubuntu и некоторых других дистрибутивах вы можете вызывать ncal. Утилита ncal предлагает дополнительные представления и флаги, например -S и -M для установки первого дня недели воскресенья или понедельника.

ncal -M    # неделя начинается с понедельника
ncal -S    # неделя начинается с воскресенья

ncal с опцией начала недели

Примечание: отображение начала недели и формат дат может зависеть от локали системы (переменные окружения LANG/LC_TIME).

Почему в сентябре 1752 пропали дни

Если вы выполните команду:

cal 9 1752

то увидите странный календарь, где дни переходят с 2 на 14. Это не баг. В сентябре 1752 года Великобритания и её колонии (включая территории, которые позже стали Канадой и США) перешли с юлианского календаря на григорианский. В результате 11 дней были исключены, чтобы синхронизировать календарь с астрономическим годом.

Календарь сентября 1752 года

Важно: другие страны меняли календари в разные годы, поэтому странные пропуски дат могут появляться и в других исторических календарях.

Быстрая шпаргалка: полезные команды

cal                # календарь текущего месяца
cal -3             # предыдущий, текущий и следующий месяцы
cal -y             # весь текущий год
cal -y 1999        # весь год 1999
cal 12 2025        # декабрь 2025
ncal -M            # ncal, неделя с понедельника
man cal            # страница руководства

Копируйте эти команды в терминал и подставляйте нужные числа.

Чеклист для ролей

  • Для системного администратора:

    • Убедитесь, что локаль сервера установлена правильно (проверьте LANG/LC_TIME).
    • Используйте man cal для проверки доступных флагов на конкретном хосте.
  • Для разработчика или скрипт‑автора:

    • Пропишите в скриптах явные форматы даты (ISO 8601) вместо чтения ASCII‑календаря.
    • Для обработки дат используйте утилиты date или библиотеки языка программирования.
  • Для обычного пользователя:

    • Используйте cal для быстрого просмотра дат и планирования.
    • Попробуйте ncal для альтернативного отображения недель и вертикального формата.

Советы по чтению man и мини‑методология изучения команды

  1. Откройте man‑страницу: man cal.
  2. Просмотрите SYNOPSIS и OPTIONS — они кратко описывают флаги.
  3. Исключите лишние флаги и протестируйте пару команд в терминале.
  4. Если man кажется длинным, используйте man cal | col -b | sed -n '1,120p' для просмотра первых строк, либо ищите краткие примеры в интернете.

Отличия версий и совместимость

Существуют разные реализации календарных утилит. Поведение может отличаться в следующих аспектах:

  • Отображение текущего дня (подсветка) и формат вывода.
  • Набор поддерживаемых флагов (например, некоторые сборки предлагают дополнительные параметры).
  • Начало недели по умолчанию — зависит от локали или сборки (BSD vs GNU/другое).

Если команда на вашем хосте отличается от примеров, посмотрите man cal и cal --help.

Краткий справочник по принятым решениям (Decision flow)

flowchart TD
  A[Нужно быстро посмотреть дату?] -->|Да| B[cal]
  A -->|Хочу несколько месяцев| C[cal -3]
  A -->|Хочу весь год| D[cal -y]
  C --> E{Нужен формат недели}
  E -->|Пн| F[ncal -M]
  E -->|Вс| G[ncal -S]

Глоссарий (одна строка каждое определение)

  • cal — утилита для вывода ASCII‑календаря в терминале.
  • ncal — альтернативная реализация с другими представлениями и флагами.
  • Локаль (LANG/LC_TIME) — настройки системы, определяющие формат даты и начало недели.
  • Юлианский/Григорианский календарь — исторические системы счёта дней, смена которых изменяла даты.

Когда cal не подходит и альтернативы

  • Для машинной обработки дат используйте date, GNU date или библиотеки языка программирования (Python datetime, JavaScript Date). Cal предназначен для визуального просмотра человеком.
  • Для графических календарей используйте GUI‑приложения (GNOME Calendar, Thunderbird/Lightning и пр.).

Короткое резюме

  • cal — удобный инструмент для быстрого просмотра календаря в терминале.
  • Основные флаги: -3 для трёх месяцев, -y для года, использование ncal меняет отображение и позволяет задать первый день недели.
  • Исторические аномалии, вроде сентября 1752 года, объясняются переходом с юлианского на григорианский календарь.

Важно: перед использованием в скриптах проверяйте поведение cal на вашей системе через man или –help.

Краткие выводы ниже.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро