Ubuntu crontab изменить редактор

Обновлено: 03.07.2024

Я хочу отредактировать crontab. Предполагается, что это Vi, но это не так, как вы можете видеть:

Да, это дало мне ?. И почему это дает мне ноль?

Когда я набираю q и нажимаю Enter - он завершает работу. Мне нужно знать, как сэкономить, потому что это не классический Vi.

С вашего вопроса кажется, что ваш EDITOR по умолчанию не является vim, и у вас проблемы с текущим редактором по умолчанию.

В приведенной ниже команде EDITOR по умолчанию будет vim

После установки редактора по умолчанию vim, запуск crontab -e будет использовать vim в качестве вашего редактора.

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

/.profile или аналогичным файлам.

Как узнать, что этот редактор

Нажмите Ctrl + Z. Это приостанавливает редактор и дает вам приглашение оболочки. В приглашении запустите ps, чтобы узнать, какие процессы запущены в этом терминале.

bash-4.3$ crontab -e 1077 ^Z [1]+ Stopped crontab -e bash-4.3$ ps PID TTY TIME CMD 26295 pts/10 00:00:00 bash 26297 pts/10 00:00:00 crontab 26298 pts/10 00:00:00 sh 26299 pts/10 00:00:00 ed 26302 pts/10 00:00:00 ps

bash - это исходная оболочка, ожидается crontab, sh - это еще одна оболочка, которая должна были вызваны crontab, а ps - команда ps. Это оставляет ed (предоставляется пакетом с тем же именем).

Если вы не можете понять, как выйти из редактора, вы можете убить его в этот момент с помощью kill 26302 или kill %1.

Что такое ed?

Эд - древний редактор, начиная с того, как мониторы были (обычным). Он был разработан для компьютеров с интерактивным выходным периферийным устройством ed .

В начале 0 он отображает в строке количество строк в файле. По-видимому, это важная информация.

У Кен Томпсона есть автомобиль, который он помогал дизайну. В отличие от большинства автомобилей, в нем нет ни спидометра, ни газового датчика, ни любого другого большого количества идиотских огней, которые поражают современного водителя. Скорее, если водитель совершает ошибку, в центре приборной панели загорается гигантский «?». «Опытный водитель, - говорит Томпсон, - обычно знает, что не так».

? H Invalid address

Ясно, не так ли? (Пустая строка - это пустая команда - та, которая не является одной буквой. Пустая команда переходит к следующей строке и печатает ее. Если вы находитесь в конце файла, что всегда происходит в пустой file, следующей строки нет, поэтому адрес, на который вы запросили перемещение, недопустим.)

Как получить другой редактор

Команда crontab, как и большинство команд, которые запустите текстовый редактор, проверьте переменные среды VISUAL и EDITOR (в этом порядке), чтобы решить, какую программу запускать, возвращаясь к системному умолчанию. Если для любой из этих переменных установлено значение ed, измените его или удалите.

В Ubuntu (и Debian и других) системный редактор по умолчанию - /etc/alternatives/editor, который управляется с помощью механизма альтернатив , По умолчанию он выбирает «лучший» редактор, который установлен, где «лучший» определяется приоритетами, установленными сторонними разработчиками пакетов. Для настройки альтернативы используйте пакет с таким же именем . Вы можете отобразить доступные редакторы и их приоритеты с помощью

update-alternatives --display editor

ed имеет приоритет -100, тогда как все остальные «разумные» редакторы имеют положительный приоритет, поэтому единственный способ, которым он будет использоваться по умолчанию - если редактор не установлен. По умолчанию установка Ubuntu использует nano в качестве редактора по умолчанию с приоритетом 400. Если альтернатива установлена ​​на ed, вы можете изменить ее с помощью

sudo update-alternatives --config editor

Чтобы использовать редактор VI для редактирования crontab, используйте следующую команду:

EDITOR="vi" crontab -e

