Bạn có bao giờ đang làm việc trên terminal Linux và chợt cần xem ngày tháng mà không muốn phải mở một ứng dụng lịch đồ họa riêng biệt không? Việc chuyển đổi qua lại giữa các cửa sổ có thể làm gián đoạn quy trình làm việc của bạn. Đây là một vấn đề nhỏ nhưng lại thường xuyên xảy ra, đặc biệt với các quản trị viên hệ thống hay lập trình viên dành phần lớn thời gian trên giao diện dòng lệnh. May mắn thay, Linux là gì cung cấp một giải pháp cực kỳ nhanh gọn và hiệu quả cho nhu cầu này. Bài viết này sẽ là kim chỉ nam của bạn, hướng dẫn chi tiết từ A-Z về lệnh cal – một công cụ mạnh mẽ nhưng thường bị bỏ qua. Chúng ta sẽ cùng nhau khám phá cú pháp, các tùy chọn hiển thị và những ví dụ thực tế để bạn có thể làm chủ lệnh này, giúp tối ưu hóa thời gian và nâng cao hiệu suất công việc ngay trên terminal.
Tổng quan về lệnh cal trong Linux
Lệnh cal là gì?
Lệnh cal (viết tắt của calendar) là một tiện ích dòng lệnh tiêu chuẩn trên các hệ điều hành Unix-like, bao gồm cả Linux. Chức năng chính và duy nhất của nó là hiển thị một bộ lịch được định dạng gọn gàng ngay trên cửa sổ terminal của bạn. Mặc dù đơn giản, vai trò của cal trong việc quản lý thời gian trên terminal lại vô cùng quan trọng. Nó cho phép người dùng nhanh chóng tra cứu ngày tháng, kiểm tra một ngày cụ thể trong quá khứ hoặc tương lai mà không cần rời khỏi giao diện dòng lệnh. Điều này đặc biệt hữu ích khi bạn đang viết script Bash là gì, kiểm tra log file theo ngày, hoặc đơn giản là muốn biết hôm nay là thứ mấy mà không làm gián đoạn công việc hiện tại. Với cal, việc xem lịch trở thành một thao tác tức thì, giúp duy trì sự tập trung và liền mạch trong công việc.

Cú pháp sử dụng cơ bản của lệnh cal
Cú pháp của lệnh cal rất trực quan và dễ nhớ, giúp người dùng mới có thể tiếp cận nhanh chóng. Cấu trúc chung của lệnh như sau: cal [tùy chọn] [tháng] [năm].
Để hiểu rõ hơn, chúng ta hãy phân tích từng thành phần trong cú pháp này.
cal: Đây là tên của lệnh, luôn được gõ đầu tiên để gọi tiện ích lịch.[tùy chọn]: Đây là các tham số không bắt buộc, cho phép bạn thay đổi cách hiển thị của lịch. Các tùy chọn này thường bắt đầu bằng một dấu gạch ngang, ví dụ như-mđể tuần bắt đầu từ thứ Hai. Chúng ta sẽ tìm hiểu kỹ hơn về các tùy chọn này ở các phần sau.[tháng]: Là một số nguyên từ 1 đến 12, đại diện cho tháng bạn muốn xem. Đây là tham số không bắt buộc. Nếu bạn chỉ định tháng, bạn cũng phải chỉ định năm.[năm]: Là một số nguyên có bốn chữ số, đại diện cho năm bạn muốn xem. Tham số này cũng không bắt buộc. Nếu bạn bỏ qua cả tháng và năm,calsẽ mặc định hiển thị tháng hiện tại.
Việc nắm vững cú pháp đơn giản này là bước đầu tiên để bạn khai thác sức mạnh của lệnh cal một cách hiệu quả.
Các tùy chọn hiển thị lịch tháng và năm
Hiển thị lịch tháng mặc định
Cách sử dụng cơ bản và phổ biến nhất của lệnh cal là gọi nó mà không cần bất kỳ tham số nào. Khi bạn chỉ cần gõ cal và nhấn Enter, hệ thống sẽ ngay lập tức trả về lịch của tháng hiện tại. Kết quả hiển thị bao gồm tên tháng, năm, và một lưới các ngày được sắp xếp gọn gàng theo tuần. Dòng chứa ngày hiện tại sẽ được làm nổi bật (thường là bằng cách bôi đen hoặc thay đổi màu nền) để bạn dễ dàng xác định.
Đây là một tính năng cực kỳ tiện lợi cho các công việc hàng ngày. Thay vì phải tìm kiếm và mở một ứng dụng lịch, bạn chỉ cần một lệnh duy nhất để có ngay thông tin mình cần. Thao tác này nhanh chóng đến mức nó gần như trở thành một phản xạ tự nhiên của nhiều người dùng Linux là gì lâu năm khi cần kiểm tra ngày tháng.

