Wie kann ich gespeicherte Befehle aus dem Terminal löschen?

16

Wie Sie alle wissen, speichert Mac OS X alle Befehle, die vom Terminal ausgeführt werden, im Terminal selbst. Ich möchte jedoch (zum Beispiel) die letzten 3 Befehle vom Terminal löschen. Wie kann ich das machen?

JAHelia
quelle

Antworten:

12

Mac OS speichert nirgendwo etwas.

bashDie Shell, die im Terminal ausgeführt wird, speichert den Befehlsverlauf.

Der Terminal-Befehlsverlauf wird in einer versteckten Datei in Ihrem Benutzerverzeichnis namens gespeichert .bash_history

Dies bedeutet, dass die Datei: /Users/{username}/.bash_history

Sie müssen "Show System Files" aktivieren, um es zu sehen (über das Menü "View" im Finder).

Die Datei ist nur eine Textliste von allem, was Sie in die Shell eingeben. Sie können es in TextEdit oder einem Editor Ihrer Wahl öffnen.


Sie sollten wahrscheinlich schließen Terminal.app, um alle kürzlich vorgenommenen Änderungen in die Datei zu schreiben, bevor Sie Änderungen vornehmen. Andernfalls wird sie möglicherweise überschrieben, wenn sich eine Version Terminal.appim Speicher befindet.

Falscher Name
quelle
2
Befehle werden nicht im laufenden Betrieb gespeichert, sondern nur, wenn die Shell beendet wird oder wenn Sie dazu aufgefordert werden (z . B. history -aoder history -w). Normalerweise sind die letzten Befehle noch nicht in der Datei.
Matteo
Hoppla, ich wollte hinzufügen, dass Sie wahrscheinlich alle Instanzen von terminal.app schließen sollten, bevor Sie diese Datei bearbeiten. Fest.
Fake Name
19

Es ist keine Mac OS-Funktion, sondern eine Shell-Funktion. Angenommen, Sie verwenden bash (Standardeinstellung):

  • Der Befehlsverlauf wird im Speicher abgelegt und in einer Datei gespeichert (normalerweise ~/.bash_history).
  • Sie können den Verlauf mit dem historyBefehl auflisten und bearbeiten

Mit man bash(im SHELL BUILTIN COMMANDSAbschnitt) finden Sie die Beschreibung der verschiedenen Optionen.

Du kannst:

  • Listen Sie die Verlaufseinträge auf

    $ history
  • lösche den gesamten Verlauf

    $ history -c
  • Einen bestimmten Eintrag löschen

    $ history -d offset
Matteo
quelle
Beide Antworten sind richtig, ich habe die früheste ausgewählt. Danke, Bruder.
JAHelia
auf Geschichte zu tun -c, heißt es fc: event not found: -c. Dann habe ich die Datei manuell geöffnet, den Inhalt gelöscht. Closed and reopened the terminalund Geschichte existiert jetzt nicht.
Neugierig
2

Für Mac Terminal Benutzer

Löschen Sie die Bash-Befehls-Historie mit dem folgenden Befehl $ echo '' > ~/.bash_history

Für Mac zsh Benutzer

Löschen Sie den Verlauf der zsh-Befehle mit dem folgenden Befehl $ echo ''> ~/.zsh_hostory

vikbert
quelle
Beachten Sie, dass dadurch der gesamte Verlauf und nicht nur die letzten drei Zeilen gelöscht werden.
John N
0

Verwenden Sie neben der Textbearbeitung auch die Option "vi", um die Datei zu bearbeiten und die anstößigen Befehle zu entfernen. Ähnliche Befehlszeileneditoren sind emacs (die Bearbeitungsverknüpfungen mit OS X gemeinsam nutzen) oder nano (mit vereinfachter Navigation und visueller Hilfe zum Speichern und Beenden des Editors, ohne dass ein Referenzblatt erforderlich ist) .

gpdeveloper
quelle
1
Dies würde durch "Sie können es in TextEdit oder Ihrem Editor Ihrer Wahl öffnen" abgedeckt , was in der akzeptierten Antwort steht.
John N
Wir bevorzugen Antworten, die für sich allein stehen. Im Moment ist es eher ein Kommentar als eine Antwort. Können Sie mindestens den Namen der zu bearbeitenden Datei hinzufügen?
Nohillside