или, если вы хотите редактировать другой редактор, например gedit, nano и т. д., просто замените vi редактором имя.

По умолчанию его приглашение представляет собой пустую строку. Если вы хотите выйти, просто введите q. Не префикс с :. Если у вас есть несохраненные изменения, он ответит с помощью ?. Вы можете интерпретировать это как «вы уверены?» И подтвердить, снова выполнив команду q. Кстати, любая команда, которую он не понимает, также заставит ее ответить ?. Это [. d1]

. Его команды - это то, на чем основан vim / vi / ex / sed, поэтому команды, такие как g/re/p, %s/vi/&m/g, 1,3d, /pattern/,$d, w, q, wq работают так же, как vim.

Команды, такие как i, a и c, входят в режим вставки. Чтобы выйти из режима вставки и вернуться в командный режим, просто введите строку, которая имеет только .. Чтобы «переместить» в другую строку, просто введите номер строки, смещение от текущей строки, например +2 или -1, или регулярное выражение в качестве команды для перехода к этой строке. . означает текущую строку в командном режиме. Вы можете использовать его, чтобы знать, где вы находитесь. $ означает последнюю строку.

Кстати, если вы хотите узнать больше об этом, это будет GNU-программа в Linux, большая часть ее документации находится в info ed вместо man ed.

Вот пример сеанса с добавленными комментариями (не принято ed):

Как и другие упомянутые ответы, если вы хотите указать другой редактор, вы можете сделать это, установив переменные среды EDITOR или VISUAL. Различие между этими двумя объясняется в этом ответе.

Вы можете сделать это так, если хотите установить его для одной команды:

EDITOR=vi crontab -e

или вот так, если вы хотите, чтобы все программы, запущенные в сеансе оболочки, использовали:

export EDITOR=vi crontab -e

Вы можете сохранить export в

/.profile или /etc/profile, в зависимости от того, хотите ли вы, чтобы он был пользователем или системным настройком для bash, соответственно. Это универсальный переносной способ установки редактора; вы можете сделать это в любом дистрибутиве.

В Ubuntu есть также команда update-alternatives. Текущий редактор по умолчанию можно увидеть с помощью update-alternatives --display editor, и вы можете использовать update-alternatives --config editor для его установки:

Когда поставил себе цель уметь пользоваться чем-либо то нужно сразу же переключиться на задуманное, а не время от времени. Вот так и я. Я решил, хочу более сносно ориентироваться при использовании редактора именуемого vim, а раз так то ниже пошаговые шаги по воплощении задуманного. Все дальнейшие действия происходят на рабочей/тестовой системе Ubuntu Trusty Desktop/Server.

Ранее я постоянно использовал редактор nano, а теперь хочу VIM.

$ sudo apt-get install vim -y

$ sudo update-alternatives --config editor

Есть 5 вариантов для альтернативы editor (предоставляет /usr/bin/editor).

Выбор Путь Приор Состояние

* 0 /bin/nano 40 автоматический режим

  • 1 /bin/ed -100 ручной режим
  • 2 /bin/nano 40 ручной режим
  • 3 /usr/bin/mcedit 25 ручной режим
  • 4 /usr/bin/vim.basic 30 ручной режим
  • 5 /usr/bin/vim.tiny 10 ручной режим

Нажмите enter, чтобы сохранить текущий выбор[*], или введите выбранное число: 5

update-alternatives: используется /usr/bin/vim.tiny для предоставления /usr/bin/editor (editor) в ручной режим

Но и после этого при вызове sudo crontab -e все равно открывает редактирование через редактор nano, а я хочу через vim, как тогда сделать это?

touch: невозможно выполнить touch для «/home/ekzorchik/.selected_editor»: Отказано в доступе

$ ls -l /home/ekzorchik/.selected_editor

-rw-r--r-- 1 root root 66 Jul 18 15:26 /home/ekzorchik/.selected_editor

$ sudo chown ekzorchik:ekzorchik