Xem lịch theo năm hoặc tháng tùy chỉnh
Lệnh cal không chỉ giới hạn ở việc hiển thị tháng hiện tại. Bạn hoàn toàn có thể sử dụng nó như một cỗ máy thời gian để xem lịch của bất kỳ tháng hoặc năm nào. Tính năng này rất hữu ích khi bạn cần lập kế hoạch cho tương lai hoặc tra cứu một sự kiện trong quá khứ.
Để xem lịch của một năm cụ thể, bạn chỉ cần gõ cal theo sau là năm đó. Ví dụ, lệnh cal 2025 sẽ hiển thị toàn bộ lịch của 12 tháng trong năm 2025, được sắp xếp gọn gàng thành từng khối. Điều này giúp bạn có cái nhìn tổng quan về cả một năm một cách nhanh chóng.
Nếu bạn chỉ quan tâm đến một tháng cụ thể trong một năm nào đó, cú pháp cũng rất đơn giản: cal [tháng] [năm]. Ví dụ, để xem lịch tháng 10 năm 2024, bạn chỉ cần gõ cal 10 2024. Terminal sẽ ngay lập tức hiển thị lịch của tháng đó, giúp bạn tra cứu thông tin một cách chính xác và hiệu quả.

Cách linh hoạt xem lịch theo nhu cầu trên terminal
Hiển thị tuần bắt đầu từ thứ Hai
Theo mặc định ở nhiều khu vực, đặc biệt là Bắc Mỹ, lịch do lệnh cal hiển thị sẽ có tuần bắt đầu từ Chủ Nhật (Sunday). Tuy nhiên, ở Việt Nam và nhiều quốc gia khác, tuần làm việc thường được tính bắt đầu từ thứ Hai (Monday). Để phù hợp hơn với thói quen sử dụng này, cal cung cấp một tùy chọn rất hữu ích là -m.
Khi bạn sử dụng lệnh cal -m, kết quả hiển thị sẽ được điều chỉnh lại để cột đầu tiên trong tuần là thứ Hai. Điều này giúp người dùng dễ dàng theo dõi các ngày trong tuần làm việc, từ thứ Hai đến thứ Sáu, và hai ngày cuối tuần một cách trực quan hơn. Ví dụ, để xem lịch tháng hiện tại với tuần bắt đầu từ thứ Hai, bạn chỉ cần gõ cal -m. Lợi ích của việc này là giúp bạn đồng bộ hóa cách xem lịch trên terminal với cách bạn tổ chức công việc hàng ngày, giảm thiểu nhầm lẫn và tăng cường hiệu quả khi lập kế hoạch.

Tùy chỉnh hiển thị lịch và kết hợp với các lệnh khác
Sức mạnh thực sự của các công cụ dòng lệnh trong Linux nằm ở khả năng kết hợp chúng lại với nhau thông qua cơ chế “pipe” (đường ống). Lệnh cal cũng không ngoại lệ. Bạn có thể lấy kết quả đầu ra của cal và sử dụng nó làm đầu vào cho các lệnh khác như grep hoặc awk để lọc và xử lý thông tin theo nhu-cầu-cụ-thể.
Giả sử bạn muốn nhanh chóng tìm xem một tháng có bao nhiêu ngày thứ Sáu. Thay vì đếm thủ công, bạn có thể kết hợp cal và grep. Ví dụ, với lệnh cal | grep "Fr", bạn sẽ lọc ra tất cả các dòng chứa chuỗi “Fr” (Friday) từ lịch tháng hiện tại. Một ví dụ khác, nếu bạn muốn đánh dấu một ngày cụ thể, ví dụ ngày 25, bạn có thể dùng lệnh cal | grep --color "25". Lệnh này sẽ hiển thị lịch tháng hiện tại và tô màu số 25, giúp bạn nhận diện ngay lập tức. Khả năng kết hợp này mở ra vô vàn ứng dụng, biến cal từ một công cụ xem lịch đơn thuần thành một phần linh hoạt trong chuỗi các tác vụ tự động hóa của bạn.

