Print og Query Command History for at finde specifikke tidligere kommandoer

Hvis du forsøger at huske en nøjagtig kommando, du udfører via Terminal, men det ikke rigtig kommer op med det, kan du spørge din kommandolinjehistorie for at finde gamle kommandoer, der er blevet kørt eller udført tidligere.

Dette trick til at finde og hente tidligere kommandoer udført i kommandolinjen virker på Mac OS, Mac OS X, samt Linux og andre Unix-operativsystemer. Alt med en standardhistorikkommando kan bruge dette trick til at hente tidligere kommandoer, hvilket gør det til et uvurderligt værktøj til systemadministratorer og kommandolinjebrugere.

Sådan finder du specifikke kommandoer fra kommandog History i Mac OS

For at spore kommandologgen for en bestemt kommando, skal du åbne Terminal-appen og derefter bruge følgende syntaks:

history |grep "search string"

Dette vil søge efter "søgestreng" i din kommandobeskrivelse og kun udskrive forekomster, der indeholder søge-teksten.

Hvis du ikke er bekendt med terminalen, og du undrer dig over, hvorfor det kan være nyttigt, lad os tage et eksempel.

Eksempel: Søgning efter tidligere "standard" kommandoer
Her er et praktisk eksempel: Jeg forsøgte at huske den nøjagtige syntaks af en standardkommandokommando, som jeg for nylig brugte. Standardindstillingerne er ofte lange tekststreng, der ændrer adfærd i Mac OS X eller visse applikationer, på grund af deres længde og uklarhed, og forsøger at huske, at en af ​​disse er fra toppen af ​​dit hoved, er udfordrende at sige mildt.

I stedet for at ramme op pilen for at rulle gennem tidligere henrettelser for en evighed, brugte jeg følgende til at indsnævre min kommandobeskrivelse til kun ting med "standardskrivning" som sådan:

history | grep "defaults write"

Dette overfører resultaterne af den omfattende kommando "historie" gennem grep for at finde kun forekomster, der indeholder "standardskrivning" i kommandostrengen. Du får vist en resultatliste, der minder om noget som dette:

$ 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

Nu har du i stedet for at søge gennem hele din historikliste, indsnævret resultaterne.

Raffinering af kommandoprogrammet Søg efter specifikationer

Du kan gøre historiksøgningen som specifik eller uspecifik, som du vil. Hvis jeg for eksempel vidste, at standardkommandoen, jeg søgte, vedrørte com.apple.iTunes, kunne jeg bruge følgende kommando til yderligere at forbedre min søgning:

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

Som ville vende tilbage noget som:

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

Prøv det selv. Du kan gøre dette med enhver kommando, du har indtastet via Terminal, da alle nyligt udførte kommandoer gemmes i din historie. Standardindstillingen er Mac OS X-specifik, men historie og grep er værktøjer, der er generiske til UNIX-verdenen, så hvis du nogensinde er på en linux-maskine eller ellers kan du bruge de samme teknikker.

Hvis du kan lide at lære om undergrunden i Mac OS X, kan du tjekke vores kommandolinjepunkter.