Ich verwende !n, wobei (n) die Zeilennummer zum Ausführen einer Zeile in der Verlaufsdatei ist, die ich an der Eingabeaufforderung ausführen möchte, die ich über history|less.
findeAber es gibt ein Befehlszeilenverlaufsereignis, das ich manuell ändern möchte. Wie kann ich einen Verlaufsereignisinhalt in die Befehlszeile einfügen, ohne dass er tatsächlich ausgeführt wird, damit ich ihn ändern und dann die Eingabetaste drücken kann?
Am besten,
Akzeptierte Antwort:
Um anzufordern, dass der Befehl nach der Ersetzung des Verlaufs gedruckt und nicht ausgeführt wird, fügen Sie :p
hinzu Modifikator, z. !42:p
. Der resultierende Befehl wird auch in den Verlauf eingetragen, sodass Sie Up drücken können um es zu bearbeiten.
Wenn Sie die histverify
Optionssatz (shopt -s histverify
), haben Sie immer die Möglichkeit, das Ergebnis der historischen Ersetzungen zu bearbeiten.
Der fc
builtin gewährt eingeschränkten Zugriff auf die Verlaufserweiterung (keine Wortbezeichner) und lässt Sie einen vorherigen Befehl in einem externen Editor bearbeiten.
Sie können !prefix
verwenden um auf den letzten Befehl zu verweisen, der mit prefix
beginnt , und !?substring
um auf den letzten Befehl zu verweisen, der mit substring
beginnt . Wenn Sie wissen, wonach Sie suchen, kann dies im Vergleich zum history | less
.
Eine weitere Möglichkeit, den vorherigen Verlauf zu durchsuchen, ist die inkrementelle Suche:Drücken Sie Strg +R und beginnen Sie mit der Eingabe einer Teilzeichenfolge dessen, wonach Sie suchen. Drücken Sie Strg +R um zum bisherigen Vorkommen des Suchstrings zu gehen und Strg +S wenn du zu weit gegangen bist. Die meisten Tasten außer Strg +R , Strg +S , Rücktaste und gewöhnliche Zeichen beenden die inkrementelle Suche und haben ihre übliche Wirkung (z. B. Pfeiltasten, um den Cursor in der erreichten Zeile zu bewegen, Enter um den Befehl auszuführen).