Как назначить редактор по умолчанию для crontab и использовать любимый редактор
Быстрые ссылки
Тонкая тема выбора редакторов
Что делать, если в дистрибутиве нет select-editor
.bash_profile может быть не пустым
OpenIndiana: особый случай

Хотите, чтобы команда crontab открывала тот редактор, который вы предпочитаете, а не наоборот? В этой инструкции показано, как это сделать на Linux, macOS и других Unix-подобных системах.
Как crontab выбирает редактор
Когда вы выполняете команду
crontab -eутилита открывает редактор для редактирования таблицы cron (списка запланированных заданий). По умолчанию поведение зависит от нескольких факторов, в том числе от переменных окружения VISUAL и EDITOR и от инструментов настройки, доступных в вашей системе (например, select-editor).
Коротко о терминах:
- VISUAL — предпочтительный визуальный/интерактивный редактор; обычно проверяется первым.
- EDITOR — запасной (тонкий) редактор, если VISUAL не задан.
Общий порядок выбора (типичный): переменная VISUAL, затем EDITOR, затем системная настройка по умолчанию или меню выбора.

При первом вызове crontab -e вам может предложить выбрать редактор из списка. Выбранный редактор будет использован при следующих запусках.

Если вы передумали после первого выбора, можно сменить редактор вручную — подробнее ниже.
Запуск select-editor (простое решение на Debian/Ubuntu и родственных)
На многих дистрибутивах есть утилита select-editor, которая показывает меню и сохраняет выбор пользователя. Запустите её так:
select-editor
Это самый простой путь, если ваш дистрибутив предоставляет этот инструмент.
Что делать, если в дистрибутиве нет select-editor
Вы можете явно задать переменные окружения в файле запуска вашей оболочки.
Пример для Bash (обычно ~/.bash_profile или ~/.bashrc):
gedit ~/.bash_profileДобавьте строку:
export VISUAL="gedit"
export EDITOR="$VISUAL"Замените gedit на команду, которая запускает ваш желаемый редактор. Затем примените изменения без выхода из сессии:
. ~/.bash_profileЗаметки:
- Точка (.) — короткая форма команды
source, которая читает и применяет файл в текущей оболочке. - На некоторых системах настройки нужно класть в
~/.bashrcвместо~/.bash_profile(см. раздел OpenIndiana ниже).
После этого crontab -e будет использовать выбранный вами редактор:
crontab -e
Особенности для macOS и других оболочек
- macOS по умолчанию использует оболочку zsh (с Catalina и новее). Для zsh редактируйте
~/.zshrcвместо~/.bash_profile:
gedit ~/.zshrcи добавьте те же export VISUAL=... / export EDITOR=....
- Если вы используете Fish shell — синтаксис иной (используйте
set -Ux VISUAL vim).
.bash_profile может быть не пустым
Если ваш файл ~/.bash_profile уже содержит текст, просто прокрутите его до конца и добавьте строки с export. Пример — типичный ~/.bash_profile в Manjaro с добавленной строкой:

OpenIndiana: пример с .bashrc
В OpenIndiana рекомендуют добавлять экспорт в ~/.bashrc, а не в ~/.bash_profile. Откройте файл, например, в Pluma:
pluma ~/.bashrcДобавьте строку:
export VISUAL="gedit"
export EDITOR="$VISUAL"Затем закройте и снова откройте окно терминала, или примените команду . как показано выше.