Select an editor. To change later, run 'select-editor'.

2. /bin/nano <---- easiest

Choose 1-6 [2]: 4

При редактировании crontab файл VIM теперь дефолтный редактор

Отлично, сработало, теперь редактор по умолчанию vim. На этой ноте, я завершаю свое повествование. Т.к. заметка писалась под конкретную задачу лично для себя и что интересовало меня в данный момент. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще :)

Карта МКБ: 4432-7300-2472-8059

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.


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

Щекотливая тема текстовых редакторов

Текстовый редактор выполняет довольно обыденную задачу. Тем не менее, глубина чувства, которое люди связывают с редактором личных предпочтений, привела к тому, что пламя войны которые горят с 1985 года. Мы не разжигаем этот огонь и не защищаем одного редактора над другим. Мы собираемся показать вам, как изменить редактор по умолчанию для crontab на что-то другое, если вы захотите.

Команда crontab -e откроет редактор, в котором вы сможете редактировать свою таблицу cron. Ваша таблица cron содержит список любых запланированных заданий, которые вы настроили на выполнение в указанное время. Мы не будем углубляться в детали задач cron в этой статье. Мы просто смотрим на редактор, связанный с командой crontab -e.

Проверь это - Абсолютное руководство по экрану блокировки iOS для новичков

В самый первый раз, когда вы запускаете команду crontab с параметром -e (редактировать) в терминале Bash, вас просят выбрать редактор, который вы хотите использовать. Введите crontab, пробел, -e и нажмите Enter.

Выбранный вами редактор затем используется для открытия вашей таблицы cron. В этом примере nano было выбрано нажатием клавиши 1.

таблица cron в редакторе nano

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

А как насчет дистрибутивов, в которых нет редактора выбора?

Мы можем установить редактор по умолчанию для crontab, добавив строку в наш файл .bash_profile. Введите эту команду:

Когда появится редактор, добавьте в файл эту запись:

.bash_profile в gedit

Конечно, вы должны заменить команду, запускающую редактор, который вы хотите использовать, на «gedit». Сохраните этот файл и закройте редактор. Чтобы увидеть, как эти изменения вступили в силу, либо выйдите из системы и снова войдите, либо выполните следующую команду:

.</p>
<p>/ .bash_profile команда

Обратите внимание, что линия начинается с точки или периода. Исходная команда является псевдонимом для команды периода и выполняет то же действие. Но не все дистрибутивы предоставляют исходную команду. Команда периода должна присутствовать всегда. Учитывая это предостережение, исходная команда присутствовала во всех дистрибутивах, эта статья была протестирована на Ubuntu, Debian, Manjaro, Arch, Fedora, CentOS и OpenIndiana.

Независимо от того, вводите ли вы точку или слово «источник», команда вызывает чтение и перенос настроек из вашего .bash_profile в текущий сеанс. Теперь, когда вы набираете:

Указанный вами редактор будет использоваться для открытия вашей таблицы cron.

Проверь это - Как перезагрузить все вкладки в Safari на macOS

таблица cron в gedit

Ваш .bash_profile не может быть пустым

Ваш файл .bash_profile может быть не пустым, когда вы его редактируете. Просто прокрутите вниз и добавьте строку export VISUAL = ”gedit” в конец файла. Это файл .bash_profile по умолчанию в Manjaro Linux с добавленной новой строкой:

строка экспорта в .bash_profile

И, наконец, OpenIndiana

В OpenIndiana вам нужно добавить строку export VISUAL = ”gedit” в ваш файл .bashrc, а не в ваш .bash_profile. Вам нужно ввести следующую команду:

.bashrc в pluma

Добавьте строку и сохраните файл, а затем закройте и снова откройте окно терминала.

Выполните команду crontab -e, чтобы убедиться, что ваши изменения повлияли:

таблица cron в nano openIndiana

И теперь ваша таблица cron загружена в nano.

