CAL(1) Polecenia użytkownika CAL(1)

cal - wyświetla kalendarz

cal [opcje] [[[dzień] miesiąc] rok]

cal [opcje] [znacznik-czasu|nazwa-miesiąca]

cal wyświetla prosty kalendarz. Jeśli nie poda się argumentów, wyświetlany jest bieżący miesiąc.

Miesiąc można podać jako liczbę (1-12), nazwę miesiąca lub skróconą nazwę miesiąca zgodnie z bieżącymi ustawieniami regionalnymi (locale).

Używane są dwa różne kalendarze - gregoriański i juliański. Są to niemal identyczne systemy, z tą różnicą, że gregoriański bierze niewielką poprawkę na częstość lat przestępnych; dzięki temu poprawia się synchronizacja ze zdarzeniami słonecznymi, takimi jak równonoce. Reformę kalendarza gregoriańskiego ogłoszono w roku 1582 (w tym w Polsce), ale wprowadzano go aż do 1923. Domyślną datą wprowadzenia reformy używaną przez cal jest 3 września 1752. Od tej daty wyświetlany jest kalendarz gregoriański; poprzednie wyświetlane są w systemie kalendarza juliańskiego. W momencie wprowadzenia usunięto 11 dni, aby zsynchronizowań kalendarz ze zdarzeniami słonecznymi. Wrzesień roku 1752 jest więc mieszanką dat juliańskich i gregoriańskich, dlatego po 2. następuje 14. (daty od 3. do 13. nie występują).

Opcjonalnie, można używać kalendarza gregoriańskiego (w tym retroaktywnie), albo wyłącznie kalendarza juliańskiego. Zob. opcja --reform poniżej.

-1, --one

Wyświetla pojedynczy miesiąc (tak jest domyślnie).

-3, --three

Wyświetla trzy miesiące otaczające datę.

-n , --months liczba

Wyświetla liczbę miesięcy, zaczynając od miesiąca zawierające datę.

-S, --span

Wyświetla miesiące otaczające datę.

-s, --sunday

Wyświetla niedzielę jako pierwszy dzień tygodnia.

-m, --monday

Wyświetla poniedziałek jako pierwszy dzień tygodnia.

-v, --vertical

Korzysta z pionowego układu wyświetlania (inaczej tryb ncal(1)).

--iso

Korzysta (w tym retroaktywnie) tylko z kalendarza gregoriańskiego. Opcja ta nie wpływa na numery tygodni i pierwszy dzień tygodnia. Zob. --reform poniżej.

-j, --julian

Używa numerowania dni roku we wszystkich kalendarzach. Zakres numerów porządkowych dni wynosi od 1 do 366. Opcja ta nie przełącza z systemu gregoriańskiego na juliański; za to odpowiada opcja --reform.

W języku angielskim, kalendarze gregoriańskie korzystające z numerów porządkowych dni roku są czasem zwane kalendarzami juliańskimi. Może być to mylące, ponieważ wiele konwencji dotyczących dat ma w swej nazwie "juliański": data juliańska (porządkowa), data juliańska (kalendarzowa), data juliańska (astronomiczna), data juliańska (zmodyfikowana) itd. Ta opcja nosi nazwę "julian", ponieważ numery porządkowe dni są tak identyfikowane w standardzie POSIX. Proszę jednak mieć świadomość, że cal korzysta również z systemu kalendarze juliańskiego. Zob. OPIS powyżej.

--reform wartość

Opcja ustawia datę wprowadzenia reformy kalendarza gregoriańskiego. Daty sprzed reformy korzystają z systemu kalendarza juliańskiego. Daty po reformie korzystają z systemu kalendarza gregoriańskiego. Argumentem wartość może być:
1752 - ustawia 3 września 1752 r. jako datę reformy (tak jest domyślnie). W tym dniu reforma kalendarza gregoriańskiego została wprowadzona w Imperium Brytyjskim.
gregorian - korzysta tylko z kalendarza gregoriańskiego. Ta wartość specjalna ustawia datę reformy na wcześniej, niż najwcześniejszy rok, jakiego może użyć cal; co oznacza że wszystkie wyświetlane daty będą korzystały z systemu kalendarza gregoriańskiego. Daty przed utworzeniem systemu kalendarza gregoriańskiego będą retroaktywnie ekstrapolowane.
iso - alias wartości gregorian. Standard ISO 8601 do wymiany dat wymaga korzystania z (retroaktywnego) kalendarza gregoriańskiego.
julian - korzysta tylko z kalendarza juliańskiego. Ta wartość specjalna ustawia datę reformy na później, niż najpóźniejszy rok, jakiego może użyć cal; co oznacza że wszystkie wyświetlane daty będą korzystały z systemu kalendarza juliańskiego.

Zob. OPIS powyżej.

-y, --year

Wyświetla kalendarz na cały rok.

-Y, --twelve

Wyświetla kalendarz na dwanaście kolejnych miesięcy.

-w, --week[=liczba]

