Drucken und Abfragen des Befehlsverlaufs, um bestimmte frühere Befehle zu finden
Wenn Sie versuchen, sich an einen exakten Befehl zu erinnern, den Sie über das Terminal ausgeführt haben, aber nicht genau herausfinden kann, können Sie Ihren Befehlszeilenverlauf abfragen, um alte Befehle zu finden, die in der Vergangenheit ausgeführt oder ausgeführt wurden.
Dieser Trick zum Auffinden und Abrufen von früheren Befehlen, die in der Befehlszeile ausgeführt werden, funktioniert sowohl unter Mac OS, Mac OS X als auch unter Linux und anderen Unix-Betriebssystemen. Alles mit einem Standardprotokollbefehl kann diesen Trick verwenden, um vorherige Befehle abzurufen, was es zu einem unschätzbaren Werkzeug für Systemadministratoren und Befehlszeilenbenutzer macht.
So finden Sie bestimmte Befehle aus dem Befehlsverlauf in Mac OS
Um den Befehlsverlauf eines bestimmten Befehls aufzuspüren, müssen Sie die Terminal-App öffnen und dann die folgende Syntax verwenden:
history |grep "search string"
Dies wird nach "Suchzeichenfolge" in Ihrem Befehlsverlauf suchen und nur Instanzen zurückschreiben, die den Suchtext enthalten.
Wenn Sie mit dem Terminal nicht vertraut sind und sich fragen, warum dies nützlich sein könnte, nehmen wir ein Beispiel.
Beispiel: Suche nach vergangenen "Standard" -Befehlen
Hier ein praktisches Beispiel: Ich habe versucht, mich an die genaue Syntax eines Standard-Schreibbefehls zu erinnern, den ich kürzlich verwendet habe. Die Standardbefehle sind oft lange Textzeichenfolgen, die das Verhalten von Mac OS X oder bestimmten Anwendungen verändern. Aufgrund ihrer Länge und Unklarheit ist es eine Herausforderung, wenn man versucht, sich an eines dieser Dinge zu erinnern.
Anstatt den Aufwärtspfeil zu drücken, um für eine Ewigkeit durch vergangene Ausführungen zu scrollen, nutzte ich den folgenden Befehl, um meinen Befehlsverlauf auf Dinge zu beschränken, die "defaults write" enthalten:
history | grep "defaults write"
Dadurch werden die Ergebnisse des ausführlichen Befehls 'history' über grep übergeben, um nur Instanzen zu finden, die "defaults write" in der Befehlszeichenfolge enthalten. Daraufhin wird eine Ergebnisliste angezeigt, die ungefähr so aussieht:
$ history |grep "defaults write"
44 defaults write com.apple.iTunes full-window -1
51 defaults write com.apple.iTunes invertStoreLinks -bool YES
421 defaults write com.apple.FaceTime AutoAcceptInvitesFrom -array-add [email protected]
426 defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool true
427 defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool false
428 defaults write com.apple.appstore ShowDebugMenu -bool true
Anstatt die gesamte Verlaufsliste zu durchsuchen, haben Sie nun die Ergebnisse eingeschränkt.
Verfeinerung des Befehlsverlaufs Suche nach Besonderheiten
Sie können die Verlaufssuche als spezifisch oder unspezifisch festlegen. Wenn ich zum Beispiel den Standardbefehl, den ich gesucht habe, in com.apple.iTunes finden würde, könnte ich den folgenden Befehl verwenden, um meine Suche weiter zu verfeinern:
history |grep "defaults write com.apple.iTunes"
Was würde etwas zurückgeben wie:
44 defaults write com.apple.iTunes full-window -1
51 defaults write com.apple.iTunes invertStoreLinks -bool YES
Probieren Sie es selbst aus. Sie können dies mit jedem Befehl tun, den Sie über das Terminal eingegeben haben, da alle zuletzt ausgeführten Befehle in Ihrem Verlauf gespeichert sind. Der Standardbefehl ist Mac OS X-spezifisch, aber history und grep sind Werkzeuge, die für die Welt von Unix generisch sind. Wenn Sie also jemals auf einem Linux-Rechner arbeiten, können Sie die gleichen Techniken verwenden.
Wenn Sie mehr über die Grundlagen von Mac OS X erfahren möchten, lesen Sie unsere Tipps zur Befehlszeile.