Ich gebe beispielsweise ein
cat /very/long/path/textfile
und gleich danach entscheide ich mich, den nächsten Befehl zu geben
rm /very/long/path/textfile
Meine Frage lautet also: Was ist der einfachste/schnellste Weg, das erste Wort eines vorherigen Befehls zu ersetzen? (ohne Pfeiltasten oder Kopieren und Einfügen)
Es sollte für jeden Befehl funktionieren (cat, rm und textfile dienen nur diesem Beispiel, es müssen nicht diese sein)
Antwort1
Angenommen, Sie verwenden eine Shell mit einem Standardverlaufsmechanismus (z. B. Bash, C-Shell, …), geben Sie den neuen Befehl (z. B. rm
) gefolgt von ein !*
. Geben Sie man bash
, man csh
, oder was auch immer für Sie geeignet ist, ein, um weitere Details anzuzeigen (und es gibtvielevon ihnen).
Antwort2
Wenn Sie Bash verwenden, können Sie eingeben, <Esc>_
um das letzte Argument des vorherigen Befehls abzurufen. Sie können auch die Variable verwenden $_
.
Ein anderer Ansatz besteht darin, den vorherigen Befehl mit abzurufen Ctrl-P
, dann Ctrl-A
mit zum Anfang des Befehls zu gelangen, anschließend Alt-D
das erste Wort zu löschen, das neue erste Wort (den Befehlsnamen) einzugeben und die Eingabetaste zu drücken.
Antwort3
Wenn Sie Bash oder Sh verwenden, können Sie den ersten Befehl eingeben und dann „Alt“ mit „.“ (Punkt) drücken, um das letzte Argument des vorherigen Befehls zu erhalten.
cat /very/long/path/textfile
um das letzte Argument des vorherigen Befehlstyps zu verwenden
rm "Alt+." und Sie erhalten
rm /very/long/path/textfile