是否想让您的 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 的系统。