![/var/mail/root——显示所有 bash 输出](https://linux22.com/image/789525/%2Fvar%2Fmail%2Froot%E2%80%94%E2%80%94%E6%98%BE%E7%A4%BA%E6%89%80%E6%9C%89%20bash%20%E8%BE%93%E5%87%BA.png)
我正在使用Ubuntu 18.04.6 LTS
并最近安装了apt-get install mailutils
。注意到在运行任何命令时它都会You have new mail in /var/mail/root
额外显示。
所以我卸载了mailutils
软件包。但是对于每个命令它仍然显示以下消息。
$ ls
You have new mail in /var/mail/root
因为我没有mail
包裹。所以不确定为什么仍然显示上述消息。
$ mail
-bash: mail: command not found
甚至rm -rf /var/mail/root
在删除后也自动创建。那么请告诉我如何在运行 bash 命令时停止获取上述邮件输出?
答案1
有几件事:
据我所知,Linux 标准库要求 Linux 系统安装一个最小的邮件子系统(用于进程与用户通信以及用户相互通信)。
例如,这就是允许 cron 将错误和批处理输出发送给批处理的所有者的原因。
管理员可以重定向应用程序生成的消息的发送位置(历史上是邮政局长),但合理的默认设置是将它们转发/发送到必须始终存在的本地用户帐户:root
根用户的经典系统邮箱是/var/spool/mail/root
和/或/var/mail/root
无论是否mailutils
安装(邮件实用程序集合),都会发生这种情况。
如果您不希望系统邮件消息/警告发送给 root ,请调整并将其发送给其他用户或外部电子邮件地址(通常通过更新系统范围的别名/etc/aliases
)
———————
您收到的新邮件警告通常是由您的 shell 生成的。
在 bash 中,它们由许多变量控制,通常在系统范围或个人 bashrc 或配置文件中设置
从man 1 bash
MAIL If this parameter is set to a file or directory name and the MAILPATH variable is not set, bash informs
the user of the arrival of mail in the specified file or Maildir-format directory.
MAILCHECK
Specifies how often (in seconds) bash checks for mail. The default is 60 seconds. When it is time to
check for mail, the shell does so before displaying the primary prompt. If this variable is unset, or
set to a value that is not a number greater than or equal to zero, the shell disables mail checking.
MAILPATH
A colon-separated list of filenames to be checked for mail. The message to be printed when mail ar‐
rives in a particular file may be specified by separating the filename from the message with a `?'.
When used in the text of the message, $_ expands to the name of the current mailfile. Example:
MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"'
Bash can be configured to supply a default value for this variable (there is no value by default), but
the location of the user mail files that it uses is system dependent (e.g., /var/mail/$USER).
我会检查这些设置并进行调整以减少新邮件警告的频率(通常仅在登录时,但新邮件警告是由 pam_mail 而不是您的 shell 生成的)