Как я могу вспомнить аргумент предыдущей команды в bash?
есть ли способ в bash вспомнить аргумент предыдущей команды?
Я обычно делаю vi file.c
следовал по gcc file.c
.
есть ли способ в bash вспомнить аргумент предыдущей команды?
7 ответов
можно использовать $_
или !$
для вызова последнего аргумента предыдущей команды.
и Alt + .
можно использовать для вызова последнего аргумента любой из предыдущих команд.
если у предыдущей команды было два аргумента, как это
ls a.txt b.txt
и вы хотели первый, вы могли бы ввести
!:1
дав
a.txt
или, если вы хотите оба, вы можете ввести
!:1-2
дав
a.txt b.txt
вы можете расширить это на любое количество аргументов, например:
!:10-12
в командной строке вы можете нажать esc -. или alt+.
переключение предыдущие аргументы вы использовали.
!!:n
здесь n
-это позиция аргумента, основанная на 0.
например:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
на !
префикс используется для доступа к предыдущим командам.
другие полезные команды:
-
!$
- последний аргумент из предыдущей команды -
!^
- первый аргумент (после программы/встроенного/скрипта) от предыдущей команды -
!!
- предыдущая команда (часто произносится " bang bang") -
!n
- номер командыn
Сhistory
-
!pattern
- последнее соответствие командpattern
-
!!:s/find/replace
- последняя команда, заменитьfind
Сreplace
Если вы знаете номер, указанный в истории для конкретной команды, вы можете в значительной степени принять любой аргумент в этой команде, используя следующие термины.
используйте following, чтобы взять второй аргумент из третьей команды в истории,
!3:2
используйте following, чтобы взять третий аргумент из пятой последней команды в истории,
!-5:3
используя знак "минус", вы просите его пройти от последней команды история.