一、【問題描述】
最近隔壁組有人把crontab刪了,crontab這個命令有點反人類,它的參數特別容易誤操作:
crontab -? ?是刪除計劃表
crontab -e 是編輯,總之就是特別容易輸入錯誤。
好在可以通過mail命令找回,但是mail是一個遠古命令,他的操作也很反人類
二、【命令展示】
在 Linux?中使用 mail
命令時,可以通過以下操作來導航和操作郵件內容:
- 上下移動:使用
j
和k
鍵來向下和向上移動。 - 左右移動:可以使用
h
和l
鍵來向左和向右移動。 - 查看郵件:輸入郵件編號并按 Enter 鍵來查看特定郵件。例如,輸入
1
并按 Enter 鍵查看第一封郵件。 - 刪除郵件:輸入
d
加郵件編號,然后按 Enter 鍵刪除特定郵件。例如,輸入d 1
刪除第一封郵件。 - 退出郵件客戶端:輸入
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發行版上,沒有可靠的方法從腳本發送郵件。但這是一個人必須面對的事實。)