Я хочу редактировать crontab. Предполагается, что это Vi, но это не так, как вы можете видеть:
root@euve252628:~# crontab -e
0
0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php
?
:wq
?
Да, это дало мне ?
. И почему это дает мне ноль?
Когда я набираю qи нажимаю Enter- выходит. Мне нужно знать, как сохранить, потому что это не классический Vi.
cron
text-editor
просто я
источник
источник
ed
: по умолчанию он дает количество символов (которое в системах на основе Debian обычно888
является первым, это количество символов в шаблоне «пустой» crontab). Если вы видите счет 0, вы, должно быть, изменили это. См., Что команда Crontab -e не работает должным образомEDITOR
что-то другое, если вы действительно хотите использовать ed, это отличное введение: sanctum.geek.nz/arabesque/actually-using-edОтветы:
Это
ed
По умолчанию его подсказка является пустой строкой. Если вы хотите выйти, просто введите
q
. Не префикс с:
. Если у вас есть несохраненные изменения, он ответит с?
. Вы можете интерпретировать это как «Вы уверены?», И подтвердить,q
снова командуя . Кстати, любая команда, которую она не понимает, также вызовет ответ?
. Это единственное сообщение об ошибке, которое он знает.Его команда , что ВЬЕТ / VI / ех / СЕПГ основан на, так команды типа
g/re/p
,%s/vi/&m/g
,1,3d
,/pattern/,$d
,w
,q
,wq
работает так же , как Vim.Команды, как
i
,a
иc
перейти в режим вставки. Чтобы выйти из режима вставки и вернуться в командный режим, просто введите строку, которая имеет только a.
. Чтобы «переместиться» на другую строку, просто введите номер строки, смещение от текущей строки, например+2
или-1
, или регулярное выражение в качестве команды для перехода на эту строку..
означает текущую строку в командном режиме. Вы можете использовать это, чтобы знать, где вы находитесь.$
означает последнюю строку.Кстати, если вы хотите узнать больше об этом, поскольку это программа GNU в Linux, большая часть ее документации находится
info ed
вместоman ed
.Вот пример сеанса с добавленными комментариями (не принимается редактором):
РЕДАКТИРОВАТЬ: Как упоминание Гравитация, более полезные сообщения об ошибках могут быть активированы с помощью
h
илиH
. Кроме того,,
вместо того,%
чтобы указывать в диапазоне часть команды, это официальный способ ссылки на «все строки» вed
. В GNUed
возможность использования%
для этого поддерживается, но не упоминается вinfo
руководстве. Использование%
для всех строк было очевидно изобретено, по-ex
видимому, потому что, там,,
средства,.,.
а не1,$
как вed
.РЕДАКТИРОВАТЬ 2: Установка другого редактора
Как и в других упомянутых ответах, если вы хотите указать другой редактор, вы можете сделать это, установив переменные
EDITOR
илиVISUAL
переменные окружения. Разница между ними объясняется в этом ответе .Вы можете сделать это следующим образом, если хотите установить его для одной команды:
или так, если вы хотите, чтобы все программы, запущенные в сеансе оболочки, использовали его:
Вы можете сохранить
export
в~/.profile
или/etc/profile
, в зависимости от того, хотите ли вы, чтобы это был пользовательский или системный параметр для bash, соответственно. Это переносимый способ установки редактора в Unix; Вы можете сделать это в любом дистрибутиве.В Ubuntu также есть
update-alternatives
команда. Текущий редактор по умолчанию можно увидеть с помощьюupdate-alternatives --display editor
, и вы можете использовать,update-alternatives --config editor
чтобы установить его:источник
h
чтобы запросить их (илиH
включить их постоянно).%
представляется, является бывший изобретение официально. Е изд использование,
означает все строки, хотя некоторые версии работают%
так же.)EDITOR
иVISUAL
.ed
те же, что и invi
, за исключением того, что вам не нужно сначала нажимать «:», чтобы выйти из режима графического редактирования. Я изучил Unix, когда «настоящие программисты» не тратили время на использование графического интерфейса - терминал «зеленый экран» 80x25 работает почти так же хорошо, как перфоратор карты IBM 029 для редактирования, но не совсем;)EDITOR
иVISUAL
не очень то актуально. Вопрос был в основном: что это за редактор и как его использовать? (что это0
и это?
, и как мне сохранить?).Как узнать, что это за редактор
Нажмите Ctrl+ Z. Это приостанавливает работу редактора и выдает подсказку оболочки. В командной строке запустите,
ps
чтобы увидеть, какие процессы запущены в этом терминале.bash
Этоcrontab
ожидаемая исходная оболочка,sh
другая оболочка, которая должна быть вызванаcrontab
, иps
это запущеннаяps
команда. Это оставляетed
(предоставляется пакет с тем же именем ).Если вы не можете понять, как выйти из редактора, вы можете убить его с помощью
kill 26302
илиkill %1
.Что такое Эд?
Эд - древний редактор, который появился еще до того, как мониторы стали обычным делом. Он был разработан для компьютеров, у которых интерактивным выходным периферийным устройством был телепринтер .
В
0
начале отображается количество строк в файле. Очевидно, это важная информация.?
означает, что Эд не понял, что ты напечатал. Линейные принтеры работают медленно, поэтому ed не тратит время и чернила на отображение бессмысленной информации, такой как сообщения об ошибках. Старая шутка (я не знаю происхождение) гласит:Если вы чувствуете себя неопытным, вы можете выполнить команду
H
(все команды, кроме одной, состоят из одной буквы (не считая аргументов данных), потому что кому нравится печатать), и вы получите сообщения об ошибках. Например, если вы просто нажмете Enter...Ясно, не так ли? (Пустая строка - это пустая команда - та, которая не является одной буквой. Пустая команда перемещается на следующую строку и печатает ее. Если вы находитесь в конце файла, что всегда имеет место в пустой файла, следующей строки нет, поэтому адрес, на который вы просили переместить, недействителен.)
Как получить другой редактор
Команда
crontab
, как и большинство команд, запускающих текстовый редактор, проверяет переменные средыVISUAL
иEDITOR
(в этом порядке) решает, какую программу запускать, возвращаясь к системному значению по умолчанию. Если любая из этих переменных установлена наed
, измените или удалите ее.В Ubuntu (и Debian, и других) используется системный редактор по умолчанию
/etc/alternatives/editor
, который управляется с помощью механизма альтернатив . По умолчанию он выбирает «лучший» редактор, который установлен, где «лучший» определяется приоритетами, установленными сопровождающими пакетов. Используйтеupdate-alternatives
для настройки альтернативы. Вы можете отобразить доступные редакторы и их приоритеты сed
имеет приоритет -100, тогда как все остальные «разумные» редакторы имеют положительный приоритет, поэтому по умолчанию он будет использоваться только в том случае, если редактор не установлен. При установке Ubuntu по умолчанию в качестве редактора по умолчанию используется nano с приоритетом 400. Если выбран альтернативный вариантed
, его можно изменить с помощьюисточник
ps
сpstree -sap $$
? (проще выяснить, какой редактор был запущен, так как он теперь в древовидном формате)/usr/bin/editor
- символическая ссылка на/etc/alternatives/editor
. Тот факт, что приложения вызывают,/usr/bin/editor
является деталью, которую я пропустил.EDITOR
иVISUAL
. На самом деле они являются правильным способом выбора редактора, поскольку это предпочтение пользователя, а не общесистемное предпочтение. Я предпочитаю придерживатьсяps
здесь, чтобы все было просто.Исходя из вашего вопроса, кажется, что ваш
vim
редактор по умолчанию не , и у вас есть проблемы с текущим редактором по умолчанию.Приведенная ниже команда установит РЕДАКТОР по умолчанию
vim
После установки редактора по умолчанию
vim
, запускcrontab -e
будет использоваться вvim
качестве вашего редактора.Заметки:
vim
постоянная, вы должны добавить команду для вашего~/.bashrc
или~/.profile
или аналогичного файла.источник
Чтобы использовать редактор VI для редактирования crontab, используйте команду ниже.
или, если вы хотите редактировать с помощью другого редактора, такого как gedit, nano и т. д., просто замените vi на имя редактора.
источник