Кто такой этот редактор, который открыт crontab?

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

root@euve252628:~# crontab -e

0

0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php

?

:wq

?

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

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

41
задан 13 September 2017 в 16:02

4 ответа

От Вашего вопроса кажется, что Ваш РЕДАКТОР по умолчанию не vim, и у Вас есть проблемы с текущим редактором по умолчанию.

ниже команды установит РЕДАКТОРА по умолчанию, чтобы быть vim

export EDITOR=vim

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

Примечания:

  1. , Если Вы предпочитаете, можно выбрать другого РЕДАКТОРА в качестве редактора по умолчанию
  2. , Если Вы хотите установить редактора по умолчанию на vim постоянно, необходимо будет добавить вышеупомянутую команду к Вашему ~/.bashrc или ~/.profile или подобный файл.
12
ответ дан 23 November 2019 в 00:05

Для использования Редактора vi для редактирования crontab используйте ниже команды.

EDITOR="vi" crontab -e

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

4
ответ дан 23 November 2019 в 00:05

Это ed

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

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

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

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

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

$ ed
i                    # insert (on current line)
vi
.                    # end insert
%s/vi/&m/g           # substitute vi for vim globally in all lines
i                    # insert (on current line)
first line
.                    # end insert
$a                   # append on last line
last line
.                    # end insert
%p                   # print all lines
first line
vim
last line
2                    # move to line 2 and print it
vim
/line                # move forward to line matching /line/ and print it
last line
-1                   # move 1 line backwards and print it
vim
?line                # move backward to line matching /line/ and print it
first line
+1                   # move 1 line forward and print it
vim
g/line/p             # print lines matching /line/ (grep)
first line
last line
p                    # print (current line)
last line
.                    # move to current line and print it
last line
c                    # change (current line)
final line
.                    # end insert
%p                   # print all lines
first line
vim
final line
/vim/,$c             # change from line matching /vim/ to last line
that's all
.                    # end insert
%p                   # print all lines
first line
that's all
wq                   # write and quit
?                    # write what?
h                    # help with last error message
No current filename
wq                   # write and quit to check error message
?
H                    # help with all error messages
No current filename
wq                   # write and quit to check error message
?
No current filename
wq file.txt          # write file.txt and quit
22                   # wrote 22 bytes

Править: Как упоминания силы тяжести, более полезными сообщениями об ошибках можно активировать h или H. Кроме того, , вместо % в части диапазона команды официальный способ относиться ко "всем строкам" в ed. В GNU ed, возможность использовать % поскольку это поддерживается, но не упоминается в info руководство. Использование % поскольку все строки были, по-видимому, изобретены ex, по-видимому, потому что, там, , средства .,. вместо 1,$ как в ed.

EDIT2: Установка другого редактора

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

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

EDITOR=vi crontab -e

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

export EDITOR=vi
crontab -e

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

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

$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.
65
ответ дан 23 November 2019 в 00:05

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

Нажмите 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 является древним редактором, датирующийся до мониторов была (распространенная) вещь. Это было разработано для компьютеров, интерактивное выходное периферийное устройство которых было телепринтером.

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

? средства, что редактор не понял то, что Вы ввели. Построчные принтеры являются медленными, таким образом, редактор не напрасно тратит время и чернила для отображения бессмысленной информации, такой как сообщения об ошибках. Старая шутка (я не знаю, источник) идет:

У Ken Thompson есть автомобиль, который он помог разработать. В отличие от большинства автомобилей, это не имеет ни спидометра, ни газового индикатора, ни любых из других многочисленных слабоумных световых сигналов, которые заполоняют современный драйвер. Скорее если драйвер делает ошибку, гигант “?” освещает в центре панели инструментов. “Опытный драйвер”, говорит Thompson, “будет обычно знать что случилось”.

Если Вы чувствуете себя неопытными, можно дать команду H (все команды, но каждый - одна буква (не подсчет аргументов данных), потому что, кому нравится вводить), и Вы получите сообщения об ошибках. Например, если Вы просто нажимаете Enter

?
H
Invalid address

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

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

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

На Ubuntu (и Debian и другие), редактор системного значения по умолчанию /etc/alternatives/editor, которым управляют через механизм альтернатив. По умолчанию это выбирает “лучшего” редактора, это установлено, где “лучше всего” определяется приоритетами, установленными специалистами по обслуживанию пакета. Использовать update-alternatives настраивать альтернативу. Можно отобразить доступных редакторов и их приоритеты с

update-alternatives --display editor

ed имеет приоритет-100, тогда как у всех других “разумных” редакторов есть положительный приоритет, таким образом, единственный способ, которым он использовался бы по умолчанию, состоит в том, если никакой редактор не был установлен. Стандартная установка Ubuntu использует нано в качестве редактора по умолчанию с приоритетом 400. Если альтернатива была установлена на ed, можно изменить его с

sudo update-alternatives --config editor
39
ответ дан 23 November 2019 в 00:05

Другие вопросы по тегам:

Похожие вопросы: