如何更改默认 crontab 编辑器

是否想让您的 crontab 使用您偏好的文本编辑器,而不是系统默认的?本文将指导您完成此操作。这些方法适用于 Linux、macOS 以及其他类 Unix 操作系统。

关于文本编辑器的敏感话题

文本编辑器似乎只是一个普通的工具,但人们对个人偏好的编辑器往往有着强烈的感情。这种情感深度甚至引发了自 1985 年以来持续不断的 编辑器之战。我们不会加入这场争论,也不会推荐某个特定的编辑器。我们只是想向您展示如何更改 crontab 的默认编辑器,如果您有此需求的话。

crontab -e 命令会打开一个编辑器,让您编辑您的 cron 表。cron 表中记录了您设置的所有定时任务。本文不会深入探讨 cron 任务的细节,而是重点介绍与 crontab -e 命令相关的编辑器。

首次在 Bash 终端使用 -e (编辑) 选项执行 crontab 命令时,系统会提示您选择要使用的编辑器。您只需输入 crontab、空格、-e,然后按下 Enter 键即可。

crontab -e

之后,您的 cron 表将通过您选择的编辑器打开。在这个例子中,我们通过按下 1 键选择了 nano。

以后每次执行 crontab -e 命令都会使用您从菜单中选择的编辑器。如果稍后您想更改,或者如果您第一次没有看到菜单,应该如何选择其他编辑器呢?这很简单。您可以使用 select-editor 命令。

select-editor

到目前为止,一切都很简单。但是,如果您想使用不在菜单中的编辑器怎么办?或者,如果您使用的操作系统不支持 select-editor 命令怎么办?我们也可以解决这些问题。

对于没有提供选择编辑器的发行版怎么办?

我们可以通过在 .bash_profile 文件中添加一行代码来设置 crontab 的默认编辑器。 请输入以下命令:

gedit ~/.bash_profile

当编辑器打开后,在该文件中添加以下内容:

export VISUAL="gedit"

当然,您可以将 "gedit" 替换为您想使用的编辑器的启动命令。保存文件并关闭编辑器。要使更改生效,请注销并重新登录,或者执行以下命令:

. ~/.bash_profile

请注意,该行以句点(.)开头。source 命令是句点命令的别名,作用相同。但并非所有发行版都提供 source 命令。句点命令应该始终可用。需要说明的是,本文测试所用的 Ubuntu、Debian、Manjaro、Arch、Fedora、CentOS 和 OpenIndiana 发行版都支持 source 命令。

无论您输入句点还是单词 source,该命令都会读取 .bash_profile 中的设置,并将其应用到当前会话。现在,当您输入:

crontab -e

您指定的编辑器将会用于打开您的 cron 表。

您的 .bash_profile 文件可能不是空的

当您编辑 .bash_profile 文件时,它可能已经包含内容。您只需滚动到文件底部,将 export VISUAL="gedit" 行添加到末尾即可。这是 Manjaro Linux 中的默认 .bash_profile 文件,添加了新行:

最后,关于 OpenIndiana

在 OpenIndiana 系统中,您需要将 export VISUAL="gedit" 行添加到 .bashrc 文件中,而不是 .bash_profile 文件中。您需要输入的命令是:

pluma ~/.bashrc

添加该行,保存文件,然后关闭并重新打开终端窗口。

执行 crontab -e 命令以验证您的更改是否已生效:

crontab -e

现在,您的 cron 表将会通过 nano 编辑器打开。

现在,您可以在多种类型的 Linux 系统上指定您想要的编辑器,无论是 Debian、RedHat、Arch 还是更接近普通 Unix 的系统。