blank

Kalendarze w linii komend Linux – cal

Artykuł ten otwiera krótką serię na naszym blogu dotyczącą używania kalendarzy z linii poleceń w systemie Linux. Na pierwszy ogień trafia znane wszystkim administratorom polecenie cal. Następnie przejdziemy do bardziej zaawansowanych projektów, pozwalających na wykorzystanie dużo bardziej praktycznych kalendarzy internetowych. Instalacja cal Nazwa programu cal, jak łatwo zauważyć, jest po prostu skrótem od angielskiego CALendar. […]

Artykuł ten otwiera krótką serię na naszym blogu dotyczącą używania kalendarzy z linii poleceń w systemie Linux. Na pierwszy ogień trafia znane wszystkim administratorom polecenie cal. Następnie przejdziemy do bardziej zaawansowanych projektów, pozwalających na wykorzystanie dużo bardziej praktycznych kalendarzy internetowych.

Instalacja cal

Nazwa programu cal, jak łatwo zauważyć, jest po prostu skrótem od angielskiego CALendar. Program cal jest częścią pakietu util-linux. Pakiet ten zawiera szereg niskopoziomowych narzędzi systemowych, które są niezbędne do funkcjonowania systemu. Poniżej znajduje się krótki przykład dla EuroLinuxa w wersji 7. W celu nadania mniej rozwlekłej formy, tak zwanej zachętki (ang. prompt), pozwoliłem sobie wykonać następującą komendę export PS1='\u@\h: '.

rick@portal$ rpm -qf $(which cal)
util-linux-2.23.2-59.el7.x86_64
rick@portal$ rpm -ql $(rpm -qf $(which cal)) | grep bin | head -10
/usr/bin/cal
/usr/bin/chfn
/usr/bin/chmem
/usr/bin/chrt
/usr/bin/chsh
/usr/bin/col
/usr/bin/colcrt
/usr/bin/colrm
/usr/bin/column
/usr/bin/dmesg

Jak widać, oprócz cal mamy tutaj do czynienia także z podstawowymi komendami, jak choćby ostatni dmesg. Jako że utils-linux jest pakietem wymaganym w niemalże każdej instalacji Linuxa oraz w każdej instalacji Enterprise Linux, nie istnieje dalsza potrzeba opisywania zagadnienia instalacji.

Użycie cal

Przy wywołaniu cal bez jakiegokolwiek argumentu, dostaniemy informację o bieżącym miesiącu. Obecny dzień zostanie zaznaczony przy pomocy odwrócenia kolorów (tło i kolor główny) wypisywanego tekstu.

rick@portal$ cal 
     March 2019     
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 30
31

Jednym z użyteczniejszych przełączników przy użyciu cal jest -m lub --monday, który jako pierwszy dzień tygodnia ustawia poniedziałek zamiast niedzieli.
Do innych przydatnych przełączników należy -y lub --year, odpowiedzialny za wyświetlenie całego roku oraz -3 lub --three, który pokazuje poprzedni, obecny i przyszły miesiąc.

Przykładowe użycie:

rick@portal$ cal -m -3
    February 2019          March 2019            April 2019     
Mo Tu We Th Fr Sa Su  Mo Tu We Th Fr Sa Su  Mo Tu We Th Fr Sa Su
             1  2  3               1  2  3   1  2  3  4  5  6  7
 4  5  6  7  8  9 10   4  5  6  7  8  9 10   8  9 10 11 12 13 14
11 12 13 14 15 16 17  11 12 13 14 15 16 17  15 16 17 18 19 20 21
18 19 20 21 22 23 24  18 19 20 21 22 23 24  22 23 24 25 26 27 28
25 26 27 28           25 26 27 28 29 30 31  29 30

Oprócz wybierania różnych opcji/przełączników możemy także podać miesiąc oraz rok, który nas interesuje. Dla przykładu cal 2020 pokaże nam cały 2020 rok. Możemy jednak, zamiast roku wskazać miesiąc. Chcąc na przykład sprawdzić, jak będzie wyglądał miesiąc, w którym mamy zamiar się urlopować (lipiec), możemy wykonać:

rick@portal$ cal -m 7 2019
      July 2019     
Mo Tu We Th Fr Sa Su
 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

Całość komendy jak zwykle bardzo jasno przedstawia format zapisu streszczenia komendy wg konwencji GNU.

cal [options] [[[day] month] year]

Ostatnią poradą jest dodanie następującego aliasu dla cal:

echo "alias cal='cal -m' >> ~/.bashrc

Zakończenie

Jak zwykle dziękuję Państwu za czas poświęcony na czytanie EuroLinuksowego bloga oraz zachęcam do śledzenia naszych artykułów za pośrednictwem mediów społecznościowych lub zapisu na newsletter, a dla osób, które chcą przeczytać więcej o cal, polecam manual – man 1 cal.

blank Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.