Например, в bash я могу ввести !xyz
команду, которая будет запускать последнюю введенную мной команду xyz
.
Как вызвать последнюю введенную команду, начиная с xyz
нее, но не выполняя ее?
например, чтобы я мог изменить параметры перед выполнением ....
!
нотация, потому что вы можете нажать Ctrl-r несколько раз, чтобы перейти к истории соответствия. Когда вы прибудете в нужное место, вы можете попытаться выполнить не с Enter, а с Ctrl-o для большой прибыли.Попробуй
!xyz:p
; она вызовет команду на вершину истории, не выполнив ее, поэтому, например, стрелка вверх может немедленно получить к ней доступ для интерактивного редактирования.Кроме того, я практикую это при вызове команд с регулярным выражением, которые могли предположительно выкопать что-то разрушительное, с тех пор как поспешный
!r
, намеревался вызвать самую последнююrsync ...
команду, откатился назад и выполнил команду,rm *
которая была помещена в стек совсем недавно чем rsync.источник
rm -rf ./*
никогда не был так благодарен в течение определенного периода. К сведению,!xyz:p
сработало, спасибо, но потребовалось несколько дополнительных нажатий клавиш, чем решение ctrl-r.EMACS
всегоvi
подходит для глаз , в то время как! -Path лучше всего подходит для таких олаторов, как я.Выполните следующую команду. Это будет повторять последнюю выполненную команду. Вы можете скопировать и отредактировать команду. Эта команда протестирована в Debian.
история | хвост -2 | grep -v история | cut -d '' -f4-
Или Нажмите и удерживайте Ctrl + R и введите начальную букву вашей последней команды. В нем будут перечислены команды, которые вы выполняли ранее на основе вашего ввода. Как только он показывает желаемую команду, просто нажмите стрелку вправо, чтобы выбрать эту команду.
источник
Если поиск по обратной истории не удался, сделайте что-нибудь из:
Или:
источник