При запуске команд иногда может потребоваться запустить команду с аргументом из последней команды. Как вы можете это сделать?
Конечно, кроме использования клавиш со стрелками и клавиш Del: & amp; & larr; & larr; & larr; ... & larr; & rarr; & amp; & delta; DelderDelDel ... Del [ f1].
Есть несколько ярлыков, если вы хотите, чтобы все аргументы из предыдущей команды или только последний аргумент.
Для всех аргументов: <command> !* Только для последнего аргумента:Примеры:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Если вам нужен один аргумент из списка аргументов из предыдущей команды, вы можете использовать <command> !!:<argNumber>
Example :
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
Упомянутые !* и !$ - это хорошо, но когда вам нужно немного отредактировать ярлыки для чтения, приходите на помощь!
Например, вместо бесчисленных & uarr; & larr; & larr & DeltaDelDel ... Del, вы можете просто нажать & uarr; Ctrl-a (переход к началу строки) Alt + d (удалить до конца слова)
Для получения дополнительной информации man readline и поиска Default key bindings.
Чтобы принять n th аргумент из вашей предыдущей команды, введите Alt + n + Alt_. Например, после:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
введите echo, а затем Alt 2 Alt _ даст вам это в следующем приглашении:
$ echo 2
«Снимок экрана после того, как вы нажмете 2 2:
(arg: 2) echo
Вы можете повторить 2 _ несколько раз, чтобы последовательно получить n -го аргумента предыдущих команд.
Еще одна полезная идея - определить псевдоним r="fc -s". Затем вы можете выполнить подстановки команд:
$ echo 1
1
$ r echo=history
history 1
27755 history 1