Skriv ut og spør kommandohistorikk for å finne bestemte tidligere kommandoer

Hvis du prøver å huske en nøyaktig kommando du utfører via Terminal, men ikke helt kan komme opp med det, kan du spørre kommandolinjens historie for å oppdage gamle kommandoer som har blitt kjørt eller utført i det siste.

Dette trikset for å finne og hente tidligere kommandoer utført i kommandolinjen virker på Mac OS, Mac OS X, samt Linux og andre Unix-operativsystemer også. Alt med en standardhistorikkkommando kan bruke dette trikset til å hente tidligere kommandoer, noe som gjør det til et uvurderlig verktøy for systemadministratorer og kommandolinjebrukerne.

Slik finner du bestemte kommandoer fra kommandog History i Mac OS

Hvis du vil spore kommandologgen til en bestemt kommando, må du åpne Terminal-appen og deretter bruke følgende syntaks:

history |grep "search string"

Dette vil se etter "søkestreng" i kommandoboken og bare skrive ut eksempler som inneholder søketeksten.

Hvis du ikke er kjent med Terminal, og du lurer på hvorfor dette kan være nyttig, la oss ta et eksempel.

Eksempel: Søke etter "Standard" kommandoer
Her er et praktisk eksempel: Jeg prøvde å huske den nøyaktige syntaksen til en standardkommando som jeg nylig brukte. Standardinnstillingene er ofte lange tekststrenger som endrer oppførselen til Mac OS X eller visse applikasjoner, på grunn av deres lengde og uklarhet, og prøver å huske at en av disse på toppen av hodet er utfordrende å si mildt.

I stedet for å slå opp pilen for å bla gjennom tidligere henrettelser for en evighet, brukte jeg følgende for å begrense min kommandologi til bare ting med "standardskriv" som sådan:

history | grep "defaults write"

Dette passerer resultatene av den omfattende kommandoen "History" gjennom grep for å finne bare forekomster som inkluderer "standardskriv" i kommandostrengen. Du får se en resultatliste som ligner noe slikt:

$ 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

Nå, i stedet for å søke gjennom hele historielisten, har du redusert resultatene.

Raffinere kommandogloggen Søk etter spesifikasjoner

Du kan gjøre historikkssøkingen så spesifikk eller uspesifikk som du vil. For eksempel, hvis jeg visste at standardkommandoen jeg lette etter, gjaldt com.apple.iTunes, kunne jeg bruke følgende kommando for å ytterligere forfine søket mitt:

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

Som ville returnere noe 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 gjøre dette med en hvilken som helst kommando du har angitt gjennom Terminal siden alle nylig utførte kommandoer er lagret i din historie. Standardinnstillingen er Mac OS X-spesifikke, men historikk og grep er verktøy som er generiske for Unix-verdenen, så hvis du noen gang er på en Linux-maskin eller på annen måte, kan du bruke de samme teknikkene.

Hvis du liker å lære om undergrunnen til Mac OS X, kan du se våre kommandolinjepunkter.