Измените редактор crontab по умолчанию на nano в FreeBSD.

Вопрос или проблема

Когда я редактирую crontab, используя crontab -e, он открывает crontab в vi. Я бы предпочел, чтобы он использовал nano. Как я могу это изменить?

ИЗМЕНЕНИЕ:

По какой-то причине команда export возвращает команда не найдена. И изменение переменной окружения EDITOR не сработало для crontab -e.

Следующая команда сработала на моей системе:

setenv VISUAL /usr/local/bin/nano

Для оболочек на основе sh:

export EDITOR=/path/to/nano

Для оболочек на основе C:

setenv EDITOR /path/to/nano

Помните, что если вы не сохраните эти настройки в скрипт входа в систему (/home/user/.bash_profile, например), вы потеряете настройки при выходе.

Если я правильно помню, FreeBSD использует C shell в качестве оболочки по умолчанию.

Должно быть

export EDITOR=/usr/bin/nano

откорректируйте для вашего расположения nano (используйте ‘which’, чтобы найти). Вы можете положить эту команду в свой .bashrc или аналогичный скрипт профиля, чтобы она была активна все время.

  1. GNU nano не является частью базовой системы. Вам сначала нужно установить его. Самый удобный вариант — установить бинарный пакет:

    pkg install editors/nano # выполнить от имени `root`
    

    Если это ваше первое обращение к команде pkg, pkg сначала будет инициализирован; после этого вы можете повторно выполнить ту же команду (теперь фактически выполняя установку).

    В качестве альтернативы, если вам просто не удается справиться с криптическими командами и режимами vi, «легкий редактор» ee сопоставим с GNU nano и включен в состав базовой системы с версии FreeBSD 2.1.5.

  2. Как предписывает стандарт POSIX™, значение переменной окружения EDITOR используется для определения, какой редактор использовать для crontab -e, и если она не установлена или пуста, используется vi как запасной вариант. Таким образом, ваш вопрос сводится к «как установить переменную окружения?»

    Чтобы ответить на вопрос, вам нужно оценить где будет применяться значение данной переменной окружения:

    • Распространяется ли это на всех пользователей системы?
    • Распространяется ли это на всех пользователей, аутентифицирующихся через определенный стек служб PAM (например, только sshd)?
    • Распространяется ли это на пользователей, входящих через определенные каналы (например, только ttyv4)?
    • Распространяется ли это на всех пользователей, использующих определенную оболочку (например, только zsh)?
    • Это касается одной категории пользователей?
    • Это для одного пользователя?
    • Это для одного пользователя, использующего определенную оболочку?
    • Это только для одного вызова?

    Изложение всех вариантов занимает слишком много времени, поэтому, не зная ваших конкретных требований, я предполагаю, что вы хотите изменить ~/.login_conf:

    1. Убедитесь, что переменная окружения EDITOR еще не установлена.
      printenv EDITOR
      

      Если это выводит значение, вам сначала нужно попытаться выяснить, где она устанавливается. Если она устанавливается через глобальный /etc/login.conf, то все в порядке, потому что ~/.login_conf имеет приоритет. Если она устанавливается через какой-то скрипт, который source ваш входной шелл, вам нужно сначала изменить этот файл. В противном случае следующий шаг не окажет влияния.

    2. Теперь вы можете редактировать файл. Предполагая, что ~/.login_conf еще не существует, просто напишите
      cat > ~/.login_conf << 'EOT'
      me:setenv=EDITOR=nano:
      EOT
      

      Это не окажет немедленного эффекта в текущей сессии; вам нужно будет заново войти в систему, чтобы увидеть изменения.

    Файл ~/.login_conf применяется только к конкретному пользователю, но независимо от используемой оболочки и метода входа в систему (с учетом конфигурации PAM по умолчанию). Это идеально подходит для предпочтений на основе вкуса (как EDITOR) или человеческого фактора в общем (естественный язык).

Вероятно, установив переменную окружения EDITOR.

То есть

export EDITOR=/path/to/nano

Под /etc/alternatives/editor есть символическая ссылка, которая может указывать на /path/to/nano

Вы можете использовать утилиту update-alternatives для этого – хотя я не слишком хорошо с ней знаком.

(замечание – я говорю с точки зрения ‘ubuntu’. не уверен, что это то же самое для FreeBSD)

Ответ или решение

Для изменения редактора по умолчанию для команды crontab -e на FreeBSD с vi на nano, необходимо выполнить несколько шагов. Ниже я приведу подробное объяснение процесса, которое поможет вам в реализации данной задачи.

Шаг 1: Установка nano

Прежде всего, убедитесь, что редактор nano установлен на вашей системе. Поскольку nano не входит в стандартный пакет FreeBSD, вам нужно установить его через менеджер пакетов pkg. Это можно сделать, выполнив следующую команду от имени пользователя с правами администратора (root):

pkg install editors/nano

Если вы впервые используете команду pkg, она автоматически выполнит загрузку необходимых пакетов. После завершения установки nano можно проверить его доступность, выполнив команду which nano, которая покажет путь к исполняемому файлу.

Шаг 2: Изменение переменной окружения EDITOR

Если вы хотите, чтобы команда crontab -e открывала nano, нужно установить переменную окружения EDITOR. Для этого подход зависит от вашего типа командной оболочки.

Для C shell (csh/tcsh)

Если вы используете C shell, выполните команду:

setenv EDITOR /usr/local/bin/nano

Эта команда задаст значение переменной EDITOR для текущей сессии. Чтобы сделать изменения постоянными, добавьте эту строку в ваш файл конфигурации (например, ~/.cshrc или ~/.login):

echo 'setenv EDITOR /usr/local/bin/nano' >> ~/.cshrc

Не забудьте выполнить команду source ~/.cshrc, чтобы изменения вступили в силу.

Для Bourne shell (sh) и его производных (bash/zsh)

Если вы используете Bourne shell или его производные, используйте команду:

export EDITOR=/usr/local/bin/nano

Чтобы сделать это изменение постоянным, добавьте вышеуказанную строку в файл ~/.bashrc или ~/.profile:

echo 'export EDITOR=/usr/local/bin/nano' >> ~/.bashrc

После редактирования файла, выполните команду:

source ~/.bashrc

Шаг 3: Проверка изменений

После выполнения всех шагов, вы можете проверить, что переменная EDITOR установлена корректно, запустив команду:

echo $EDITOR

Она должна вернуть путь к nano. Теперь при запуске команды crontab -e будет открываться редактор nano.

Решение возможных проблем

Если команда setenv возвращает command not found, это означает, что вы, возможно, используете оболочку, отличную от C shell. Убедитесь, что вы находитесь в правильной оболочке перед выполнением соответствующих команд.

Также помните, что если переменная EDITOR уже была установлена где-то в конфигурационных файлах, она может перезаписываться. В таком случае проверьте все файлы автозагрузки оболочки.

Заключение

Следуя этим шагам, вы сможете легко изменить редактор для редактирования crontab на nano в FreeBSD. Это позволяет значительно упростить редактирование задач Cron для пользователей, непривыкших к командам и интерфейсу vi.

Оцените материал
Добавить комментарий

Капча загружается...