You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下非root用户执行crontab -e报错/bin/sh: 1: mvim: not found

Ubuntu 22.04下非root用户执行crontab -e报错/bin/sh: 1: mvim: not found

问题重现

你碰到的情况确实挺典型的:非root账号执行crontab -e时会抛出以下错误:

/bin/sh: 1: mvim: not found
crontab: "mvim" exited with status 127

但切换到root用户用sudo crontab -e却能正常编辑定时任务,而且你只做过常规的aptitude系统升级,完全没头绪哪里出了问题。

问题根源

其实问题出在你的~/.zshrc配置里的编辑器环境变量设置。crontab在运行时不会加载交互式shell的配置文件(比如.zshrc),它的执行环境非常精简,找不到你设置的mvim编辑器;而root用户的环境可能默认使用vim,所以没这个问题。

已验证的解决方法

你自己找到的方案完全可行:打开~/.zshrc,找到这段关于默认编辑器的配置并注释掉,就能解决问题了:

# Preferred editor for local and remote sessions
#if [[ -n $SSH_CONNECTION ]]; then
#export EDITOR='vim'
#else
#export EDITOR='mvim'
#fi

如果之后你还想自定义默认编辑器,建议换一种方式:比如在~/.profile里全局设置export EDITOR='vim',或者确保mvim的完整路径被加入到crontab能识别的环境变量中。不过最直接的就是暂时注释掉这段区分本地/远程的编辑器配置,让crontab使用系统默认编辑器即可。

备注:内容来源于stack exchange,提问作者Paul B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:35:29