linux mail命令及其历史

news2024/12/24 8:27:26

一、【问题描述】

最近隔壁组有人把crontab删了,crontab这个命令有点反人类,它的参数特别容易误操作:

crontab -   是删除计划表

crontab -e 是编辑,总之就是特别容易输入错误。

好在可以通过mail命令找回,但是mail是一个远古命令,他的操作也很反人类

二、【命令展示】

在 Linux 中使用 mail 命令时,可以通过以下操作来导航和操作邮件内容:

  1. 上下移动:使用 jk 键来向下和向上移动。
  2. 左右移动:可以使用 hl 键来向左和向右移动。
  3. 查看邮件:输入邮件编号并按 Enter 键来查看特定邮件。例如,输入 1 并按 Enter 键查看第一封邮件。
  4. 删除邮件:输入 d 加邮件编号,然后按 Enter 键删除特定邮件。例如,输入 d 1 删除第一封邮件。
  5. 退出邮件客户端:输入 q 并按 Enter 键退出 mail 命令

三、【总结】

笔者去查了一下,这个mail命令究竟有多远古, 原文是这么写的

The most ancient command is mail, 
which was included in Unix 1st Edition in 1971 according to the manuals. 
At this time, Unix had no remote communication facility at all,
so mail would simply write to other users' files on a single machine.

GPT是这么回复的

所以总的来说,mail的操作习惯不同是因为其本身就是一个远古命令,如果希望用好使一点的,可以用mutt来平替 

四、【参考】

这篇文章是笔者查资料看到的,有兴趣可以看看

mail, Mail, mailx, nail—history notes (sourceforge.net)

1. 机翻

mail, Mail, mailx, nail—history notes:

邮件命令在Unix系统中的名称长期以来一直存在混淆。以下是一些澄清:

最古老的命令是mail,根据手册,它是在1971年的Unix第一版中包含的。那时,Unix根本没有远程通信设施,所以邮件只是简单地写入到单台机器上其他用户的文件中。

随后的Unix版本中,mail进行了一些更新;它可以调用uux,后来是sendmail,用于发送远程消息,并至少具有一些交互式命令用于在邮箱中导航。像这样的邮件命令是通过System V接口定义(SVID)和Single Unix规范(直到1998年版)标准化的。

随着后续版本的System V,mail仍然获得了一些更多的功能,例如打印头部摘要的功能。这样的邮件命令的开源版本作为Heirloom Toolchest软件包的一部分是可用的;查看其手册页以获取其功能概述。然而,所有派生自原始mail的命令仍然有些原始;因为它们既不调用分页器查看超过CRT屏幕的消息,也没有提供设置主题行的方法,所以它们不太适合用于互联网邮件。尽管如此,它们仍然适用于发送短消息。

然而,从中应该学到的是,使用mail命令的-s选项在shell脚本中设置主题行是不可移植的,不会在某些Unix实现上起作用。

在1978年,Kurt Shoens为Unix编写了另一个邮件用户代理:Berkeley Mail。它不是原始邮件命令的派生版本。当它被包含在2BSD发布版中时(这仍然只是Unix第6或第7版系统的附加组件),它的用户界面已经完整(所以如果在Heirloom mailx中设置了bsdcompat选项,它实际上看起来和感觉都一样)。安装后,Berkeley Mail被发现为/usr/ucb/Mail,但Unix mail仍然可以在/bin/mail中找到。

混淆真正开始于3BSD发布版(一个完整的系统,而不是一个附加组件),因为它还提供了一个/usr/ucb/mail命令,它只是一个指向Mail的链接。因此,根据PATH设置,输入mail可能会调用Unix mail或Berkeley Mail。这在所有Berkeley发布版本中一直保持不变,直到4.3BSD-Tahoe及其派生版本;最终,Unix mail被完全删除,但名称在所有位置上仍然保持为指向Mail的链接。

对于System V Release 3,创建了Berkeley Mail的一个派生版本:mailx。它基本上与Mail兼容,但有一些附加功能,并且用户界面略有改变(如果未设置bsd...兼容变量,Heirloom mailx使用类似的界面)。

这个System V mailx命令随后也在1992年被标准化为POSIX.2,包括许多扩展。

Linux发行版使情况变得更加混乱。它们只能使用原始的Berkeley Mail(直到2005年的OpenSolaris发布,System V mailx是封闭源代码)。然而,由于Mail和mailx对于大多数应用程序来说足够相似,对于许多应用程序来说,也似乎适合于具有简单的mailx命令,该命令只是Mail,因此不足以达到正式的POSIX.2一致性。大多数发行版也使mail调用Mail,因为Unix mail也是封闭源代码,直到2002年1月。