Теперь вы можете указать редактор по вашему выбору для многих типов Linux, независимо от того, является ли он наследником Debian, RedHat, Arch или чего-то более близкого к обычному ванильному Unix.

Искусство, представляющее оболочку Bash в системе Linux

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

Сенсорная тема текстовых редакторов

Текстовый редактор выполняет довольно обыденную задачу. Тем не менее, глубокие чувства, которые люди связывают с редактором своих личных предпочтений, привели к пламенным войнам , которые разгораются с 1985 года. Мы не разжигаем этот огонь и не защищаем одного редактора над другим. Мы собираемся показать вам, как изменить редактор по умолчанию для crontab на что-то другое, если вы решите.

Команда crontab -e откроет редактор, чтобы вы могли редактировать свою таблицу cron. Ваша таблица cron содержит список всех запланированных заданий, которые вы запланировали выполнять в указанное время. Мы не будем вдаваться в детали работы cron в этой статье . Мы просто смотрим на редактор, связанный с командой crontab -e .

В самый первый раз, когда вы crontab команду crontab с параметром -e (edit) в терминале Bash, вам предлагается выбрать редактор, который вы хотите использовать. Введите crontab , пробел, -e и нажмите Enter.

команда crontab -e

Выбранный вами редактор затем используется для открытия таблицы cron. В этом примере nano был выбран нажатием клавиши 1.

таблица хрон в редакторе нано

Редактор, который вы выбираете из меню, используется каждый раз, когда вы crontab -e команду crontab -e . Если вы позже передумаете, как выбрать другой редактор, если вы получаете меню только в первый раз? Это легко. Команда для использования является select-editor .

команда select-editor

А как насчет дистрибутивов, которые не предоставляют select-editor?

Мы можем установить редактор по умолчанию для crontab , добавив строку в наш файл .bash_profile. Введите эту команду:

Когда появится редактор, добавьте эту запись в файл:

.bash_profile в gedit

Конечно, вы должны заменить команду, которая запускает редактор, который вы хотите использовать, на «gedit». Сохраните этот файл и закройте редактор. Чтобы эти изменения вступили в силу, выйдите из системы и снова войдите в систему или выполните команду:

, команда</p>
<p>/ .bash_profile

Обратите внимание, что линия начинается с точки или точки. source команда является псевдонимом для команды period и выполняет то же действие. Но не все дистрибутивы предоставляют source команду. Команда period всегда должна присутствовать. С учетом этого предостережения команда source присутствовала во всех дистрибутивах, которые эта статья тестировала на Ubuntu, Debian, Manjaro, Arch, Fedora, CentOS и OpenIndiana.

Вводите ли вы точку или source слова, команда заставляет параметры из вашего .bash_profile быть прочитанными и перенесенными в ваш текущий сеанс. Теперь, когда вы печатаете:

Указанный вами редактор будет использоваться для открытия таблицы cron.

cron стол в гедите

Ваш .bash_profile не может быть пустым

Ваш файл .bash_profile может быть не пустым при редактировании. Просто прокрутите вниз и добавьте строку export VISUAL="gedit" файла. Это стандартный файл .bash_profile в Manjaro Linux с добавлением новой строки:

экспортная строка в .bash_profile

И наконец, OpenIndiana

С OpenIndiana вам нужно добавить строку export VISUAL="gedit" в ваш файл .bashrc, а не в ваш .bash_profile. Команда, которую вам нужно ввести:

.bashrc в плюме

Добавьте строку и сохраните файл, закройте и снова откройте окно терминала.

Введите команду crontab -e чтобы убедиться, что ваши изменения вступили в силу:

cron стол в нано openIndiana

И теперь ваша таблица cron загружена в nano.

Теперь вы можете указать редактор по вашему выбору во многих типах Linux, будь то потомок Debian, RedHat, Arch или что-то похожее на простой ванильный Unix.

Читайте также: