linux命令之cal详解

2023-10-27

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

> 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 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]

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]
参数 说明
-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 ,且以周一为第一天

在这里插入图片描述

-C/-M

ncal -b

参考资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux命令之cal详解 的相关文章

  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • Linux >2.6.33:可以使用 sendfile() 来实现更快的“猫”吗?

    必须将大量大文件连接成一个更大的单个文件 我们目前使用 cat file1 file2 output file but are wondering whether it could be done faster than with that
  • 命名互斥体的 Mono 替代方案

    在 Windows NET 上 命名的互斥体可用于同步多个进程 不幸的是 Mono 在 Linux 上不太支持这一点 他们的发行说明 http www mono project com Release Notes Mono 2 8 Shar
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

    我有一个 dotnet SDK sln and a build proj with
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • tar.gz 和 tgz 是同一个东西吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我创建了 tgz 文件tar czvf filecommand then 我最终得到了一个 tgz 文件 我想知道它和tar gz 之间的
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • 如何从外部模块导出符号?

    我在内核源代码树之外进行编码 有两个模块 第一个printt有一个功能printtty 将字符串打印到当前 tty 以及第二个模块hello这会调用printtty 在初始化期间 我已经添加了EXPORT SYMBOL printtty 在
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • bash "&" 不打印 "[1]+ Done "

    我在 bashrc 中调用一个脚本来打印打开终端时收到的新消息数 我希望该调用在访问网络时是非阻塞的 有时需要几秒钟 这意味着我无法使用终端直到完成 但是如果我输入 mailcheck 在我的 bashrc 中 它工作正常 但然后打印一个空
  • SVN 不断提示我输入密码并拒绝缓存我的凭据

    环境 Eclipse Indigo Ubuntu 11 04 Subclipse 1 6 SVN 客户端 Subclipse RabbitVCS 我通过 svn ssh 连接 我的网址如下所示 svn ssh 我的名字 我的域名 路径 我可
  • 如何防止 CMake 在构建时(而不是安装时)为共享库创建符号链接?

    我正在使用 CMake 在 Linux 上使用 Bullet3 构建一个项目 在构建整个解决方案时 它会构建附加了 SOVERSION 的 Bullet 输出库 并创建一个不带版本的符号链接 对于我的特定场景 我不喜欢这种行为 并且我不想编
  • 如何更改 Kubernetes 中的文件系统观察程序限制 (fs.inotify.max_user_watches)

    我在用着pm2 https github com Unitech pm2查看保存我的应用程序服务器的 NodeJS 程序源代码的目录 该程序在 Kubernetes 集群中运行 但是 我收到此错误 ENOSPC System limit f

随机推荐

  • 计算机网络第五篇【网络层之二】

    tags 计算机网络 title 计算机网络第五篇 网络层之二 IP数据包的首部格式 一个 IP 数据报由首部和数据两部分组成 首部的前一部分是固定长度 共 20 字节 是所有 IP 数据报必须具有的 版本 占 4 位 指 IP 协议的版本
  • 认知:大数据-Big Data

    大数据 Big Data 作者 WenasWei 一 大数据 大数据 Big Data 也称为海量数据 Massivee 是随着计算机技术及互联网技术的高速发展而产生的数据现象 2013年也称为大数据元年 标志着全球正式步入了大数据时代 大
  • kali工具-信息收集之存活主机识别(arping)

    一 介绍 ARP协议是 Address Resolution Protocol 地址解析协议 的缩写 在同一以太网中 通过地址解析协议 源主机可以通过目的主机的IP地址获得目的主机的MAC地址 arping程序就是完成上述过程的程序 arp
  • Hudi学习1:概述

    Hudi 概念 Hudi跟hive很像 不存储数据 只是管理hdfs数据 1 小文件处理 2 增加支持update delete等操作 3 实时数据写入 以下是官方点介绍 Apache Hudi 是一个支持插入 更新 删除的增量数据湖处理框
  • 求枚举变量长度‘’ sizeof_sizeof你真的弄明白了吗?

    sizeof基础 在C语言中 sizeof是一个操作符 operator 而不是函数 其用于判断数据类型或者表达式长度 所占的内存字节数 其有两种表达形式 1 sizeof 类型说明符 2 sizeof 表达式 我们通常使用第 1 种形式
  • redis持久化之AOF(Append Only File)及其总结

    1 是什么 以日志的形式来记录每个写操作 将redis执行过的所有写指令记录下来 读操作不记录 只许追加文件但不可以改写文件 redis启动之初会读取该文件重新构建数据 换言之 redis重启的话就根据日志文件的内容将写指令从前到后执行一次
  • windows10上的MySQL8.0 安装、配置、启动及登录

    MySQL8 0安装 1 首先下载MySQL8 0社区版 Community 安装程序 下载地址 https dev mysql com downloas windows installer 8 0 html 2 下载后打开安装程序按提示操
  • 大语言模型之一 Attention is all you need ---Transformer

    大语言模型已经在很多领域大显身手 其应用包括只能写作 音乐创作 知识问答 聊天 客服 广告文案 论文 新闻 小说创作 润色 会议 文章摘要等等领域 在商业上模型即产品 服务即产品 插件即产品 任何形态的用户可触及的都可以是产品 商业付费一般
  • jstat -gc pid 查询jvm 状态

    top命令查看相关应用的pid jstat gc 24272 参数说明 S0C 第一个幸存区的大小 S1C 第二个幸存区的大小 S0U 第一个幸存区的使用大小 S1U 第二个幸存区的使用大小 EC 伊甸园区的大小 EU 伊甸园区的使用大小
  • Linux 没有鼠标解决复制粘贴问题

    1 复制粘贴命令 在一行的任何位置按下yy y是yanked拷贝的意思 然后去想粘贴的位置按下p即可 p是粘贴的意思 2 如果想复制3行的话 按下3yy 就复制3行 如果想复制多行的话 直接按数字可以选中多好 然后粘贴 3 剪切和粘贴 把光
  • 【C语言技巧】51单片机打印 printf 格式化字符不正确解决办法

    原文来自keil软件 help 一栏 如下图 printf include
  • Windows防火墙配置脚本讲解

    一 natsh命令 Netsh 是命令行脚本实用工具 它允许从本地或远程显示或修改当前正在运行的计算机的网络配置 Netsh 还提供了一个脚本功能 对于指定计算机 可以通过此功能以批处理模式运行一组命令 为了存档或配置其他服务器 Netsh
  • 爬虫写得好,‘劳烦’吃得饱

    前言 提起 爬虫 总有一丝神秘色彩 大家都调侃 爬虫写得好 劳烦 吃得饱 虽然是 高危职业 但在大数据横行的年代 爬虫与反爬虫的需求却在猛烈增加 他们的关系就像矛与盾 越来越多的公司造 矛 发起攻势 获取数据 又或者在造 盾 封锁信息 这种
  • echarts设置tooltip的宽高问题

    ECharts容器 1 ECharts容器设置宽度width 值可以是百分比或者是像素 当设置为百分比时 要检查父元素是否设置了宽度 注意 容器宽度设置不要用min width 不然会发现tooltip的宽度等于min width设置的宽度
  • flutter 微信支付 跳转小程序 分享到小程序

    flutter 微信支付 跳转小程序 分享到小程序 直接上步骤 第一步 pubspec yaml 添加依赖 fluwx 1 2 1 1 fluwx最新3 0不太好用 第二步 界面添加 import package fluwx fluwx d
  • MMDetection3D/3D目标检测中的边界框和坐标系介绍(含相关函数以及坐标变换的介绍)

    1 准备知识 参考 带你玩转 3D 检测和分割 二 核心组件分析之坐标系和 Box 知乎 1 1 坐标系介绍 激光雷达坐标系通常定义如下左图所示 其中指向前方 指向左方 指向上方 相机坐标系通常定义如上右图所示 其中指向右方 指向下方 指向
  • Logisim状态机的搭建

    有限状态机概述 有限状态机 Finite State Machine FSM 是表示有限个状态以及这些状态之间的转移和动作 输入 之间关系的离散模型 有限状态机是组合逻辑和寄存器逻辑的特殊组合 组合逻辑部分包括次态逻辑和输出逻辑 分别用于状
  • Bugku:Simple_SSTI_1

    很简单的模板注入 直接F12查看提示 flag在secret key下 bugku才是对萌新最友好的平台
  • linux 可执行文件反编译,如何反汇编,修改,然后重新组装一个Linux可执行文件?...

    我不认为有任何可靠的方法来做到这一点 机器码格式非常复杂 比assembly文件更复杂 编译的二进制文件 比如ELF格式文件 并不是真的有可能产生一个源代码汇编程序 它将编译成相同的 或类似的 二进制文件 为了理解差异 将GCC编译直接输出
  • linux命令之cal详解

    linux学习笔记之cal 在所有的类linux操作系统中 cal或者ncal命令会在命令行打印出一个有格式的日历 阳历 默认情况下 即不给定任何参数的情况下 cal和ncal将会输入本月的日历 并突出显示当前的日期 在Ubuntu22 0