Печать и запрос журнала команд для поиска определенных предыдущих команд

Терминал в macOS

Если вы пытаетесь запомнить точную команду, которую выполняли через Терминал, но не можете ее придумать, вы можете запросить историю своей командной строки, чтобы обнаружить старые команды, которые были запущены или выполнены в прошлом.

Этот трюк для поиска и извлечения предыдущих команд, выполненных в командной строке, работает в Mac OS, Mac OS X, а также в Linux и других операционных системах Unix. Все, что имеет стандартную команду истории, может использовать этот трюк для получения предыдущих команд, что делает его бесценным инструментом для системных администраторов и пользователей командной строки.

Как найти определенные команды из истории команд в Mac OS

Чтобы отследить историю команд конкретной команды, вам необходимо открыть приложение Терминал и затем использовать следующий синтаксис:

history |grep "search string"

Это будет искать «строку поиска» в вашей истории команд и распечатывать только те экземпляры, которые включают поисковый текст.

Если вы не знакомы с Терминалом и задаетесь вопросом, почему это может быть полезно, давайте рассмотрим пример.

Пример: поиск прошлых команд по умолчанию
Вот практический пример: я пытался вспомнить точный синтаксис команды записи по умолчанию, которую я недавно использовал. Команды по умолчанию часто представляют собой длинные строки текста, которые изменяют поведение Mac OS X или определенных приложений, из-за их длины и неясности, попытаться вспомнить одну из них из головы, мягко говоря, сложно.

Вместо того, чтобы нажимать стрелку вверх для прокрутки прошлых казней в течение вечности, я использовал следующее, чтобы сузить мою историю команд до только тех вещей, у которых по умолчанию написано:

history | grep "defaults write"

Это передает результаты обширной команды ‘history’ через grep, чтобы найти только экземпляры, которые включают «defaults write» в командной строке, вы увидите список результатов, который выглядит примерно так:

$ 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 osxdailycom@gmail.com
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

Теперь вместо поиска по всему списку истории вы сузили результаты.

Уточнение истории команд Поиск специфики

Вы можете сделать поиск в истории настолько конкретным или неопределенным, насколько захотите. Например, если бы я знал, что искомая команда по умолчанию относится к com.apple.iTunes, я мог бы использовать следующую команду для дальнейшего уточнения поиска:

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

Что вернет что-то вроде:

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

Попробуйте сами. Вы можете сделать это с помощью любой команды, введенной через Терминал, поскольку все недавно выполненные команды сохраняются в вашей истории. Команда defaults специфична для Mac OS X, но история и grep — это инструменты, общие для мира unix, поэтому, если вы когда-либо работали на Linux-машине, вы можете использовать те же методы.

Если вам нравится узнавать об основах Mac OS X, ознакомьтесь с нашими советами по работе с командной строкой.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *