• linux命令之cal详解


    linux学习笔记之cal

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

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

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

    > 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    可以看到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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    要注意的是,安装可能需要管理员权限,要加上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]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    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]
    
    • 1
    • 2
    • 3
    • 4

    可选参数

    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 and ncal

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

    ncal -3 -A 3 | cal -3 -A 3
    cal and ncal
    ncal -y 2021 -A 2 | cal -y 2022 -A 2 显示2021年所有月份和之后的两个月
    cal and ncal
    cal -m 2p | ncal -m 2p
    cal and ncal
    ncal -3 -B 1 | cal -3 -B 1
    cal and ncal
    cal -d 2000-12 | ncal -d 2000-12
    cal and ncal

    其它参数

    1. -j

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

    cal and ncal
    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]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    cal and ncal

    ncal的特殊参数

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

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

    在这里插入图片描述

    -C/-M

    ncal -b

    参考资料

  • 相关阅读:
    更强大的 MQTT over QUIC 桥接 & Azure 桥接
    RPA可以为你完成哪些重复性工作?
    C语言-求一个整数储存在内存中的二进制中1的个数
    代码随想录笔记_哈希_1002查找共用字符
    LeetCode 每日一题 2023/10/16-2023/10/22
    java计算机毕业设计物流信息管理系统源码+系统+数据库+lw文档+mybatis+运行部署
    Spring Security 如何实现身份认证和授权?
    java计算机毕业设计商院足球赛事管理源程序+mysql+系统+lw文档+远程调试
    SSM+基于web的酒店预订及个性化服务系统 毕业设计-附源码241822
    Bottom-Up Temporal Action Localization with Mutual Regularization BU-TAL阅读笔记
  • 原文地址:https://blog.csdn.net/qq_46590483/article/details/125471436