Gibt es in Bash eine Möglichkeit, sich an das Argument des vorherigen Befehls zu erinnern?
Normalerweise mache ich vi file.c
gefolgt von gcc file.c
.
Gibt es in Bash eine Möglichkeit, sich an das Argument des vorherigen Befehls zu erinnern?
Sie können $_
oder !$
, um das letzte Argument des vorherigen Befehls abzurufen.
Ebenfalls Alt + .
kann verwendet werden, um das letzte Argument eines der vorherigen Befehle abzurufen.
Wenn der vorherige Befehl zwei Argumente hatte, so
ls a.txt b.txt
und du wolltest den ersten, den du tippen könntest
!:1
geben
a.txt
Oder wenn Sie beides wollten, könnten Sie tippen
!:1-2
geben
a.txt b.txt
Sie können dies auf eine beliebige Anzahl von Argumenten ausweiten, z.
!:10-12
!!:n
wobei n
die 0-basierte Position des gewünschten Arguments ist.
Beispielsweise:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
Das !
Präfix wird verwendet, um auf vorherige Befehle zuzugreifen.
Andere nützliche Befehle:
!$
- letztes Argument des vorherigen Befehls!^
- erstes Argument (nach dem Programm/Built-In/Script) aus dem vorherigen Befehl!!
- vorheriger Befehl (oft ausgesprochen "bang bang")!n
- Befehlsnummer n
von history
!pattern
- Letzter Befehl, der mit pattern
übereinstimmt!!:s/find/replace
- letzter Befehl, ersetze find
durch replace
In der Kommandozeile können Sie drücken esc-. oder alt+.
Die zuvor verwendeten Argumente werden durchlaufen.
Wenn Sie die Nummer kennen, die in der Historie für einen bestimmten Befehl angegeben ist, können Sie so ziemlich jedes Argument in diesem Befehl unter Verwendung der folgenden Begriffe verwenden.
Verwenden Sie following, um das zweite Argument aus dem dritten Befehl im Verlauf zu übernehmen.
!3:2
Verwenden Sie following, um das dritte Argument aus dem fünften letzten Befehl im Verlauf zu übernehmen.
!-5:3
Mit einem Minuszeichen fordern Sie es auf, den letzten Befehl des Verlaufs zu durchlaufen.
Ja, Sie können !$
, um das letzte Argument des vorhergehenden Befehls abzurufen.
! * führt einen neuen Befehl mit allen vorherigen Argumenten aus.
ls /tmp
cd !*
#you are now in /tmp