Гид по технологиям

Как назначить редактор по умолчанию для crontab и использовать любимый редактор

7 min read Linux Обновлено 20 Dec 2025
Назначить редактор по умолчанию для crontab
Назначить редактор по умолчанию для crontab

Быстрые ссылки

  • Тонкая тема выбора редакторов

  • Что делать, если в дистрибутиве нет select-editor

  • .bash_profile может быть не пустым

  • OpenIndiana: особый случай

Иллюстрация: выбор редактора для crontab

Хотите, чтобы команда crontab открывала тот редактор, который вы предпочитаете, а не наоборот? В этой инструкции показано, как это сделать на Linux, macOS и других Unix-подобных системах.

Как crontab выбирает редактор

Когда вы выполняете команду

crontab -e

утилита открывает редактор для редактирования таблицы cron (списка запланированных заданий). По умолчанию поведение зависит от нескольких факторов, в том числе от переменных окружения VISUAL и EDITOR и от инструментов настройки, доступных в вашей системе (например, select-editor).

Коротко о терминах:

  • VISUAL — предпочтительный визуальный/интерактивный редактор; обычно проверяется первым.
  • EDITOR — запасной (тонкий) редактор, если VISUAL не задан.

Общий порядок выбора (типичный): переменная VISUAL, затем EDITOR, затем системная настройка по умолчанию или меню выбора.

Команда crontab -e в терминале

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

Редактор nano с открытой таблицей cron

Если вы передумали после первого выбора, можно сменить редактор вручную — подробнее ниже.

Запуск select-editor (простое решение на Debian/Ubuntu и родственных)

На многих дистрибутивах есть утилита select-editor, которая показывает меню и сохраняет выбор пользователя. Запустите её так:

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

Таблица cron открыта в gedit

Особенности для 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 с добавленной строкой:

Строка export в .bash_profile

OpenIndiana: пример с .bashrc

В OpenIndiana рекомендуют добавлять экспорт в ~/.bashrc, а не в ~/.bash_profile. Откройте файл, например, в Pluma:

pluma ~/.bashrc

Добавьте строку:

export VISUAL="gedit"
export EDITOR="$VISUAL"

Затем закройте и снова откройте окно терминала, или примените команду . как показано выше.

.bashrc открыт в pluma

Проверьте работу:

crontab -e

Таблица cron открыта в nano на OpenIndiana

Почему графические редакторы иногда не работают с crontab

Проблема: многие графические редакторы «отъезжают» в фон сразу после запуска — процесс, который запустил их в терминале, завершается, и crontab считает, что редактирование закончено. Результат: crontab откроет временный файл и сразу его прочитает, возможно, без внесённых изменений.

Решения:

  • Используйте терминальный редактор (nano, vi, vim) — они блокируют терминал до окончания редактирования.
  • Проверьте, есть ли у графического редактора флаг ожидания (--wait, --nofork или аналогичный). Если есть — добавьте его в значение VISUAL, например export VISUAL="gedit --wait".
  • Если у редактора нет флага ожидания, используйте небольшой обёртка-скрипт, который запускает редактор и ждёт изменения файла (например, loop, проверяющий timestamp), а затем завершает работу.

Важно: конкретные флаги зависят от реализации редактора — проверьте справку man или --help.

Мини‑методология: быстрый чек‑лист изменения редактора

  1. Проверить текущие переменные:
echo "$VISUAL"
echo "$EDITOR"
  1. Указать нужный редактор в файле запуска оболочки (например, ~/.bash_profile, ~/.bashrc или ~/.zshrc):
export VISUAL="vim"
export EDITOR="$VISUAL"
  1. Применить изменения:
. ~/.bash_profile
  1. Запустить crontab -e и убедиться, что открылся нужный редактор.

  2. Если используется 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.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Postfix: отправка почты из командной строки
Системное администрирование

Postfix: отправка почты из командной строки

Решайте задачи с Google Lens — быстро и просто
Инструкция

Решайте задачи с Google Lens — быстро и просто

Организация сессий в Logic Pro X
Аудиопродакшн

Организация сессий в Logic Pro X

Edge не открывает PDF — как исправить
Браузеры

Edge не открывает PDF — как исправить

Отражение неба в воде после Sky Replacement
Photoshop

Отражение неба в воде после Sky Replacement

Как сделать Duet в TikTok — быстро и понятно
Социальные сети

Как сделать Duet в TikTok — быстро и понятно