Các ví dụ thực tế sử dụng lệnh cal
Ví dụ đơn giản hiển thị lịch tháng hiện tại
Đây là trường hợp sử dụng cơ bản và thường xuyên nhất. Khi bạn đang làm việc và cần biết ngày tháng hiện tại, chỉ cần mở terminal và gõ: cal
Ngay lập tức, màn hình sẽ hiển thị lịch của tháng hiện tại, với ngày hôm nay được làm nổi bật. Thao tác này nhanh hơn rất nhiều so với việc tìm và mở ứng dụng lịch trên giao diện đồ họa.
Hiển thị toàn bộ lịch năm 2024
Khi cần lập kế hoạch cho cả năm, chẳng hạn như lên lịch nghỉ phép, đặt mục tiêu quý, hoặc xem tổng quan các ngày lễ, việc xem lịch cả năm là vô cùng hữu ích. Để làm điều này, bạn sử dụng lệnh: cal 2024
Terminal sẽ hiển thị một lưới gồm 12 tháng của năm 2024, cho phép bạn có một cái nhìn bao quát mà không cần phải cuộn hay nhấp chuột qua lại giữa các tháng.

Xem lịch tháng 9 năm 2023 và hiển thị tuần bắt đầu từ thứ Hai
Giả sử bạn cần tra cứu một thông tin trong quá khứ, ví dụ như một cuộc họp vào tháng 9 năm 2023, và bạn muốn xem lịch theo định dạng tuần làm việc bắt đầu từ thứ Hai. Lệnh kết hợp sau sẽ giúp bạn: cal -m 9 2023
Kết quả sẽ là lịch của tháng 9 năm 2023, được sắp xếp với thứ Hai là ngày đầu tuần. Điều này giúp bạn dễ dàng đối chiếu và xác định ngày tháng một cách chính xác theo thói quen của mình.

Các vấn đề thường gặp và cách khắc phục
Lệnh cal không hiển thị đúng định dạng hoặc lịch
Một trong những vấn đề người dùng có thể gặp phải là lịch hiển thị không đúng định dạng, các ký tự bị lỗi hoặc ngày tháng bị lệch. Nguyên nhân phổ biến nhất của tình trạng này là do cấu hình locale của hệ thống không chính xác hoặc terminal không hỗ trợ mã hóa UTF-8. Locale là một bộ các tham số định nghĩa ngôn ngữ, quốc gia và các thiết lập đặc thù khác cho ứng dụng.
Để khắc phục, đầu tiên, hãy kiểm tra locale hiện tại của bạn bằng lệnh locale. Đảm bảo rằng các biến như LANG hay LC_TIME được thiết lập đúng (ví dụ: en_US.UTF-8 hoặc vi_VN.UTF-8). Nếu chúng chưa được cấu hình, bạn có thể thiết lập lại trong file cấu hình shell của mình (như .bashrc hoặc .zshrc) bằng cách thêm dòng export LANG=en_US.UTF-8. Sau đó, hãy chắc chắn rằng phần mềm terminal bạn đang sử dụng đã được cấu hình để hiển thị ký tự theo chuẩn UTF-8. Việc điều chỉnh này thường sẽ giải quyết triệt để các vấn đề liên quan đến định dạng hiển thị.
Lỗi không tìm thấy lệnh cal
Trong một số trường hợp, đặc biệt là trên các bản cài đặt Linux tối giản (minimal installation) hoặc trên các container Docker, bạn có thể gặp phải lỗi “command not found: cal”. Điều này không có nghĩa là lệnh cal không tồn tại, mà chỉ đơn giản là gói chứa nó chưa được cài đặt trên hệ thống của bạn.
May mắn là việc cài đặt rất đơn giản. Lệnh cal thường đi kèm trong một gói tiện ích hệ thống.
- Trên các bản phân phối dựa trên Debian/Ubuntu, bạn có thể cài đặt nó bằng lệnh:
sudo apt-get update && sudo apt-get install bsdmainutils. - Trên các bản phân phối dựa trên Red Hat/CentOS/Fedora, bạn sử dụng lệnh:
sudo yum install util-linuxhoặcsudo dnf install util-linux.
Sau khi quá trình cài đặt hoàn tất, bạn có thể gõ lại lệnh cal và nó sẽ hoạt động như mong đợi.

