Wenn ich meine Analysen mit der Bash-Shell durchführe, möchte ich häufig die Befehle, die ich verwendet habe und die mir gute Ergebnisse gebracht haben, in einer Datei im selben Verzeichnis (meinem "LOGBOOK", wie es heißt) speichern, damit ich überprüfen kann, was Ich habe getan, um diese Ergebnisse zu erzielen. Bisher bedeutete dies, dass ich entweder den Befehl vom Terminal aus kopierte oder "hoch" drückte, um den Befehl in einen echo"my command" >> LOGBOOK
oder einen anderen ähnlichen Fehler zu ändern .
Ich habe neulich festgestellt, dass es ein history
Tool gibt , aber ich kann keine Möglichkeit finden, damit den zuvor ausgeführten Befehl abzurufen, damit ich so etwas tun kann getlast >> LOGBOOK
.
Gibt es eine schöne einfache Möglichkeit, dies zu tun. Wie gehen andere alternativ damit um, die Befehle für die Ergebnisse zu speichern, die sie haben?
quelle
fc -lnr | head -n 1
kann abgekürzt werdenfc -lnr -1
.help fc
für meine Dokumentation verwendet. Die Bash-Manpage enthält weitere Details, einschließlich der Verwendung negativer Indizes. Eliminierenhead
ist gut, weil der eine Befehl noch eingebaut ist und es jetzt keine Fork / Exec mehr gibt.fc
...Ein Problem bei der Antwort von @ camh ist, dass bei einem Befehl, der mehrere Zeilen umfasst, nur die erste Zeile angezeigt wird:
Versuche dies:
quelle
cmdhist
behebt Folgendes: "Wenn gesetzt, versucht bash, alle Zeilen eines mehrzeiligen Befehls im gleichen Verlaufseintrag zu speichern. Dies ermöglicht eine einfache Nachbearbeitung von mehrzeiligen Befehlen."Anstatt den Aufwärtspfeil zu verwenden, können Sie auch
"!!"
auf den vorherigen Befehl verweisen.z.B
hinweis: dies zitiert nicht den wörtlichen text
quelle
ls | less
->echo !! >> LOGBOOK
->echo ls | less >> LOGBOOK
.Sie können dies mit dem folgenden Befehl tun, wenn Sie die Bash-Shell verwenden:
Damit werden alle Ihre Befehle aus der aktuellen Sitzung an diese Datei angehängt. Sie können auch einen Alias in Ihre ~ / .bashrc-Datei einfügen, um dies mit einem einzigen Befehl zu tun:
quelle