Я хочу отредактировать crontab. Это, как предполагается, Vi, но это не, как Вы видите:
root@euve252628:~# crontab -e
0
0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php
?
:wq
?
Да, это дало мне a ?
. И почему это дает мне нуль?
Когда я ввожу q и нажимаю Enter - он выходит. Я должен знать, как сохранить, потому что это не классик Vi.
От Вашего вопроса кажется, что Ваш РЕДАКТОР по умолчанию не vim
, и у Вас есть проблемы с текущим редактором по умолчанию.
ниже команды установит РЕДАКТОРА по умолчанию, чтобы быть vim
export EDITOR=vim
установка After, которую редактор по умолчанию, чтобы быть vim
, работая crontab -e
будет использовать vim
в качестве Вашего редактора.
Примечания:
vim
постоянно, необходимо будет добавить вышеупомянутую команду к Вашему ~/.bashrc
или ~/.profile
или подобный файл. Для использования Редактора vi для редактирования crontab используйте ниже команды.
EDITOR="vi" crontab -e
или, если Вы хотите отредактировать с другим редактором как gedit, нано, и т.д., просто заменяет vi именем редактора.
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
.
Как другие упомянутые ответы, если Вы хотите указать другого редактора, можно сделать так путем установки 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.
Нажмите 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