linux学习笔记之cal

在所有的类linux操作系统中,cal或者ncal命令会在命令行打印出一个有格式的日历(阳历)。

默认情况下,即不给定任何参数的情况下,cal和ncal将会输入本月的日历,并突出显示当前的日期(在Ubuntu22.04LTS下,ncal突出显示当前的日期):
> cal:

      六月 2022
日  一 二 三  四 五 六1  2  3  45  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

> ncal:

    六月 2022
一      6 13 20 27
二      7 14 21 28
三   1  8 15 22 29
四   2  9 16 23 30
五   3 10 17 24
六   4 11 18 25
日   5 12 19 26

可以看到ncal命令和cal命令都会在控制台输出有格式的日历,但是ncal命令显示的日历是竖着的,有别于传统的日历格式。

安装?

有的时候,当你输入cal命令时,控制台会输出command not found: cal,这代表运行环境没有安装cal,需要进行安装。
这里我找到一些运行环境的安装代码:

# Debian
apt-get install bsdmainutils# Ubuntu
apt-get install bsdmainutils# Alpine
apk add util-linux# Arch Linux
pacman -S util-linux# Kali Linux
apt-get install bsdmainutils# CentOS
yum install util-linux# OS X
brew install util-linux# Docker
docker run cmd.cat/cal cal

要注意的是,安装可能需要管理员权限,要加上sodu之类的。

语法

calncal命令的 语法为(Ubuntu 22.04 LTS):

Usage: cal [general options] [-jy] [[month] year]cal [general options] [-j] [-m month] [year]ncal -C [general options] [-jy] [[month] year]ncal -C [general options] [-j] [-m month] [year]ncal [general options] [-bhJjpwySM] [-H yyyy-mm-dd] [-s country_code] [-W number of days] [[month] year]ncal [general options] [-Jeo] [year]
General options: [-31] [-A months] [-B months] [-d yyyy-mm]
cal [month] [year] [-m month] [-y year] [-h] [-3] [-1] [-A num] [-B num][-d YYYY-MM] [-j] [-N]
ncal [month] [year] [-m month] [-y year] [-h] [-3] [-1] [-A num] [-B num][-d YYYY-MM] [-J] [-C] [-e] [-o] [-p] [-w] [-M] [-S] [-b]

可选参数

cal 和 ncal一样的基本参数

通用参数:[-3] [-1] -h -y [year] -m [month] [-A months] [-B months] [-d yyyy-mm]

参数 作用
-1 只显示本月的日历,这是默认的参数
-3 显示上一月、本月以及下个月共三个月的日历
-y [year] 显示指定年份的所有月份,如果不指定哪一年,默认为本年。-y可以省略
-m [month] 显示本年指定月份; [month]可以是数字或者月份对应的英文全拼或缩写,== [month]参数不可省==;如果使用数字指定月份,那么可以在数字后面添加f(following)p( previous)参数用于指定下一年或者上一年(注意,数字和参数不可有空格!)。
-A [num] 显示在已指定的任何月份之发生的月份数(num个月),即add num months
-B[num] 显示在已指定的任何月份之发生的月份数(num个月),即before num months
-d YYYY-MM 显示年份为YYYY,月份为MM的日期
-h 不突出显示今天的日期

下面是一些实例:

cal MM YYYY | ncal MM YYYY可以指定某一年的某个月的日历。
cal 3 2000

cal -3 | cal -1 | ncal -1 | ncal -3

ncal -3 -A 3 | cal -3 -A 3

ncal -y 2021 -A 2 | cal -y 2022 -A 2 显示2021年所有月份和之后的两个月

cal -m 2p | ncal -m 2p

ncal -3 -B 1 | cal -3 -B 1

cal -d 2000-12 | ncal -d 2000-12

其它参数

  1. -j

Display a Julian calendar, instead of the default Gregorian calendar.
日期显示为从本年1月1日开始的计算的天数,而不是传统的从每月的第一天计算


2. -jy
-j一样,而显示一年的日期,日期数字是从1月1日开始计算的数字。

  1. cal [general options] [-jy] [[month] year]

可以指定某一年的某一月,注意先是月份,后是年份;如果只给一个参数,那默认是年份;如果只想指点月份,则需要-m参数,默认是今年。

语法:

cal [general options] [-jy] [[month] year]
cal [general options] [-j] [-m month] [year]
# 竖排
ncal [general options] [-jy] [[month] year]
ncal [general options] [-j] [-m month] [year]
# 横排,和cal一样效果
ncal -C [general options] [-jy] [[month] year]
ncal -C [general options] [-j] [-m month] [year]

ncal的特殊参数

有些参数对于中国人来说意义不大。

ncal [general options] [-bhJjpwySM] [-H yyyy-mm-dd] [-s country_code] [-W number of days] [[month] year]
ncal [general options] [-Jeo] [year]
参数 说明
-J 显示儒略历,而不是默认的公历。所有日期都从1月1日开始编号,而不是从月初开始。如果与-o组合,则根据儒略历显示东正教复活节的日期。
-e 显示西方日历的复活节日期。存在此选项是因为复活节是计算传统日历日期时的定义日期。
-o Display the date of orthodox Easter.
-p Print country codes and “switching days” for switching from Julian to Gregorian calendars in various countries.
-w 打印“每周”列下的周数。
-C 使ncal表现得像cal
-M 以周一为第一天
-S 以周日为第一天显示周。=默认值=
-b 使ncal表现得像cal ,且以周一为第一天

参考资料

  • Linux cal and ncal command
  • cal 命令详解

linux命令之cal详解相关推荐

  1. linux 命令:cal 详解

    cal是显示日历的命令,比较简单,先看一下cal --help: 用法:cal [选项] [[[日] 月] 年]选项:-1, --one 只显示当前月份(默认)-3, --three 显示上个月.当月 ...

  2. 【转】Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  3. linux中top工具,Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  4. linux su命令位置,Linux命令大全su详解

    su允许某用户暂时成为另一个用户.它以真实有效的user ID.group ID和给定USER的附加组,执行一个命令,通常是一个交互式的shell.接下来是小编为大家收集的Linux命令大全su详解, ...

  5. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似 于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来 ...

  6. 离线调用linux命令,GitHub - rinetd/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  7. 实验楼linux命令,GitHub - encorechow/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  8. spark常用的linux命令,GitHub - Sparkinzy/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...

    Linux Command 516 个 Linux 命令大全,内容包含 Linux 命令手册.详解.学习,值得收藏的 Linux 命令速查手册.请原谅我写了个爬虫,爬了他们家的数据linuxde.ne ...

  9. linux命令之-dmesg详解

    Linux命令dmesg用法详解 功能说明:显示开机信息.  语 法:dmesg [-cn][-s <缓冲区大小>]  补充说明:kernel会将开机信息存储在ring buffer中.您 ...

  10. Linux命令--tree--使用/详解/实例

    原文网址: 见:Linux命令--tree--使用/详解/实例_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍Linux的tree命令的用法. tree命令可以以树状结构查看目录结构. 选项 ...

最新文章

  1. 牛腩44 整合登陆页 RequiredFieldValidator 和 ValidationSummary 以及 asp.net 自带的MD5 加密...
  2. ubuntu 安装 Terminator
  3. 骨干云池服务器SATA盘的RAID配置,标准互联 美国CN2云池服务器即将开售,欢迎新老客户选购 - Pesyun.com 公告与通知...
  4. python怎么返回最初_Python 函数为什么会默认返回 None?
  5. Swift类扩展使用方法
  6. 电脑配置java编译报错_java 编译错误
  7. Mybatis insert操作细节【ID】
  8. orm提取指定列_使用ORM提取数据很容易! 是吗?
  9. Python---通配符的使用
  10. 解决:org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest
  11. 【转载】C++运算符之类型转换
  12. wps office oa控件 痕迹_WPS加载项案例应用回顾
  13. 【问题】ajax两种传递id值方式的区别
  14. 《图论及其应用》学习笔记(匹配和因子分解)
  15. mac 中用到的svn命令 持续更新
  16. java设置窗体图标_在java中怎么设置窗体的图标?详细步骤图解
  17. 做正确的事和正确的做事
  18. iOS内购提示无效ID : .paymentInvalid
  19. win10防火墙_怎么关闭防火墙
  20. 微信公众号开发教程(序)

热门文章

  1. Android自定义星星评分控件
  2. 制造上云 佛山南海携手阿里云建创新中心
  3. kali渗透姿式小汇总
  4. 深度学习——词汇embedded、Beam Search
  5. DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
  6. android手机怎么投屏到电视盒子,手机钉钉怎么投屏到电视上
  7. 想学习高速ADC/DAC/SDR项目这个项目你不得不理解
  8. 抖音扫码跳转QQ群等外链源代码分享
  9. 举个栗子!Tableau技巧(59):学做两个集合的维恩图(文氏图)Venn diagram
  10. 简单理解格拉姆矩阵(Gram matrix)