我正在使用全新安装的 Ubuntu 16.04 LTS。
每当我输入:
sudo crontab -e
或者
sudo -u www-data crontab -e
该命令打印一些数字,但不打印任何其他内容。无论你以何种方式试图摆脱它,你都无法做到。
问题
- 首先,如何退出上述命令?我只是被困住了。
- 为什么该命令不显示 crontab 条目?
- 如何使上述命令显示 crontab 条目?
编辑
我选择了 vim.basic 编辑器:
sudo update-alternatives --config editor
但是当我echo $EDITOR
打印空的时候。
另外,
crontab -e
-> 工作正常
sudo -u www-data crontab -e
-> 如上所述卡住
答案1
我猜你的默认编辑器未设置并且默认为ed
.
如果你运行你会得到什么:
env | egrep 'EDITOR|VISUAL'
sudo env | egrep 'EDITOR|VISUAL'
sudo -u www-data env | egrep 'EDITOR|VISUAL'
退出的方法ed
是输入:q
↵ Return
要设置不同的编辑器,您可以执行以下操作:
sudo -u www-data EDITOR=$EDITOR crontab -e
答案2
首先,如何退出上述命令?我只是被困住了。
我们不知道您使用的是什么编辑器。尝试Esc :q
(vim) 或Ctrl-x
(nano) 或Ctrl-x Ctrl-c
(emacs) 或q
( ed
)。
- 运行命令
select-editor
并选择您要使用的编辑器 - 替代方案:设置环境变量
EDITOR
或VISUAL
您喜欢的编辑器。
示例:export EDITOR=emacs
使用 emacs 或export EDITOR=nano
nano。 - 然后,运行
crontab -e
编辑你的 crontab - 用于
crontab -l
显示 crontab 的内容
答案3
我已经应用了以下命令
# Interactive way
update-alternatives --config editor
# And choose 3 (vim.basic)
# Non Interactive way
sudo update-alternatives --set editor /usr/bin/vim.basic
# Verify as
sudo update-alternatives --query editor
或者,您可以将其添加到~/.bashrc
或~/.bash_profile
归档并重新加载以反映更改。
export VISUAL=vim
export EDITOR="$VISUAL"
对于www-data
用户的 crontab,我使用为:
sudo crontab -u www-data -e
这解决了这个问题。
答案4
不要使用 crontab -e
- 除非您确切地知道您的系统、帐户和会话是如何配置的,否则您不知道接下来会发生什么。
- 改变其中任何一项,就会发生不同的事情
- 即使它确实在您可以操作的编辑器中打开您的 crontab,放弃更改也可能很棘手
相反,将 crontab 写入临时文件,使用您选择的编辑器,将文件导入回 cron:
$ crontab -l >mycron
$ vi mycron
$ crontab <mycron
(我还强烈建议不要以 www-data 用户身份运行 cron 作业)