为了完全混淆,一些商业Unix供应商随着时间的推移放弃了对原始mail的支持,并使其调用mailx。

Heirloom mailx源自Berkeley Mail。自版本10以来,Heirloom mailx还具有System V和POSIX mailx添加的独立实现。

Heirloom mailx以前是以nail的名称开发的,并于2006年3月整合到Heirloom项目中。

如果被称为Mail,则应创建一个简短的shell脚本,在调用mailx之前设置bsdcompat变量。但mail是一个完全不同的命令,如果需要使用开源版本,则应从Heirloom Toolchest获取。可移植的脚本应该在不带任何选项的情况下调用mail,或者应该使用标准化的mailx接口。在任何情况下,它们应将MAILRC变量设置为/dev/null以绕过用户的配置。由于这个变量存在于mailx中,但不存在于Mail中,因此在脚本中使用Mail不太可靠,应该避免。(实际上,这意味着在许多BSD衍生版本和Linux发行版上,没有可靠的方法从脚本发送邮件。但这是一个人必须面对的事实。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1684862.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS-9配置静态IP地址

查看配置命令nmcli CentOS 9 使用 nmcli 命令行工具进行网络配置。以下是配置静态 IP 地址的步骤和示例代码:相对以前centos7之类的,9版本的默认的网络是NetworkManager,网络配置也有较大改变 nmcli con show用vim进行编辑配文件 cd /etc/…

ESP32学习笔记:WS2812B驱动

WS2812B是一款贴片RGB灯。由于采用了单总线通讯,所以需要特别关注下它的通讯时序。 调试细节: 本来以为会是一个比较简单的调试,结果还是花了很长时间才调试完成。 首先是关于ESP32的纳秒级延时确定,当时按照空指令始终调试不出来…

ECharts实现地图飞线

echarts版本:https://echarts.apache.org/zh/changelog.html v5.x.x版本:不提供china.js和china.json文件 v4.x.x版本:使用npm安装echarts,默认包含china.js和china.json文件 目录 一、Html工程 二、vue工程 三、vue工程 四、矢…

国赛部分复现

MISC 神秘文件 下载解压后是个pptm文件,内容丰富 使用010打开ppt查看 发现为PK开头,属于压缩包文件。复制粘贴ppt,修改副本后缀为.zip并解压 part1 查看属性,发现奇怪字符 QFCfpPQ6ZymuM3gq 根据提示Bifid chipher,…

简单美观易上手的 Docker Compose 可视化管理器 Dockge

本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 Dockge 是 Uptime Kuma 作者的新作品,因此 UI 风格与 Uptime Kuma 基本一致,如果你正在使用 Uptime Kuma 的话,那么 Dockge 的 UI 设计应该也不会让你失望。Dockge 主打…

【Floodfill算法】dfs或者bfs解决floodfill算法

1.图像渲染 图像渲染 dfs解决代码&#xff1a; class Solution { public:int dx[4] {0, 0, -1, 1};int dy[4] {-1, 1, 0, 0};int m, n;int prev;vector<vector<int>> ret;vector<vector<int>> floodFill(vector<vector<int>>& ima…

SpringBean-生命周期

Spirng Bean 元信息配置阶段 1 面向资源 xml配置&#xff08;很熟悉了不做讨论&#xff09;Properties配置 public class BeanMetaDemo {public static void main(String[] args) {DefaultListableBeanFactory factory new DefaultListableBeanFactory();PropertiesBeanDef…

从零开始搭建SpringCloud Alibaba微服务架构

Spring Cloud Alibaba是Spring Cloud的一个拓展项目&#xff0c;它用于构建基于阿里巴巴的微服务应用。它提供了多个阿里巴巴的开源组件&#xff0c;如Nacos、Sentinel、Dubbo等&#xff0c;用于解决微服务架构中的服务注册、配置管理、流量控制等问题。 Spring Cloud Alibaba…

老题重测,国产AI大模型从“智障”走向“智能”?

2023年8月&#xff0c;拿我家小孩的一道小学数学题来测试了一批知名的国产大模型&#xff0c;结果很失望&#xff0c;没有一个能答对。最近正好看到OpenAI GPT-4o发布的新闻&#xff0c;于是跑去重测了一遍&#xff0c;结果很惊喜&#xff0c;绝大部分国产AI大模型都给出清晰、…

MySQL密码忘记之通过Navicat保存的加密密码来解码过程

MySQL密码忘记之通过Navicat保存的加密密码来解码过程 一、前言 许久不用数据库MySQL&#xff0c;因此密码忘记&#xff0c;但是在Navicat上保存了MySQL的密码&#xff0c;然而Navicat上保存的密码是加密的&#xff0c;无法直接复制来使用&#xff0c;因此需要对Navicat上保存…

如何停止 iPad 和 iPhone 之间共享短信,独立接收和发送消息

概括 在当今高度互联的数字世界中&#xff0c;Apple 设备之间的无缝连接性提供了极大的便利&#xff0c;尤其是在消息同步方面。iPhone 和 iPad 用户通常可以享受到设备间短信的自动同步功能&#xff0c;这意味着无论是在哪个设备上&#xff0c;用户都可以接收和回复消息。然而…

英伟达发布亮眼财报,大超预期!

KlipC报道&#xff1a;5月22日美股收盘后&#xff0c;英伟达公布第一财季财报。实现了260亿美元营收&#xff0c;远超分析师预测的246.5亿美元&#xff0c;同比增长262%。Q1净利润148.1亿美元&#xff0c;同比增长628%。此外&#xff0c;Q1毛利率也继续上升&#xff0c;达到了7…

VMware ESXi 7.0 U3q 发布 - 领先的裸机 Hypervisor

VMware ESXi 7.0 U3q 发布 - 领先的裸机 Hypervisor VMware ESXi 7.0 Update 3 Standard & All Custom Image for ESXi 7.0U3 Install CD 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-7-u3/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出…

【HCIP学习】RSTP和MSTP

一、RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成树&#xff09; 1、背景&#xff1a;RSTP从STP发展而来&#xff0c;具备STP的所有功能&#xff0c;可以兼容stp运行 2、RSTP与STP不同点 &#xff08;1&#xff09;减少端口状态 STP:disabled\blockin…

Diffusion Policy:基于扩散模型的机器人动作生成策略

项目地址&#xff1a; Diffusion Policy (columbia.edu) 一、摘要 本文介绍了 "扩散策略"&#xff0c;这是一种生成机器人行为的新方法&#xff0c;它将机器人的视觉运动策略&#xff08;visuomotor policy&#xff09;表示为条件去噪扩散过程&#xff08;conditi…

P1【知识点】【数据结构】【链表LinkedList】C++版

链表是一种逻辑上连续&#xff0c;内存上分散的线性表数据结构&#xff0c;是用一组任意的空间&#xff08;可以连续&#xff0c;也可以不连续&#xff09;来存放数据元素。每个数据元素成为一个”结点“&#xff0c;每个结点由数据域和指针域组成。 访问元素&#xff08;Acce…

RK3588 Android13 TvSetting 中增加字体大小调整菜单

前言 电视产品,客户要求在设置中设备偏好设置子菜单里的显示和声音二级菜单里增加字体大小菜单功能, 其实里面本来有个文字缩放菜单,但不满足客户需求,那就新加一个也不是什么难事,开整。 效果图 TvSetting 部分修改文件清单 packages/apps/TvSettings/Settings/res/va…

解锁 user-agent(UA)识别 Api 接口的无限潜力

近年来&#xff0c;随着移动设备的普及和互联网的迅猛发展&#xff0c;用户使用不同的操作系统、浏览器以及硬件设备来访问网页的情况越来越多样化。为了更好地了解用户的访问环境和提供更好的用户体验&#xff0c;我们需要通过用户的访问UA&#xff08;User-Agent&#xff09;…

指针,指针变量,引用,取地址符,malloce()函数使用,C中“—>” 和“ . ” 作用与区别

目录 一&#xff1a;指针,指针变量&#xff0c;引用&#xff0c;取地址符&#xff1a; 前提 &#xff1a; 1.“ * ” 的两种用途 2." & “的两种用途 2.1&#xff1a;引用 2.2&#xff1a;取地址 补充&#xff1a; 二 : malloc(),动态申请地址空间 1.原型定义…

IEEE Transactions on Neural Networks and Learning Systems神经网络和学习系统TNNLS论文投稿须知

一、TNNLS介绍 IEEE Transactions on Neural Networks and Learning Systems作为控制领域的TOP期刊&#xff0c;2024年5月影响因子为10.4&#xff0c;虽然有些下降&#xff0c;之前五年平均影响因子为11.2&#xff0c;但依然是该领域王牌期刊&#xff0c;接收关于神经网络和相…