cal
El comando cal es una herramienta de línea de comandos de Linux que permite mostrar calendarios directamente en la terminal. Puede utilizarse para consultar el mes actual, visualizar un mes concreto, mostrar un año completo o consultar calendarios de años y meses determinados.
| Categoría | Fecha y hora / Utilidades |
|---|---|
| Disponible en | Linux, macOS y otros sistemas Unix |
| Equivalente en Windows | Get-Date en PowerShell, aunque no dispone de una representación de calendario equivalente tan directa. |
| Sustituye a | Permite consultar rápidamente fechas y calendarios desde la terminal sin necesidad de utilizar una aplicación gráfica de calendario. |
| ¿Requiere permisos de administrador? | No. Es un comando de consulta que no modifica el sistema. |
¿Qué significa su nombre?
CAL es una abreviatura de calendar, que significa «calendario» en inglés.
El nombre describe directamente la función del comando: mostrar un calendario en la terminal.
¿Para qué sirve?
El comando cal sirve para visualizar calendarios desde la línea de comandos. Por defecto, muestra el calendario del mes actual, destacando normalmente el día actual.
También permite consultar otros meses indicando su número y el año correspondiente, así como mostrar un año completo. Esto resulta útil cuando se trabaja exclusivamente desde la terminal o cuando se necesita consultar rápidamente una fecha sin abrir una aplicación gráfica.
El comando cal forma parte de las utilidades tradicionales de los sistemas Unix y es un ejemplo sencillo de cómo Linux permite realizar tareas cotidianas mediante comandos de texto.
Sintaxis
cal [opciones] [mes] [año]
Las opciones más habituales son:
| Opción | Descripción |
|---|---|
-3 |
Muestra el mes anterior, el mes actual y el mes siguiente. |
-y |
Muestra el calendario completo del año actual. |
-m |
Muestra los días de la semana comenzando por el lunes. |
-j |
Muestra los días del año mediante su número ordinal, desde 1 hasta 365 o 366. |
Comandos más utilizados
| Comando | Descripción |
|---|---|
cal |
Muestra el calendario del mes actual. |
cal 12 2026 |
Muestra el calendario de diciembre de 2026. |
cal 2026 |
Muestra el calendario completo del año 2026. |
cal -3 |
Muestra el mes anterior, el actual y el siguiente. |
cal -y |
Muestra el calendario completo del año actual. |
cal -m |
Muestra la semana comenzando por el lunes. |
cal -j |
Muestra los días utilizando su número ordinal dentro del año. |
Equivalencia con otros sistemas
| Acción | Linux | Windows PowerShell |
|---|---|---|
| Mostrar fecha actual | date |
Get-Date |
| Mostrar calendario actual | cal |
No existe un equivalente directo integrado. |
| Consultar un año | cal 2026 |
Se puede realizar mediante comandos o scripts de PowerShell. |
Ejemplos
Mostrar el calendario del mes actual
cal
Ejemplo de salida
August 2026
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
La salida muestra el nombre del mes, los días de la semana y todos los días correspondientes al mes. El día actual aparece normalmente resaltado mediante la terminal si esta admite colores o atributos de texto.
Mostrar el calendario de un mes concreto
cal 12 2026
Este comando muestra el calendario correspondiente a diciembre de 2026. El primer número representa el mes y el segundo representa el año.
Mostrar el calendario de un año completo
cal 2026
Al indicar únicamente el año, cal muestra los doce meses correspondientes a ese año.
Mostrar el calendario de tres meses
cal -3
Esta opción muestra conjuntamente el mes anterior, el mes actual y el mes siguiente, lo que resulta útil para consultar rápidamente fechas próximas.
Mostrar el calendario del año actual
cal -y
La opción -y muestra los doce meses del año actual sin necesidad de escribir el año manualmente.
Mostrar el calendario comenzando la semana en lunes
cal -m
La opción -m hace que las semanas se presenten comenzando por el lunes. Esta representación resulta especialmente familiar para usuarios de países donde la semana comienza habitualmente en lunes.
Mostrar los días del año mediante números ordinales
cal -j
Ejemplo de salida
August 2026
Sun Mon Tue Wed Thu Fri Sat
213 214 215 216 217 218
219 220 221 222 223 224 225
226 227 228 229 230 231 232
233 234 235 236 237 238 239
240 241
En este modo, los números representan el día del año en lugar del día del mes. Por ejemplo, el número 213 representa el día número 213 del año.
¿Cómo interpretar la salida?
- Nombre del mes: indica el mes y el año que se están mostrando.
- Días de la semana: aparecen como abreviaturas en la parte superior del calendario.
- Números de los días: representan los días correspondientes al mes.
- Día actual: puede aparecer resaltado visualmente dependiendo de la configuración de la terminal.
- Calendario anual: cuando se indica un año completo, se muestran los doce meses organizados en varias columnas.
Es importante tener en cuenta que el aspecto exacto de la salida puede variar ligeramente dependiendo de la versión de la utilidad cal, la configuración regional y las características de la terminal utilizada.
Errores habituales
- Confundir el orden de los parámetros. Para consultar un mes concreto se utiliza
cal mes año, por ejemplocal 8 2026para agosto de 2026. - Indicar un número de mes incorrecto. Los meses válidos están comprendidos entre
1y12. - Confundir
calcondate.calmuestra calendarios, mientras quedatepermite consultar y formatear la fecha y hora del sistema. - Esperar que
calmodifique la fecha del sistema. El comando únicamente muestra información y no cambia la fecha ni la hora del ordenador. - Asumir que todas las versiones de
caldisponen exactamente de las mismas opciones. Algunas distribuciones pueden utilizar diferentes implementaciones de la utilidad.
Conceptos relacionados
- Fecha y hora
- Calendario
- Terminal
- Línea de comandos
- Formato de fecha
- Año bisiesto
- Configuración regional
- Utilidades Unix
Comandos relacionados
datetimedatectlncalsleepuptimehwclock
Curiosidades
El comando cal es una de las utilidades clásicas de los sistemas Unix y lleva muchos años formando parte de las herramientas disponibles desde la terminal.
Una curiosidad interesante es que cal puede utilizarse para consultar calendarios de años muy alejados del año actual. Esto permite estudiar fechas históricas o comprobar cómo se distribuyen los días de la semana en un determinado año.
La opción -j proporciona una representación especialmente interesante para determinados programas y cálculos: en lugar de mostrar el día dentro de su mes, muestra el número de día dentro del año. En un año normal el último día es el 365, mientras que en un año bisiesto es el 366.
También existe el comando ncal, que ofrece una representación alternativa del calendario y proporciona algunas funcionalidades adicionales relacionadas con fechas y semanas.
Prácticas propuestas
- Ejecuta
caly observa el calendario del mes actual. Identifica qué día aparece resaltado como fecha actual. - Utiliza
cal 1 2026para consultar el calendario de enero de 2026. Después consulta otros meses. - Ejecuta
cal 2026para mostrar el calendario completo de 2026. Observa cómo se organizan los doce meses en la terminal. - Utiliza
cal -3y comprueba qué tres meses aparecen en pantalla. - Ejecuta
cal -yy compara el resultado concal 2026. ¿Qué diferencia existe entre ambos comandos? - Utiliza
cal -my compara la distribución de los días de la semana con la salida decal. - Ejecuta
cal -jy observa cómo cambian los números de los días. Explica qué representa el número 1 y qué representa el último número del año. - Busca un año bisiesto y utiliza
cal -jpara comprobar que dicho año contiene 366 días. - Compara el funcionamiento de
calydate. Explica qué tipo de información proporciona cada comando. - Consulta la documentación mediante
man caly busca otras opciones que no se hayan explicado en esta práctica.
Consejo: Recuerda que cal es una herramienta de consulta: no modifica ninguna configuración del sistema. Practica especialmente cal, cal -3 y cal -y, ya que permiten consultar rápidamente diferentes periodos de tiempo desde la terminal.
Preguntas de reflexión:
- ¿Qué información muestra el comando
calcuando se ejecuta sin ninguna opción? - ¿Qué diferencia existe entre ejecutar
calycal 2026? - ¿Cómo se indica el mes y el año que queremos consultar con
cal? - ¿Para qué sirve la opción
-3? - ¿Qué diferencia existe entre
cal -yycal 2026? - ¿Qué información proporciona la opción
-jy por qué el último día de un año puede ser el 365 o el 366? - ¿Qué diferencia existe entre los comandos
calydate? - ¿Por qué el resultado visual de
calpuede variar entre diferentes sistemas Linux o configuraciones regionales?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué información muestra el comando cal cuando se ejecuta sin ninguna opción?
Cuando ejecutamos cal sin argumentos, muestra el calendario correspondiente al mes actual. Aparecen el nombre del mes, el año, los días de la semana y los números correspondientes a cada día. Dependiendo de la terminal, el día actual puede aparecer resaltado visualmente.
2. ¿Qué diferencia existe entre ejecutar cal y cal 2026?
cal sin argumentos muestra únicamente el mes actual, mientras que al indicar solamente un año, como en cal 2026, se muestra el calendario completo de ese año, incluyendo sus doce meses.
3. ¿Cómo se indica el mes y el año que queremos consultar con cal?
Se indican dos números después del comando: primero el número del mes y después el año. Por ejemplo, cal 8 2026 muestra el calendario de agosto de 2026. Los meses se numeran del 1 al 12.
4. ¿Para qué sirve la opción -3?
La opción -3 muestra tres meses consecutivos: el mes anterior, el mes actual y el mes siguiente. Resulta útil para consultar rápidamente fechas cercanas sin tener que ejecutar el comando varias veces.
5. ¿Qué diferencia existe entre cal -y y cal 2026?
Ambos comandos muestran un calendario anual, pero no utilizan el mismo mecanismo. cal -y solicita el calendario del año actual, mientras que cal 2026 solicita específicamente el año 2026. Por tanto, cal -y cambia automáticamente de año según la fecha del sistema.
6. ¿Qué información proporciona la opción -j y por qué el último día de un año puede ser el 365 o el 366?
La opción -j muestra los días mediante su número ordinal dentro del año. El día 1 corresponde al 1 de enero y el último día puede ser el 365 o el 366. Los años bisiestos tienen un día adicional, debido a que febrero tiene 29 días en lugar de 28, por lo que contienen 366 días.
7. ¿Qué diferencia existe entre los comandos cal y date?
cal está orientado a mostrar calendarios y permite visualizar los días organizados por meses y años. date está orientado a consultar y mostrar la fecha y hora actuales, además de permitir diferentes formatos de presentación. Por tanto, cal proporciona una visión de un periodo de tiempo, mientras que date se centra en la fecha y hora del sistema.
8. ¿Por qué el resultado visual de cal puede variar entre diferentes sistemas Linux o configuraciones regionales?
La implementación de cal, la configuración regional y las opciones de formato pueden variar entre sistemas. Esto puede afectar al idioma de los nombres de los meses y días, al primer día de la semana o a la forma en la que se presenta el calendario. Por este motivo, dos sistemas diferentes pueden mostrar una representación ligeramente distinta aunque estén utilizando el mismo comando.