linux mail命令及其歷史

一、【問題描述】

最近隔壁組有人把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.pswp.cn/web/14624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14624.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14624.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【計算機網絡】初識Tcp協議

💻文章目錄 📄前言Tcp基礎概念Tcp 的報文格式三次握手四次揮手 Tcp的滑動窗口機制概念超時重傳機制高速重傳 TCP傳輸控制機制流量控制擁堵控制慢啟動 Tcp的性能優化機制延遲應答捎帶應答 📓總結 📄前言 TCP三次握手、四次揮手&…

Java刷題總結(面試)

1、String類 String不可變 java 中String是 immutable的,也就是不可變,一旦初始化,其引用指向的內容是不可變的。 也就是說,String str “aa”;str“bb”;第二句不是改變“aa”所存儲地址的內容&#xf…

Overleaf是什么?如何升級到標準版OR專業版?

1. Overleaf介紹 Overleaf是一個使用LaTeX進行多人協同編輯的平臺,可以免費注冊和使用,不用下載LaTeX軟件,是最為著名的LaTeX在線協作系統。 主要特色是有LaTeX插件,編輯功能十分完善,有實時預覽(即編即看…

Java 使用繼承和重寫父類方法寫一個商品入庫案例

package 練習.商品入庫;import java.util.Scanner; // 抽象手機類 public abstract class Phone {//測試方法public static void main(String[] args){// 華為手機huawei h new huawei();h.setName("華為P40");h.setPrice(1999.99);h.setConfiguration("8128GB…

docker 安裝 私有云盤 nextcloud

拉取鏡像 # 拉取鏡像 sudo docker pull nextcloud運行nextcloud 容器 # 內存足夠可以不進行內存 --memory512m --memory-swap6g # 橋接網絡 --network suixinnet --network-alias nextcloud \ sudo docker run -itd --name nextcloud --restartalways \ -p 9999:80 \ -v /m…

【排名公布】綿陽男科醫院排名發布,綿陽高水男科醫院究竟咋樣啊?

【排名公布】綿陽男科醫院排名發布,綿陽高水男科醫院究竟咋樣啊? 綿陽高水醫院,是一家醫保定點單位,地址位于綿陽市涪城區長虹大道北段113號。一所與國際接軌的現代化男子醫院,有良好地就醫環境,擁有多名有經驗的專家…

基于Tensorflow實現了三個模型對MNIST數據集的識別

歡迎大家點贊、收藏、關注、評論啦 ,由于篇幅有限,只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 MNIST手寫數字數據集是計算機視覺和機器學習領域的一個經典數據集,常用于評估圖像…

ubuntu安裝文件

ubuntu如何安裝deb文件? ubuntu離線安裝deb文件的兩種方法_系統工具_軟件教程_腳本之家 1. 雙擊安裝 2.命令安裝 1.、我們打開終端窗口,然后先使用cd命令進入deb文件所在的目錄,例如: cd ~/Downloads 2、接著我們就可以使用dpkg命令來安裝這…

攻防世界-mobile-easy-app詳解

序言 這道題網上很多分析,但是分析的都是arm版本的,我選了arm64的來分析,arm64相比arm難度高一些,因為arm64編譯器搞了inline優化,看起來略抽象 分析 這道題邏輯很簡單,輸入flag然后一個check函數驗證&a…

改進rust代碼的35種具體方法-類型(十八)-不要驚慌

上一篇文章 它看起來非常復雜,這就是為什么它貼合的塑料蓋上用大號友好字母印上“不要恐慌”的原因之一。——道格拉斯亞當斯 此項目的標題將更準確地描述為更喜歡返回Result而不是使用panic!(但不要驚慌更吸引人)。 Rust的panic機制主要是為…

算法入門----小話算法(1)

下面就首先從一些數學問題入手。 Q1&#xff1a; 如何證明時間復雜度O(logN) < O(N) < O(NlogN) < O(N2) < O(2N) < O(N!) < O(NN)? A&#xff1a; 如果一個以整數為參數的不等式不能很容易看出不等的關系&#xff0c;那么最好用圖示或者數學歸納法。 很顯…

Python3 筆記:sort() 和 sorted() 的區別

1、sort() 可以對列表中的元素進行排序&#xff0c;會改變原列表&#xff0c;之前的順序不復存在。 list.sort&#xff08;key&#xff0c; reverse None&#xff09; key&#xff1a;默認值是None&#xff0c;可指定項目進行排序&#xff0c;此參數可省略。 reverse&#…

rmxprt轉換的3D模型只有一半?---模大獅模型網

在3D建模和渲染的工作流程中&#xff0c;我們經常需要用到各種轉換工具來兼容不同平臺或軟件之間的模型格式。rmxprt(或其他類似的模型轉換工具)就是其中的一種&#xff0c;它能夠將模型從一種格式轉換為另一種格式。然而&#xff0c;有時在轉換過程中可能會遇到一些問題&#…

微服務雪崩問題、Sentinel(請求限流、線程隔離、服務熔斷)、Seata分布式事務

文章目錄 前言一、微服務保護二、Sentinel2.1 微服務整合2.2 簇點鏈路2.3 請求限流2.4 線程隔離2.5 服務熔斷 三、分布式事務3.1 Seata3.1.1 Seata架構3.1.2 部署TC服務3.1.3 微服務集成Seata 3.2 XA模式3.3 AT模式 前言 微服務之間為什么會雪崩&#xff1f;怎么解決雪崩問題&…

MySQL存儲過程淺析

存儲過程 定義&#xff1a; 存儲過程是一組為了完成特定功能的SQL語句&#xff0c;是由一些SQL語句組成的代碼塊&#xff0c;這些代碼塊像方法一樣實現一些功能&#xff08;對單表或多表的增刪改查&#xff09;&#xff0c;然后給代碼塊起一個名字&#xff0c;用到的時候再調用…

Oracle體系結構初探:數據庫啟動與停止

往期內容 參數管理 控制文件添加 啟動 在啟動Oracle數據庫時&#xff0c;我們一般會使用如下命令&#xff1a; startup 雖然命令只有一個&#xff0c;但其中卻是經歷了3個階段&#xff0c;從下面執行 startup 命令返回也可以看出來。 總結為3個階段&#xff1a; nomount&…

ubuntu下python導入.so庫

ubuntu下python導入.so庫 文章目錄 ubuntu下python導入.so庫1. 什么是.so文件&#xff1f;2. 使用python腳本編譯.so庫文件Reference 最近遇到了python導入c編譯的 .so庫的問題&#xff0c;發覺挺有意思&#xff0c;于是寫下這篇blog以作記錄。 1. 什么是.so文件&#xff1f; …

【簡單介紹下深度神經網絡】

&#x1f3a5;博主&#xff1a;程序員不想YY啊 &#x1f4ab;CSDN優質創作者&#xff0c;CSDN實力新星&#xff0c;CSDN博客專家 &#x1f917;點贊&#x1f388;收藏?再看&#x1f4ab;養成習慣 ?希望本文對您有所裨益&#xff0c;如有不足之處&#xff0c;歡迎在評論區提出…

句柄降權繞過CallBacks檢查

看到前輩們相關的文章&#xff0c;不太明白什么是句柄降權&#xff0c;于是專門去學習一下&#xff0c;過程有一點波折。 句柄降權 什么是句柄 當一個進程利用名稱來創建或打開一個對象時&#xff0c;將獲得一個句柄&#xff0c;該句柄指向所創建或打開的對象。以后&#xf…

什么是DNS緩存投毒攻擊,有什么防護措施

隨著企業組織數字化步伐的加快&#xff0c;域名系統&#xff08;DNS&#xff09;作為互聯網基礎設施的關鍵組成部分&#xff0c;其安全性愈發受到重視。然而&#xff0c;近年來頻繁發生的針對DNS的攻擊事件&#xff0c;已經成為企業組織數字化發展中的一個嚴重問題。而在目前各…