Gibt es in Bash eine Möglichkeit, sich an das Argument des vorherigen Befehls zu erinnern?
Normalerweise vi file.cfolge ich gefolgt von gcc file.c.
Gibt es in Bash eine Möglichkeit, sich an das Argument des vorherigen Befehls zu erinnern?
Gibt es in Bash eine Möglichkeit, sich an das Argument des vorherigen Befehls zu erinnern?
Normalerweise vi file.cfolge ich gefolgt von gcc file.c.
Gibt es in Bash eine Möglichkeit, sich an das Argument des vorherigen Befehls zu erinnern?
Antworten:
Sie können das letzte Argument des vorherigen Befehls verwenden $_oder !$abrufen.
Auch Alt + .kann verwendet werden , um das letzte Argument von einem der vorhergehenden Befehle wieder zu verwenden .
!!:1, !!:2usw. ( !!:0wird der vorherige Befehl selbst.) Siehe gnu.org/software/bash/manual/bashref.html#History-Interaction
!$verwenden Sie !^für das erste Argument.
echo tiger rabbit, wie kann ich auf tigerden folgenden Befehl verweisen ?
Alt + .funktioniert nicht im vi-Modus. Nur zu Ihrer Information, für andere, die hier verwirrt waren.
Wenn der vorherige Befehl zwei Argumente hatte, wie folgt
ls a.txt b.txt
und du wolltest den ersten, den du tippen könntest
!:1
geben
a.txt
Oder wenn Sie beides möchten, können Sie tippen
!:1-2
geben
a.txt b.txt
Sie können dies auf eine beliebige Anzahl von Argumenten erweitern, z.
!:10-12
-bash: :1-2: bad word specifier
ls a.txtZeile 2ll !:1-2
!:^-$kann verwendet werden oder natürlich ähnlicher Code in Kombination mit Zahlen.
!!:nWo nist die 0-basierte Position des gewünschten Arguments?
Zum Beispiel:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
Das !Präfix wird verwendet, um auf vorherige Befehle zuzugreifen.
Andere nützliche Befehle:
!$ - letztes Argument vom vorherigen Befehl!^ - erstes Argument (nach dem Programm / eingebauten / Skript) aus dem vorherigen Befehl!! - vorheriger Befehl (oft ausgesprochen "Bang Bang")!n- Befehlsnummer nvonhistory!pattern - Letzte Befehlsübereinstimmung pattern!!:s/find/replace- letzter Befehl, ersetzen finddurchreplace!!:s/find/replacekönnen Sie auch ^find^replace.
!* - alle Argumente aus dem vorherigen Befehl (nach dem Programm / integriert / Skript). zB: ls *.tmp *.cache rm !*
In der Kommandozeile können Sie esc- .oder alt+ drücken.
Es durchläuft das letzte Argument Ihrer vorherigen Befehle.
↑und ↓Schlüssel gefunden, um auch zu funktionieren.
Wenn Sie die im Verlauf für einen bestimmten Befehl angegebene Nummer kennen, können Sie so ziemlich jedes Argument in diesem Befehl mit den folgenden Begriffen verwenden.
Verwenden Sie Folgendes, um das zweite Argument aus dem dritten Befehl im Verlauf zu übernehmen:
!3:2
Verwenden Sie Folgendes, um das dritte Argument aus dem fünftletzten Befehl in der Historie zu übernehmen:
!-5:3
Mit einem Minuszeichen fordern Sie es auf, vom letzten Befehl des Verlaufs zu wechseln.
! * führt einen neuen Befehl mit allen vorherigen Argumenten aus.
ls /tmp
cd !*
#you are now in /tmp
$_stattdessen verwendet werden.
Ja, Sie können !$das letzte Argument des vorhergehenden Befehls abrufen.