Opdrachtcommando's afdrukken en opvragen om specifieke eerdere opdrachten te vinden

Als u probeert een exacte opdracht te onthouden die u via de Terminal hebt uitgevoerd, maar deze niet helemaal kunt verzinnen, kunt u uw opdrachtregelhistorie opvragen om oude opdrachten te vinden die in het verleden zijn uitgevoerd of uitgevoerd.

Deze truc om eerdere opdrachten te vinden en op te halen die in de opdrachtregel worden uitgevoerd, werkt ook op Mac OS, Mac OS X en ook op Linux en andere Unix-besturingssystemen. Alles met een standaardhistorie-opdracht kan deze truc gebruiken om eerdere opdrachten op te halen, waardoor het een waardevol hulpmiddel is voor systeembeheerders en opdrachtregelgebruikers.

Specifieke opdrachten zoeken uit de commandogeschiedenis in Mac OS

Als u de opdrachtgeschiedenis van een bepaalde opdracht wilt opsporen, moet u de Terminal-app openen en vervolgens de volgende syntaxis gebruiken:

history |grep "search string"

Hiermee zoekt u naar "zoekreeks" in uw opdrachthistorie en drukt u alleen exemplaren af ​​die de zoektekst bevatten.

Als je niet bekend bent met de Terminal en je je afvraagt ​​waarom dit nuttig zou kunnen zijn, laten we een voorbeeld nemen.

Voorbeeld: zoeken naar vorige "standaard" -commando's
Hier is een praktisch voorbeeld: ik probeerde de exacte syntax op te roepen van een standaard schrijfopdracht die ik recentelijk heb gebruikt. De standaardcommando's zijn vaak lange tekststrengen die het gedrag van Mac OS X of bepaalde applicaties aanpassen, vanwege hun lengte en onbekendheid. Een poging om er een van deze te onthouden, is op zijn minst een uitdaging.

In plaats van de pijl-omhoog te raken om voor eeuwig door eerdere uitvoeringen te bladeren, heb ik het volgende gebruikt om mijn opdrachthistorie te beperken tot alleen dingen met "standaard geschreven":

history | grep "defaults write"

Dit geeft de resultaten van de uitgebreide 'geschiedenis'-opdracht door middel van grep door om alleen exemplaren te vinden die' standaard schrijven 'bevatten in de opdrachtreeks, u ziet een resultatenlijst die lijkt op dit:

$ 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

In plaats van het doorzoeken van uw volledige geschiedenislijst, hebt u de resultaten versmald.

De zoekgeschiedenis van de commandogeschiedenis verfijnen

U kunt het zoeken naar de geschiedenis zo specifiek of niet specifiek maken als u wilt. Als ik bijvoorbeeld wist dat het standaardcommando waarnaar ik op zoek was betrekking had op com.apple.iTunes, kon ik het volgende commando gebruiken om mijn zoekopdracht verder te verfijnen:

history |grep "defaults write com.apple.iTunes"

Dat zou iets als teruggeven:

44 defaults write com.apple.iTunes full-window -1
51 defaults write com.apple.iTunes invertStoreLinks -bool YES

Probeer het zelf uit. U kunt dit doen met elke opdracht die u via de Terminal hebt ingevoerd, aangezien alle recent uitgevoerde opdrachten in uw geschiedenis zijn opgeslagen. Het standaard commando is specifiek voor Mac OS X, maar geschiedenis en grep zijn tools die generiek zijn voor de wereld van unix, dus als je ooit op een linux machine bent of anders dezelfde technieken kunt gebruiken.

Als je meer wilt weten over de onderbouwing van Mac OS X, bekijk dan onze opdrachtregel-tips.