Проверьте работу:
crontab -e
Почему графические редакторы иногда не работают с crontab
Проблема: многие графические редакторы «отъезжают» в фон сразу после запуска — процесс, который запустил их в терминале, завершается, и crontab считает, что редактирование закончено. Результат: crontab откроет временный файл и сразу его прочитает, возможно, без внесённых изменений.
Решения:
- Используйте терминальный редактор (nano, vi, vim) — они блокируют терминал до окончания редактирования.
- Проверьте, есть ли у графического редактора флаг ожидания (
--wait,--noforkили аналогичный). Если есть — добавьте его в значение VISUAL, напримерexport VISUAL="gedit --wait". - Если у редактора нет флага ожидания, используйте небольшой обёртка-скрипт, который запускает редактор и ждёт изменения файла (например, loop, проверяющий timestamp), а затем завершает работу.
Важно: конкретные флаги зависят от реализации редактора — проверьте справку man или --help.
Мини‑методология: быстрый чек‑лист изменения редактора
- Проверить текущие переменные:
echo "$VISUAL"
echo "$EDITOR"- Указать нужный редактор в файле запуска оболочки (например,
~/.bash_profile,~/.bashrcили~/.zshrc):
export VISUAL="vim"
export EDITOR="$VISUAL"- Применить изменения:
. ~/.bash_profileЗапустить
crontab -eи убедиться, что открылся нужный редактор.Если используется GUI, проверить, не форкает ли он процесс, и настроить флаг ожидания или использовать терминальный редактор.
Когда этот подход не сработает (примеры)
- Системный администратор жестко задал системную политику, переопределяющую пользовательские переменные.
- Вы редактируете crontab для другого пользователя (sudo crontab -e для root) — переменные того пользователя применяются.
- Ваш профиль инициализации загружаются не в интерактивной сессии — правила загрузки файлов оболочки отличаются для логин/интерактивных шеллов.
Ролевые чек‑листы
Для системного администратора:
- Проверить глобальные настройки (например, /etc/environment, /etc/profile).
- Документировать требуемый редактор и разослать инструкцию пользователям.
- При необходимости создать системную ссылку/скрипт, который обеспечивает ожидаемое поведение.
Для разработчика:
- Добавить в dotfiles экспорт VISUAL/EDITOR и держать их в системе контроля версий.
- Проверить поведение на CI/в контейнере (в безголовой среде лучше использовать терминальный редактор).
Для новичка в Linux:
- Начните с
nanoилиvi— они просты в применении и работают в терминале. - Если не уверены, спросите администратора или проверьте вывод
echo $SHELL.
Тесты и критерии приёмки
- Тест 1: После
export VISUAL="nano"и.файлыcrontab -eоткрываются в nano. - Тест 2: Для GUI-редактора с флагом ожидания
crontab -eожидает закрытия окна редактора. - Тест 3: При
sudo crontab -eоткрывается ожидаемый редактор для пользователя root.
Критерии приёмки: crontab -e открывает выбранный редактор и сохраняет изменения в таблице cron.
Полезные команды и отладка
- Показать оболочку и конфигурационный файл:
echo $SHELL
ls -a ~ | grep bash- Быстро редактировать файл конфигурации:
nano ~/.bash_profile
# или ~/.zshrc в zsh- Применить настройки без перезагрузки сессии:
. ~/.bash_profile- Проверить, какой редактор используется прямо сейчас (иногда утилиты выводят подсказку при первом запуске):
crontab -eСправочная таблица команд Linux
| | Linux Commands | | Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc · tr | | | Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | | | Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld | |
RELATED: Лучшие ноутбуки с Linux для разработчиков и энтузиастов
Краткое резюме
- Используйте
VISUALи/илиEDITORдля контроля редактораcrontab. - В случае GUI-редакторов убедитесь, что процесс не уходит в фон — используйте флаг ожидания или терминальный редактор.
- Для macOS с zsh меняйте
~/.zshrc, для OpenIndiana —~/.bashrc.
Важное: если изменения не вступили в силу, проверьте, редактируете ли вы конфигурацию для той оболочки, которую реально использует ваша сессия.
1‑строчный глоссарий
- VISUAL — переменная окружения, определяющая предпочитаемый интерактивный редактор.
- EDITOR — запасной редактор; используется, если VISUAL не задан.
- select-editor — утилита выбора редактора (в некоторых Debian‑производных).
- crontab -e — команда для редактирования пользовательской таблицы cron.
Социальная превью‑подсказка
- OG заголовок: Назначьте любимый редактор для crontab
- OG описание: Простая инструкция: как задать VISUAL/EDITOR, учесть графические редакторы и проверить настройки в разных оболочках.
Спасибо — теперь вы можете безопасно и ожидаемо управлять тем, какой редактор открывает ваши задачи cron.
Похожие материалы
Postfix: отправка почты из командной строки
Решайте задачи с Google Lens — быстро и просто
Организация сессий в Logic Pro X
Edge не открывает PDF — как исправить
Отражение неба в воде после Sky Replacement