Назад | Перейти на главную страницу

Как скопировать ранее введенную команду с помощью утилиты истории без повторного запуска?

Я могу использовать history команда в CentOS, чтобы получить список предыдущих введенных команд, однако, если я сделаю что-то вроде: !372, история попытается запустить указанную команду.

Мне нужно, чтобы предыдущая команда запуска отображалась под текущим курсором. Вот пример:

[dev@home ~]$ previous_command_no_execute!372  

Как насчет того, чтобы поместить это в свою командную строку:

$ !372

Затем нажмите ESC с последующим CTRL + E. Это автоматически расширится в командной строке, не запуская ее. (также расширяет все остальное в строке, включая env vars)

Насколько мне известно, это работает только на Bash.

Вы могли бы использовать Ctrlр а затем введите несколько символов из исходной команды, например.

(reverse-i-search)`/etc': sudo /etc/init.d/apache2 restart

выше я набрал Ctrl-r /etc и это подтянуло sudo /etc/init.d/apache2 restart команда из истории

history | grep 372 должно работать, правда?

Редактировать:

Кроме того, вы можете сделать что-то вроде echo !372 > /dev/clip чтобы поместить каталог команд в буфер обмена.

MDMarra уступил легкий путь (history|grep и скопируйте / вставьте, используя среду рабочего стола, если она у вас есть). Я предложу то, что я называю трудным, и это сработает, если вы не есть среда рабочего стола или мышь.

Предполагая, что вы используете bash в качестве оболочки:

$ set -o vi
$ ESC372 тыс.

(теперь у вас будет команда, которую вы выполнили 372 команды назад, в строке, и вы будете в vi-style командный режим. Отредактируйте, как если бы вы использовали ex/vi)

Самый простой и быстрый способ сделать то, что вы хотите, - запустить:

!372:p

с последующим Войти и

Вы используете настольную систему или сервер?

В моей настольной системе Kubuntu с открытой оболочкой она поддерживает выделение с помощью мыши. Обычно я просто выделяю текст мышью и щелкаю средней кнопкой мыши, чтобы вставить его. Подойдет ли это вам?

Итак, вы можете найти команду с помощью grep. Выделите текст. Вставьте его средней кнопкой мыши, затем отредактируйте.

Возможно, есть способ получше, но он работает для меня.

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

fc -e vi 372 372