Imprimer et interroger l'historique des commandes pour rechercher des commandes antérieures spécifiques

Si vous essayez de mémoriser une commande exacte que vous avez exécutée via le Terminal mais que vous n'arrivez pas à l'obtenir, vous pouvez interroger l'historique de votre ligne de commande pour découvrir les anciennes commandes exécutées ou exécutées dans le passé.

Cette astuce pour trouver et récupérer les commandes précédentes exécutées dans la ligne de commande fonctionne sur Mac OS, Mac OS X, ainsi que Linux et d'autres systèmes d'exploitation Unix aussi. Tout ce qui a une commande d'historique standard peut utiliser cette astuce pour récupérer les commandes précédentes, ce qui en fait un outil inestimable pour les administrateurs système et les utilisateurs en ligne de commande.

Comment rechercher des commandes spécifiques à partir de l'historique des commandes dans Mac OS

Pour suivre l'historique des commandes d'une commande particulière, vous devez ouvrir l'application Terminal, puis utiliser la syntaxe suivante:

history |grep "search string"

Cela recherchera "chaîne de recherche" dans votre historique de commandes et n'imprimera que les instances qui incluent le texte de recherche.

Si vous n'êtes pas familier avec le terminal et vous vous demandez pourquoi cela pourrait être utile, prenons un exemple.

Exemple: Recherche des commandes "par défaut" passées
Voici un exemple pratique: J'essayais de rappeler la syntaxe exacte d'une commande d'écriture par défaut que j'ai récemment utilisée. Les commandes defaults sont souvent de longues chaînes de texte qui modifient le comportement de Mac OS X ou de certaines applications, en raison de leur longueur et de leur obscurité, essayer de se souvenir de l'une d'entre elles est difficile à dire.

Au lieu de cliquer sur la flèche vers le haut pour faire défiler les exécutions passées pendant une éternité, j'ai utilisé ce qui suit pour restreindre l'historique de mes commandes à des choses avec des "valeurs par défaut" comme suit:

history | grep "defaults write"

Cela passe les résultats de la commande étendue 'history' via grep pour trouver seulement les instances qui incluent "defaults write" dans la chaîne de commande, vous verrez une liste de résultats qui ressemble à ceci:

$ 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

Maintenant, au lieu de chercher dans toute votre liste d'histoire, vous avez réduit les résultats.

Affinage de l'historique des commandes Recherche de détails

Vous pouvez rendre la recherche d'historique aussi spécifique ou non spécifique que vous le souhaitez. Par exemple, si je connaissais la commande par défaut que je recherchais pour com.apple.iTunes, je pourrais utiliser la commande suivante pour affiner ma recherche:

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

Ce qui reviendrait quelque chose comme:

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

Essayez-le vous-même. Vous pouvez le faire avec n'importe quelle commande que vous avez entrée dans le Terminal, car toutes les commandes récemment exécutées sont stockées dans votre historique. La commande defaults est spécifique à Mac OS X, mais history et grep sont des outils génériques pour le monde d'unix, donc si vous êtes sur une machine linux ou autrement, vous pouvez utiliser les mêmes techniques.

Si vous souhaitez en savoir plus sur les fondements de Mac OS X, consultez nos conseils en ligne de commande.