Display week numbers in the calendar according to the US or ISO-8601 format. If a number is specified, the requested week in the desired or current year will be printed and its number highlighted. The number may be ignored if month is also specified.

If the number is specified but the current day is unspecified on the command line, then the current day is not highlighted.

Więcej szczegółów w rozdziale UWAGI.

--color[=kiedy]

Koloryzuje wynik. Opcjonalnym argumentem kiedy może być auto, never (nigdy) lub always (zawsze). Gdy nie poda się argumentu kiedy, domyślnym ustawieniem jest auto. Kolory mogą być wyłączone; aktualne wbudowane ustawienie domyślne pokaże opcja --help. Zob. również rozdział KOLORY.

-c, --columns=kolumny

Liczba używanych kolumn. Wartość auto użyje tylu, ile zmieści się na terminalu.

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

Pojedynczy parametr liczbowy (np. "cal 2020")

Określa wyświetlany rok; trzeba podać pełny rok: cal 89 nie wyświetli kalendarza na rok 1989.

Pojedynczy parametr tekstowy (np., 'cal tomorrow' lub 'cal sierpień')

Określa znacznik-czasu lub nazwę-miesiąca (lub jej trzyliterowy skrót), zgodnie z bieżącymi ustawieniami regionalnymi (locale).

Przy przetwarzaniu znacznika-czasu akceptowane są następujące wartości specjalne: "now" oznacza chwilę bieżącą, "today", "yesterday", "tomorrow" oznaczają odpowiednio, dziś, wczoraj i jutro.

Akceptowane są również relatywne określenia daty, w takim przypadku "+" jest obliczany jako chwila obecna plus podany czas. Odpowiednio, data poprzedzona znakiem "-" oznacza chwilę obecną minus podany czas np. "+2days" (dwa dni naprzód). Zamiast poprzedzać określenie czasu znakami "+" lub "-", można po nim podać słowo "left" lub "ago" oznaczające przeszłość (np. "1 week ago" - 1 tydzień temu).

Dwa parametry (np. "cal 11 2020")

Wskazuje miesiąc (1 - 12) i rok.

Trzy parametry (np. "cal 25 11 2020")

Oznacza dzień (1-31), miesiąc i rok, przy czym jeśli kalendarz jest wyświetlany na terminalu, dzień zostanie podświetlony. Jeśli nie poda się żadnych parametrów, wyświetlany jest kalendarz dla bieżącego miesiąca.

Rok zaczyna się 1 stycznia. Pierwszy dzień tygodnia zależy od ustawień regionalnych (locale) albo opcji --sunday lub --monday.

Numerowanie tygodni zależy od wyboru pierwszego dnia tygodnia. Jeśli będzie to niedziela, stosowany jest zwyczaj amerykański, w którym 1 stycznia wypada w 1. tygodniu. Jeśli będzie to poniedziałek, stosowane jest standardowe numerowanie tygodni ISO 8601, w którym pierwszy czwartek wypada w 1. tygodniu.

Kolorowanie wyjściowe zaimplementowano poprzez terminal-colors.d(5). Jawne kolorowanie można wyłączyć za pomocą pustego pliku

/etc/terminal-colors.d/cal.disable

dla polecenia cal albo dla wszystkich narzędzi plikiem

/etc/terminal-colors.d/disable

Od wersji 2.41, obsługiwana jest również zmienna środowiskowa $NO_COLOR, służąca do wyłączenia kolorowania wyjścia, o ile nie włączy się je wprost opcją wiersza poleceń.

Globalne ustawienie przesłonią $XDG_CONFIG_HOME/terminal-colors.d lub $HOME/.config/terminal-colors.d danego użytkownika.

Proszę zauważyć, że kolorowanie wyjścia może być domyślnie włączone i wówczas katalogi terminal-colors.d mogą jeszcze nie istnieć.

Logiczne nazwy kolorów obsługiwane przez cal to:

today

Dziś.

weeknumber

Numer tygodnia zażądany opcją wiersza poleceń --week=<liczba>.

weeks

Numer tygodnia.

header

Nagłówek miesiąca.

workday

Dni robocze.

weekend

Dni weekendu.

Na przykład:

echo -e 'weekend 35\ntoday 1;41\nheader yellow' > $HOME/.config/terminal-colors.d/cal.scheme

Polecenie cal pojawiło się w wersji 6 AT&T UNIX.

Domyślne wyjście cal używa 3 września 1752 jako daty kalendarze gregoriańskiego. Historyczne daty wprowadzenia reformy w innych państwach (w tym w Polsce), łącznie z jej ogłoszeniem w październiku 1582 r., nie są zaimplementowane.

Alternatywne kalendarze, takie jak saudyjski kalendarz Umm al-Qura, islamski kalendarz słoneczny (hijri), kalendarz etiopski (gyyz) lub indyjski kalendarz księżycowo-słoneczny nie są obsługiwane.

terminal-colors.d(5)

Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.

Polecenie cal jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.

2026-06-16 util-linux 2.42.2