5

Например я ввожу

cat /very/long/path/textfile

и сразу после этого я решаю дать следующую команду

rm /very/long/path/textfile

Итак, мой вопрос: каков самый простой / быстрый способ заменить первое слово предыдущей команды? (без клавиш со стрелками или копировать-вставить)

Это должно работать для любой команды (cat, rm и textfile только для этого примера, это не обязательно)

3 ответа3

7

Предполагая, что вы используете оболочку со стандартным механизмом истории (например, bash, C shell, ...), введите новую команду (например, rm), а затем !*  Наберите man bash , man csh или что-то подходящее для вас, чтобы увидеть больше деталей (а их много).

4

Если вы используете bash или sh, вы можете ввести первую команду, а затем нажать "Alt" с помощью «.» (Точка), чтобы получить последний аргумент предыдущей команды.

cat /very/long/path/textfile

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

рм "Alt+." и вы получите

rm /very/long/path/textfile
3

Если вы используете bash, вы можете набрать <Esc>_ чтобы получить последний аргумент предыдущей команды. Вы также можете использовать переменную $_ .

Другой подход - вызвать предыдущую команду с помощью Ctrl-P , затем использовать Ctrl-A чтобы перейти к началу команды, затем Alt-D чтобы удалить первое слово, ввести новое первое слово (имя команды) и нажать Войти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .