wake-up-neo.net

Wie kann ich mich an das Argument des vorherigen Bash-Befehls erinnern?

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?

269
The Coder

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.

492
codaddict

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
145
Robert Gowland

!!: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

Weitere Informationen zum Befehlsverlauf

72
Johntron

In der Kommandozeile können Sie drücken esc-. oder alt+.

Die zuvor verwendeten Argumente werden durchlaufen.

60
Antonio Mano

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.

28
Madisz

Ja, Sie können !$, um das letzte Argument des vorhergehenden Befehls abzurufen.

15
Justin Ethier

! * führt einen neuen Befehl mit allen vorherigen Argumenten aus.

ls /tmp
cd !*
#you are now in /tmp
15
user6768257