Как найти файлы и папки в терминале OSX?
Какие существуют команды для поиска в терминале OSX?
Не для кого не секрет, что терминал в Mac OS X выступает, как сильная среда, в которой вы получаете доступ к скриптовым инструментам, которые способны организовать ваши рабочие процессы в операционной системе Mac OS X; собрать информацию, сформировать отчеты - воспользоваться вашим “маком”, качественно новыми способами. Вообще, просто не передать словами, когда без использования мыши и графического окружения, вы способны проделывать достаточно сложный операции, исключительно из командной строки вашего устройства под управлением Mac OS X. Безусловно, работа в терминале Mac OS X требует определенных знаний, уровнем выше, чем просто - пользователь компьютера. Но изучая компьютерные технологии, я также определил для себя, что начало - это любой этап в той или иной области. Ты начинаешь изучать, читать, восполнять пробелы знаний, которых не достаточно. Так и с командной строкой в Mac OS X. В ней нет определенных операций, которые нужно начинать изучать поэтапно. Вы либо знаете о тех или иных особенностях и функциональных возможностях, либо нет. Итак, сегодня учимся искать файлы в терминале Mac OS X. Очередная статья про командную строку в Mac OS X.
С чего начинается поиск в OS X, когда мы работаем с графической средой? Все просто, мы вызываем Finder , и нажимаем сочетание клавиш Command + F (на раскладке macbook клавиша слева, рядом с пробелом). Нажав сочетание для вызова поиска, мы просто вбиваем текст в соответствующее поле, и получаем наиболее полную информацию по интересующим нас критериям.
А как это происходит в командной строке? На самом деле поиск в командной строке Mac OS X также прост. Вам потребуется знать всего три основные команды поиска: "Find" , "mdfind" , "locate" . После ввода этих команд и указания всех параметров поиска, ваша поисковая выдача наполнится результатами с демонстрацией полного пути к файлам наиболее четко соответствующим введенному запросу.
Базовая команда поиска не только в операционной системе Mac OS X, но и на всех других Unix системах. Я говорю о том, что этот вариант поиска работает в других операционных системах, отличных от Mac OS X. Чтобы команда выполнялась корректно ей необходимо создать ряд условий:
1. Вы определяете область по которой будет происходить поиск;
2. Затем указываете имена файлов которые вам необходимы.
Не так много условий, но как только они будут выполнены, перед вами появится окно результатов поиск в командной строке Mac OS X, где будут указан полный путь к найденным файлам.
Так в примере выше, я воспользовался командой "find" в терминале Mac OS X (командной строке), для поиска файла с именем "Finder". В принципе условия поиска были достаточно простыми, ведь я знал расположение файла, знал его имя, и все что мне было необходимо - это ввести данные. Первое, что я сделал, это написал саму команду, далее путь к файлу, обозначил условие поиска "-name", и после условия ввел его значение - файл Finder.txt.
Стоит понимать, что мой пример примитивный, а поиск может происходит по любым параметрам, которые только пожелаете, и как может себе позволить "find" (команда поиска) в операционной системе Mac OS X (-type (поиск по определенному типу), -size (поиск по размеру файла) и т.д.).
Узнать о том какие условия доступны из командной строки для операторов "find" в Mac OS X можно набрав "man find" . Появится полное описание команды. Как только закончите его читать нажмите Ctrl + Z.
Найти что-либо в Unix системах быстрее чем в других ОС. Все дело в том, что поиск в Unix достаточно разнообразен. Ведь с одной стороны у вас есть команда "Find" . Ее функционал был продемонстрирован выше, но она эффективна в том случае, когда вы точно знаете место размещения, или у вас есть время для ожидания. Так как поиск "в слепую" при помощи команды "Find", может занять достаточно много времени. Так как объем сканируемого пространства в современных жестких дисках достигает внушающих размеров.
Поэтому, если вам необходимо найти системные файлы, необходимо воспользоваться специальной командой поиска "locate" . Правда для этого сначала необходимо включить специальную базу данных. Для начала вводим следующую строку в терминале OS X:
Sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
Данная инструкция заставит активироваться в вашей системе демона, который проиндексирует вашу систему и позволит работать с командой "locate" в терминале операционной системы OS X. Как я уже говорил команда locate направлена для поиска по системным файлам. Именно для этого ее и необходимо использовать. Так как в поисковый индекс не попадут пользовательские файлы. Кстати, не пытайтесь воспользоваться поиском при помощи locate сразу. База должна быть создана. Но как только процесс будет завершен, можно воспользоваться следующей конструкцией - пишем locate имя файла.
Эта команда представляет собой поисковый алгоритм в системах OS X только без графического окружения. Да, mdfind - это Spotlight, только без красивых кнопок, и с более трудными для понимания настройками.
Именно в этом поиске происходит настройка поиска по определенным параметрам, с указанием метаданных. При этом команда не лишена простого и понятного функционала, как просто осуществить поиск.
Введя простую инструкцию mdfind OSX. Будут найдены все документы с содержанием как внутри так и в название "OSX". Но такой поиск слишком широк, нам не нужна поисковая выдача содержащая несколько сотен объектов, и поэтому в команде mdfind приветствуется использование флагов. Таких как флаг "-onlyin" который дает возможность воспользоваться командой mdfind , но только по определенной конструкции, когда поиск будет производится в том месте который мы теперь можем указать (теперь, после ввода флага "-onlyin").
Кстати, если использовать "-onlyin" в директории (указывать путь поиска и заканчивать на директории) то поиск будет осуществляется в конечной папке и уровнями ниже. При этом если указать в конце файл, поиск будет производится в конкретном файле.
Собственно не так сложно, но при этом лучше конечно же знать спецификацию, попробовать почитать, чтобы понимать какие есть возможности для работы с командой поиска mdfind в терминале Mac OS X.
Mac OS является Unix- системой и являясь полноправным членом семейства Unix в ней есть командная строка (думаю не опытных пользователей Мак это удивит). Да в Mac OS так же как и в Linux, Windows есть командная строка, через которую можно выполнять абсолютно все команды. Изначально работа в Unix, Linux, Windows происходила так- пользователь вводил команду и спустя время получал результат. Затем появился графический интерфейс, с помощью которого можно было выполнять те же операции только значительно проще. На сегодняшний день практически все операции в Mac OS можно выполнять в графическом интерфейсе, но все же есть область администрирования, в которой без командной строки (в Mac OS она называется Терминал) ни как не обойтись, особенно она нужна при восстановлении работы операционной системой. Но поскольку сбои в Mac OS происходят крайне редко, многие пользователи и не догадываются, что у них есть Терминал.
Что бы начать знакомство с Терминалом или просто выполнить какие либо команды, необходимо его запустить. Запустить Терминал на Маке можно несколькими способами.
Запустите Spotlight, для этого нажмите на значок лупы в области для menulet или с помощью сочетания клавиш
В строке поиска Spotlight введите слово Терминал и нажмите "Enter"
В результате вы увидите окно Терминала.
Если первый способ запуска Терминала вас по каким то причинам не устроил, на мой взгляд, он удобней всего, есть еще один способ. Откройте "Finder" выберите "Программы" - "Утилиты".
Среди утилит найдите "Терминал" и запустите.
Терминал представляет собой мощный инструмент, который обеспечивает интерфейсом командную строку в OS X. Используя его, можно сделать очень много операций: от перемещения большого количества файлов, до изменения настроек системы. Для демонстрации возможностей терминала, мы рассмотрим некоторые команды, которые могут оказаться вам очень кстати.
Все команды совершенно безопасны в использовании, а изменения настроек, являются полностью обратимыми. Единственное во избежании ошибок, убедитесь, что вы вводите команды в точности, как они здесь написаны. Ну и конечно убедитесь, что у вас есть последняя резервная копия на случай, если что-то пойдёт ни так.
Терминал находится в папке Программы > Утилиты. После его запуска, вы можете начать вводить команды.
В терминале вы увидите что-то вроде этого:
MacBook:~ jordan$
Чтобы правильно определить команды, мы будем использовать знак доллара ($), как приглашение, поэтому следует просто ввести команду, которая следует за знаком доллара.
Для начала давайте поупражняемся с основными командами.
$ clear
Проще говоря, это очищает текущее окно. В терминале OS X вы можете прокручивать вверх, чтобы увидеть всю информацию. Эта команда просто очищает текущий вид.
Можно перейти к папке утилиты, введя следующую команду:
$ cd /Applications/Utilities
Если вы хотите быстро вернуться обратно в вашу домашнюю папку, вы можете просто ввести:
$ cd
С папками, содержащими пробелы, есть два способа сделать это:
$ cd /Volumes/Macintosh\ HD/
$ cd "/Volumes/Macintosh HD/"
Первый метод использует косую черту «\» и Терминал игнорирует пространство, которое следует за этим символом. Кроме того, можно просто «обернуть» путь к папке в кавычки и пробелы в нем будут также игнорироваться.
Вы можете просмотреть содержимое папки с помощью команды:
$ ls
Это очень полезно при копировании больших объемов данных, она может работать в терминальном окне, которое содержит больше полезной информации о ходе копирования, чем более традиционные окна при копировании в Finder.
$ ditto -V /old/work/ /new/work/
Эта команда будет копировать папку «work» на новое место. А добавление флага «-V», будет выводить в окне терминала подробную информацию для каждого файла, который копируется. Это очень полезно, вы можете в любое время точно узнать, какой файл копируется.
Если вы когда-нибудь делали скриншот окна в OS X, то замечали, что по умолчанию он всегда будет с тенью. Если вы предпочитаете скриншоты без тени, можете использовать следующую команду:
$ defaults write com.apple.screencapture disable-shadow -bool TRUE
Вы можете перезагрузить Mac, чтобы увидеть изменения или, используя другую команду, применить их мгновенно:
$ killall SystemUIServer
Эта команда останавливает графический интерфейс OS X на долю секунды. Не волнуйтесь, он должен работать все время, поэтому перезапускается мгновенно, но с вашим обновленным вариантом. Сделайте скриншот и вы заметите, что тени больше нет.
Чтобы отменить изменения, вы можете ввести следующие команды:
$ defaults write com.apple.screencapture disable-shadow -bool FALSE
$ killall SystemUIServer
Чтобы сразу увидеть изменения.
PNG, вероятно, лучший формат для скриншотов, но это, безусловно, может занять немного больше места. Если вы предпочитаете использовать формат PDF, используйте следующие команды:
$ defaults write com.apple.screencapture type PDF
$ killall SystemUIServer
Чтобы отменить изменения, введите следующую команду:
$ defaults write com.apple.screencapture type png
$ killall SystemUIServer
Если вы делаете много скриншотов, то можете быстро заполнить ими рабочий стол. Чтобы изменить это, используйте команду:
$ defaults write com.apple.screencapture location /drag/location/here
$ killall SystemUIServer
Вместо длинного имени пути, вы можете просто ввести первую часть команды и после слова «location», перетащить папку в которой вы хотите сохранить скриншоты. Чтобы отменить изменения, вы можете использовать:
$ defaults write com.apple.screencapture location ~/Desktop
$ killall SystemUIServer
Знак тильды ~, представляет вашу домашнюю папку. В приведенном выше примере, это фактически будет означать /Users/Name/Desktop. Полезная экономия времени!
Технология AirDrop — это отличная возможность для отправки файлов между Mac, это быстро и легко, но «беда» в том, что это только для Wi-Fi и для более современных компьютеров Mac.
Если ваш Mac в настоящее время не поддерживает AirDrop, вы можете ввести следующую команду, чтобы использовать его, а также использовать его по Ethernet:
$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool TRUE
Вам нужно будет перезапустить Finder — самый быстрый способ использовать команду «Killall»:
$ killall Finder
Чтобы отменить изменения, введите:
$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool FALSE
Также AirDrop можно включить и на хакинтош.
Для просмотра скрытых файлов и папок в OS X:
$ defaults write com.apple.finder AppleShowAllFiles -bool TRUE
$ killall Finder
После перезагрузки Finder, вы увидите много файлов, которые вы никогда до этого не видели.
Чтобы отменить изменения:
$ defaults write com.apple.finder AppleShowAllFiles -bool FALSE
$ killall Finder
Если вы хотите запустить некоторые стресс-тесты на вашем компьютере, есть простая команда, при её запуске, будет мгновенно использоваться 100% от мощности вашего CPU:
$ yes
Техники в Apple, часто используют это для тестов компьютеров Mac на сбои под нагрузкой, это очень быстрый способ. Для отмены команды нажмите Ctrl-C.
Иногда мы хотим увидеть, что наш Mac делает, когда дело доходит до чтения и записи на диск, особенно если мы пытаемся определить что-то, что мешает нам в извлечении диска. Для этого мы используем:
$ sudo fs_usage
Вводя sudo, мы просим, чтобы система запустила эту команду с правами привилегированного пользователя, это требует ввода логина и пароля. После этого, вы увидите поток информации, процессы доступа к диску.
Некоторые процессы, которые вы, вероятно, видите: Time Machine (backupd) и Spotlight (MDS).
Для отмены можно нажать Ctrl-C.
Общая ошибка в OS X видит дубликаты приложений в меню «Открыть с помощью …», чтобы исправить это:
$ /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
Эта команда будет работать в OS X Leopard и выше. В отличие от других команд, рекомендуем перезагрузить компьютер.
Это может быть несколько дней, недель или даже месяцев, прежде чем вы перезагрузите ваш Mac и иногда это может быть так долго, что мы даже не можем вспомнить, когда последний раз это делали. Чтобы посмотреть, как долго Mac работает без перезагрузки, можно использовать:
$ uptime
Эта команда отображает текущее время и время работы Mac.
Некоторые из команд необходимо выполнить с «sudo», чтобы запустить их в качестве корневого супер пользователя. Иногда, мы можем вводить длинную команду и забыть поставить в начале «sudo». К счастью, не нужно переписать всю команду. Вместо этого мы можем использовать очень простой ярлык, который станет ранее написанной командой:
$ !!
Если нужно ввести ту же команду, но с «sudo» впереди, мы можем просто набрать:
$ sudo !!
Чтобы выключить Mac немедленно:
$ sudo shutdown -h now
Чтобы перезагрузить Mac немедленно:
$ sudo shutdown -r now
Мы даже можем добавить время задержки (в минутах), если хотим:
$ sudo shutdown -r +60
Это можно сделать с помощью простой, с юмором названной, командой:
$ caffeinate
Ввод этой команды будет удерживать Mac от сна пока вы не остановите его, нажав Ctrl-C. Вы можете добавить время с параметром:
$ caffeinate -u -t 600
Число представляет собой количество секунд, так что эта команда не даст Mac «заснуть» в ближайшие десять минут.
Бывают случаи, когда нам просто необходим файл определенного размера, например для тестирования. Можно копировать файла в 1GB по сети, чтобы получить представление о её скорости. С командной строкой, мы можем создать пустой файл любого размера.
$ mkfile 1g test.abc
Вы можете указать размер файла в байтах (B), килобайтах (K), мегабайтах (M) или гигабайтах (G). Приведенный выше пример создает тестовый файл 1 ГБ под названием test.abc, но вы можете назвать его как хотите.
Вы, вероятно, слышали термин «пинг». Пинг посылает очень маленький бит информации по сети на удаленный компьютер, он показывает, сколько времени требуется для ответа на этот запрос.
$ ping -c 10 www.apple.com
Команда отправит 10 пакетов информации и предоставит подробный отчёт о времени отклика. Вы можете заменить www.apple.com на любое другое доменное имя или IP-адрес.
При вводе длинных путей, таких как:
/Volumes/Macintosh\ HD/Users/admin/Library/Application\ Support/
Всё это вводить может быть очень утомительным, вместо этого используйте клавишу «табуляции» для автозаполнения. Чтобы её использовать, начните вводить любую команду и где необходимо ввести путь, после набора первой или второй буквы нажмите «Tab». Чтобы попробовать, введите следующее, но вместо нажатия Enter, нажмите Tab:
$ cd /Us
Получится:
$ cd /User/
Очень похоже на автозаполнение слов в iOS.
Монитор активности приложения может дать нам детальное представление о том, что наш Mac в настоящее время делает. Мы можем проверить большую часть функциональности в терминале:
$ top
После запуска мы можем легко увидеть все текущие процессы, использование процессора, оперативной памяти и т.д.
Для того, чтобы увидеть все команды, которые мы ввели в командной строке:
$ history
Вы увидите все предыдущие команды, которые вы запускали в терминале.
Терминал может помочь вам настроить Mac, именно так, как вы хотите, обеспечивая доступ к функциям, которые просто не имеют графического интерфейса. Есть много вариантов, которые совершенно безопасны в использовании, но они скрыты от пользователя, их могут найти только опытные, желая сделать изменения.
Командная строка является очень мощным инструментом, используйте её с умом!
На основе материалов
Терминал Mac OS X — это приложение, внутри которого выполняется командный интерпретатор. Также терминал часто называют интерфейсом командной строки. Он интерпретирует команды специального языка скриптов.
По умолчанию в Mac OS X используется интерпретатор bash . Он является улучшенным вариантом интерпретатора Bourne shell, в простонародье просто shell . И он тоже присутствует в нашей системе в виде файла /bin/sh, хотя и не используется. В настоящий момент интерпретатор bash – фактически стал стандартом в большинстве систем семейства Unix.
Так же достаточно популярен интерпретатор zsh , который в свою очередь является улучшенным bash (и он тоже есть в нашей системе), но стандартом де-факто он не стал. Возможно пока. Существует еще множество различных командных интерпретаторов, но они не получили такого широкого распространения как bash .
Откройте Finder, войдите в каталог /Программы/Служебные программы (/Applications/Utilities) и два раза щёлкните по приложению Терминал (Terminal) - он запустится.
Нажмите Control+пробел (⌃+пробел) и в правом верхнем углу экрана появится строка запроса. Наберите в строке слово «terminal» или «терминал». По мере набора Spotlight постарается подобрать то, что вы ищете. Результаты будут отображаться под различными заголовками, но нужный нам будет располагаться напротив слова Программы или Наилучшее совпадение. Вы можете теперь кликнуть по найденному результату мышкой, либо нажать Return (↩) или Ввод (⌅) — терминал запустится.
Вместо «0″ и «1″ так же можно использовать Yes / No и TRUE / FALSE, это кому как удобнее и привычнее.
Большинство яблочников, говорят, что работа в окне этого приложения трудна и может нанести вред работе системы. Хотя сходство с командной строкой ОС от Майкрософт и есть, на Маках этот инструмент ближе к жизни рядового юзера и проще, чем командная строка. Ответим на вопрос - как запустить терминал на Mac OS, и для чего он нужен?
Есть три главных метода открыть утилиту командной строки. Первый способ активировать командную строку – это найти ее в общем списке приложений. Для этого в Док-меню находим «Finder», затем «Программы». В появившемся перечне программ ищем «Утилиты» - а уже там «Терминал.app». Щелкаем дважды и терминал откроется.
Второй способ открыть его на Mac OS быстрее предыдущего. В нем используется поиск Spotlight, где, написав искомое слово, найдем терминал в списке появившихся продуктов.
Третий способ. В Док-меню Mac OS находим значок «Программы», потом нажмем на него и нам откроется список приложений, где ищем «Утилиты». Там ищем «Терминал.app» и двойным щелчком открываем его.
Мы рассмотрели некоторые способы открытия командной строки в операционной системе Mac OS. Теперь давайте посмотрим, какие она нам дает возможности в Mac OS, которые по-другому не выполнить совсем или выполнить намного сложнее.
Пользование графической частью интерфейса операционной системы (когда операции в большинстве случаев выполняются мышью) хоть и привычнее и удобнее, не может сравниться с работой в командной строке, ведь раз за разом юзер вникает в саму суть ОС и не растеряется при выполнении нетривиальных задач.
Разберемся с принципами работы с командной строкой Mac. Их несколько:
Посмотреть все доступные команды терминала Mac можно, зажав, когда вы в самой программе, клавишу Escape. На вопрос «Display all 1436 possibilities? (y or n)» введите Y.