Các lưu ý và best practices khi sử dụng lệnh cal
Để khai thác tối đa hiệu quả của lệnh cal, có một vài lưu ý và phương pháp thực hành tốt nhất bạn nên ghi nhớ. Những mẹo nhỏ này sẽ giúp bạn tích hợp cal vào quy trình làm việc một cách mượt mà và chuyên nghiệp hơn.
Đầu tiên, hãy tận dụng cal để xem lịch nhanh chóng mà không cần phải rời khỏi terminal. Đây là ưu điểm lớn nhất của nó. Mỗi khi cần kiểm tra ngày, hãy tập thói quen gõ cal thay vì dùng chuột để mở ứng dụng khác. Điều này giúp duy trì sự tập trung và tiết kiệm thời gian đáng kể trong dài hạn.
Thứ hai, luôn kiểm tra cấu hình locale của hệ thống (locale) để đảm bảo lịch hiển thị đúng ngôn ngữ và định dạng tuần (Chủ Nhật hay thứ Hai là ngày đầu tuần) theo mong muốn của bạn. Một locale được cấu hình đúng sẽ giúp cal hoạt động một cách nhất quán và dễ đoán.
Bên cạnh đó, cần nhận thức được giới hạn của cal. Nó là một công cụ để xem lịch, không phải để quản lý lịch. Cho các nhu cầu phức tạp hơn như đặt lịch hẹn, tạo sự kiện, hay nhận thông báo, bạn nên sử dụng các công cụ chuyên biệt như Google Calendar hoặc các ứng dụng lịch đồ họa khác.
Cuối cùng, đừng ngần ngại kết hợp cal với các lệnh shell khác như grep, awk, hoặc sed. Khả năng này cho phép bạn tự động hóa nhiều tác vụ liên quan đến ngày tháng, chẳng hạn như tìm các ngày cụ thể trong một năm hoặc trích xuất thông tin lịch để sử dụng trong các script tự động.
Kết luận
Qua bài viết này, chúng ta đã cùng nhau khám phá chi tiết về lệnh cal trong Linux – một tiện ích nhỏ gọn nhưng vô cùng hữu ích. Từ cú pháp cơ bản, các tùy chọn hiển thị linh hoạt cho đến cách kết hợp với những lệnh khác, cal đã chứng tỏ mình là một công cụ không thể thiếu cho bất kỳ ai thường xuyên làm việc trên giao diện dòng lệnh. Nó giúp việc tra cứu ngày tháng trở nên tức thì, liền mạch và không làm gián đoạn quy trình công việc của bạn.
Sự đơn giản chính là sức mạnh của cal. Thay vì một ứng dụng đồ họa nặng nề, bạn chỉ cần một lệnh duy nhất để có được thông tin mình cần. AZWEB khuyến khích bạn hãy mở ngay cửa sổ terminal của mình và thử các ví dụ đã được đề cập. Việc thực hành thường xuyên sẽ giúp bạn biến cal thành một phản xạ tự nhiên, góp phần nâng cao hiệu quả công việc hàng ngày. Nếu bạn muốn khám phá thêm, hãy tìm hiểu các lệnh liên quan đến thời gian khác như Bash là gì để định dạng ngày giờ và Kernel Linux để quản lý múi giờ hệ thống.