- Узнаем все о своем Mac с помощью командной строки
- 1. Собираем информацию о системе в файл
- 2. Меняем настройки
- 3. Какие приложения жрут больше всего CPU и памяти?
- 4. Завершаем приложения из командной строки
- 5. Узнаем свой IP
- 6. Узнаем своего провайдера или на каком этапе возникли проблемы с инетом
- 7. Какие диски установлены в системе
- 8. Тестируем диск на наличие ошибок
- 9. Измеряем скорость интернета
- Консоль для маководов: Beyond the GUI
- Лирическое отступление
- Начнём работу
- Продолжаем знакомство с консолью. Команда open
- Пара слов о бандлах
- Скрипт?
- Скрипты AppleScript
- Кратко о других полезных командах Mac OS X
- Что-то типа заключения
Узнаем все о своем Mac с помощью командной строки
9 полезных команд.
В прошлый понедельник в статье 5 простых и полезных команд для начала работы с «Терминалом» в OS X была анонсирована серия статей о приемах работы с командной строкой на Mac.
Цель всех этих статей — расширить кругозор читателя и дать ему общее представление о том, на что способна командная строка в OS X и как это можно использовать для автоматизации своего труда. Чтобы читатель задумался о том, не стоит ли ему оптимизировать выполнение каких-то задач и работать эффективнее. Иногда 5-10 строк кода могут подарить несколько свободных часов.
Сегодня поговорим о командах для просмотра и изменения системной информации. Если вы пока не собрались ничего автоматизировать, то, имейте ввиду, что все описанное ниже можно сделать и без командной строки (стандартными средствами, либо с помощью сторонних утилит). Но через консоль быстрее и проще, чем через графический интерфейс. Просто надо к ней немного привыкнуть.
1. Собираем информацию о системе в файл
Утилита system_profiler выдает подробный отчет о системе, если не добавлять параметр «>file.txt», то вся эта информация отобразится на экране, а в противном случае сохранится в файл:
[code]
$ system_profiler >file.txt
[/code]
Зачем нужен такой файл, если такая же информация есть в меню «Об этом Mac»?
Во-первых, по текстовому файлу можно сделать поиск. Не надо искать на какой вкладке находится нужная информация, пролистывать длинные списки (к примеру, список установленных программ). Надо просто ввести искомые слова.
Во-вторых, послать такой файл другу на просмотр, чтобы получить совет, удобнее, чем делать скрины. А в третьих, файл, который создает system_profiler, можно использовать для контроля выполнения автоматизирующих скриптов (к примеру, для проверки версии «Редактора скриптов», чтобы знать точно какие команды на Apple Script/JavaScript поддерживаются компьютером). Или проверять перед запуском скрипта, хватит ли свободного места на диске для сохранения результатов его выполнения.
2. Меняем настройки
С помощью командной строки можно регулировать настройки. Этот пример меняет расширение по умолчанию для скриншотов:
[code]
$ defaults write com.apple.screencapture type JPG
[/code]
Аналогичным образом можно изменить многое. Например, включить отображение скрытых файлов в Finder:
[code]
$ defaults write com.apple.finder AppleShowAllFiles -bool YES
[/code]
Или разрешить выделение текста в QuickLook:
[code]
$ defaults write com.apple.finder QLEnableTextSelection -bool TRUE
[/code]
Всплывающие уведомления для iTunes:
[code]
$ defaults write com.apple.dock itunes-notifications -bool TRUE
[/code]
Еcли вы часто меняете какие-то настройки, то можете выяснить, как это делать с помощью консоли, сохранить эти команды в исполняемый файл и запускать его по мере необходимости.
3. Какие приложения жрут больше всего CPU и памяти?
Если Mac вдруг начал притормаживать, то следует посмотреть, что больше всего загружает процессор?
[code]
$ top -o cpu
[/code]
А что занимает оперативную память?
[code]
$ top -o mem
[/code]
4. Завершаем приложения из командной строки
После того как корень зла найден, то можно выкорчевать его, не выходя из командной строки. Эта команда закроет браузер Chrome:
[code]
$ pkill Chrome
[/code]
pkill можно использовать для аварийного завершения программ, когда они перестают отвечать. Со мной один раз было, когда Command + Option + Escape предательски завис, а через командную строку приложение удачно отключилось.
5. Узнаем свой IP
А это команда нужна чтобы узнать свой IP-адрес, когда нет желания делать это через браузер (к примеру, в нем настроены прокси).
[code]
$ scutil
> show State:/Network/Global/IPv4
[/code]
Чтобы закончить работу с утилитой scutil наберите команду:
[code]
> exit
[/code]
Или закройте окно «Терминала».
6. Узнаем своего провайдера или на каком этапе возникли проблемы с инетом
Бывает, что интернет внезапно перестает работать. И надо выяснить, следует ли звонить провайдеру или достаточно просто перезагрузить роутер (который стоит в другой комнате). Чтобы зря не ходить, можно использовать утилиту traceroute, которая укажет на каком этапе возникли проблемы с соединением:
[code]
$ traceroute google.ru
[/code]
Еще с ее помощью можно выяснить имя интернет-провайдера, которым пользуешься.
7. Какие диски установлены в системе
А эта команда отобразит список всех дисков, установленных в системе вместе с их именами и емкостью:
[code]
$ diskutil list
[/code]
8. Тестируем диск на наличие ошибок
Еще с помощью этой утилиты можно проверить диск на наличие ошибок:
[code]
$ diskutil verifyVolume /
[/code]
Если после проверки появилось сообщение “The volume Macintosh HD was found corrupt and needs to be repaired”, то надо ввести следующую команду для устранения неполадок с диском:
[code]
diskutil repairvolume /
[/code]
Вместо / (основной диск), можно поставить /Volumes/[имя диска], который мы узнали в предыдущем пункте.
9. Измеряем скорость интернета
А вот простая команда для измерения скорости интернета. Она нужна в тех случаях, когда надо сообщить службе поддержки точную скорость интернета (они иногда задают такие вопросы), но она настолько низкая, что сайты для ее измерения не загружаются:
[code]
curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test10.zip
[/code]
Продолжение следует. В следующем выпуске будет подборка команд для автоматизации работы в интернете.
Источник
Консоль для маководов: Beyond the GUI
Доброго дня, уважаемые хабравчане-маководы!
Сегодня я расскажу как увеличить эффективность работы в Mac OS X за счёт использования консоли.
Лирическое отступление
Думаю, ни для кого не секрет, что Mac OS является Unix-based системой, но переработанной почти до неузнаваемости. Даже консоль засунули куда подальше — не сразу и найдёшь. И вся система нацелена на использование GUI, при дефолтных настройках даже переключение между кнопками по Tab не работает — без мыши никуда. И тем не менее, Мак — это не только окошки, не только док и лаунчер. Мак это ещё и вся мощь shell скриптов и консоли!
Если Вы пришли из мира M$, то для начала неплохо бы поучить общие команды shell’а, например, по вот этому учебному пособию. Как минимум, нужно усвоить команды перехода по каталогам и способы запуска программ и скриптов.
Если Вы пришли в мир Mac OS из мира Linux’а и FreeBSD, то, скорее всего, знаете как минимум основы shell-скриптинга. Но и для вас в статье может оказаться кое-что интересное, ведь в маке есть уникальные консольные команды, которые так же полезно знать.
Вот о некоторых особенностях маковской консоли далее и пойдёт речь.
Начнём работу
Для начала избавимся от стандартного терминала. Ну, точнее, поставим другой — получше. Я лично предпочитаю iTerm2, который подходит для работы куда лучше системного. Хотя, и у него бывают интересные моменты (см. картинку вверху).
Далее нам могут понадобиться дополнительные инструменты, поэтому устанавливаем MacPorts (хотя, конечно, можно и другой менеджер пакетов). Теперь мы можем ставить нужные консольные утилиты с помощью простых команд. Например, ставим Midnight Commander (он в любом случае может пригодиться), набираем в iTerm2:
После ввода пароля и установки зависимостей и самого mc, можем его запустить, как вы уже догадались, командой mc .
О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15 , что же делать? Ну как что — лезть в системные настройки и выключать это. Иначе сложно будет с mc работать.
Ещё одно важное замечание: кури мануалы если что-то не понятно, набираем в консоли man команда — и получаем подробное описание команды. (Кстати, для выхода из просмотра мануала надо просто нажать Q).
Продолжаем знакомство с консолью. Команда open
Легко можно заметить, что mc показывает куда больше файлов и папок, чем Finder. Конечно, можно поставить хак для него, чтобы он отображал такие файлы, но не все это любят. Так что остаётся лишь пользоваться Cmd+Shift+G и вводить вручную имя папки. Но данный способ не особо удобен: нет автокомплита, нет возможности видеть скрытые файлы. Теперь вернёмся к терминалу. В Mac OS X есть замечательнейшая команда open , которая действует так, как будто пользователь сделал даблклик на файле или папке в Finder — открывает файл, бандл или ссылку в связанной программе, открывает папку в Finder’е. Вот простой пример работы с этой командой: заходим с помощью mc в скрытую папку (например, /etc/) и набираем:
Wuala! Файндер отобразил нам нашу системную папку! Но это ещё не всё, ведь скрытые файлы всё ещё не видны. Для примера, откроем наш .profile :
И — опа! — скрытый файл открылся в TextEdit! Всё предельно просто.
Пара слов о бандлах
Это всем известно, но на всякий случай повторю: обычные программы в Mac OS X на самом деле являются папками с расширением .app и особым образом устроенным содержимым. Убедиться в этом легко: открываем в Finder папку /Applications/ и делаем Ctrl+Click (либо Right-Click , если хотите) на любой программе и выбираем «Показать содержимое пакета».
Из консоли это так же очень хорошо видно: mc отображает эти программы именно как папки. И как же запустить из консоли GUI-программу, спросите вы? Очень просто, есть даже два способа.
Способ первый, простейший:
Программа будет запущена и консоль будет свободна для дальнейших действий.
Способ второй, интересный:
Программа будет запущена, но консоль не освобидится — она будет ждать завершения программы и выводить всё, что программа захочет вывести в неё. То есть, таким образом можно посмотреть рабочий лог некоторых программ.
Ещё одно очень важное различие между этими двумя методами: второй позволяет запустить два экземпляра программы, в то время как первый активирует уже запущенную, буде такая имеется. Так что через консоль можно решить и эту проблему (хотя, скорее фичу) макоси: через Finder, док и лаунчер запустить два экземпляра программы нельзя, а вот из консоли — пожалуйста, хоть двадцать два.
Скрипт?
Расскажу вкратце что из себя представляет shell-скрипт. По сути — это обычный текстовый файл, содержащий серию команд для выполнения. Самый простой скрипт просто запускает последовательно все команды. Скрипты посложнее могут иметь условия, циклы и функции, то есть, скрипт может быть весьма большой и сложной программой. Основной плюс таких скриптов — на их службе вся мощь консольных утилит из мира unix, что с лихвой компенсирует бедность языковых конструкций. Приведу простой пример скрипта, который преобразует все файлы .png в текущей директории, уменьшив их размер до 200 пикселей в ширину или высоту.
Пример простейший, но он демонстрирует главное: в скриптах сокрыта великая сила.
Скрипты AppleScript
В Mac OS X имеется несколько встроенных механизмов по автоматизации действий. Один из очень распространённых — AppleScript, для которого есть и графический редактор-запускатор. Но использовать такие скрипты можно и из консоли, для этого есть особая утилита — osascript . Использовать её можно так:
Не буду углубляться в AppleScript, он заслуживает отдельной статьи, и даже не одной. Так что рекомендую почитать справку или гугл по нему.
Главное: Вы можете комбинировать shell-скрипты со скриптами AppleScript, чтобы добиться максимальной гибкости в работе! К примеру, я использую такие вот смешанные скрипты для автоматической стилизации образа диска: сам диск создаётся с помощью shell (см. ниже), а фон и расположение элементов в образе задаётся с помощью AppleScript.
Есть ещё Automator, но он совсем уж GUI-шный, так что в данной статье его рассматривать бессмысленно. Он, конечно, полезный, но до мощи консоли не дотягивает.
Кратко о других полезных командах Mac OS X
Полный (ну, почти) список уникальных для макоси команд можно найти в одной хорошей статье (хотя сведения там немного устарели), я же вкратце расскажу о наиболее интересных.
Для работы с образами дисков имеется консольная утилита hdiutil . Пара примеров работы с ней:
Более подробно про возможности можно узнать из man hdiutil .
Если Вы — разработчик программ для макоси, то наверняка знаете о такой замечательной вещи, как Info.plist, да и вообще о plist’ах. Так вот, есть очень удобная утилита, позволяющая конвертировать .plist в .bplist, то есть, в более быстрый и лёгкий бинарный формат плиста.
Если хотите позаниматься ерундой, то можно из консоли проговорить любой текст. Для этого есть утилита say .
Так же можно задавать голос, которым мак будет с нами говорить:
Одна беда — по-умолчанию говорит эта штука только по-английски.
Теперь снимем скриншот командой из консоли.
Так же из консоли можно конвертировать текст между различными форматами. Например, можно переконвертировать .doc файл в HTML:
Так же textutil умеет преобразовывать кодировки.
Для изменения системных (и не только) настроек, можно использовать команду defaults . Используем её во благо! Включим наконец отображение скрытых файлов и папок в Finder!
Файндер автоматически перезапустится и теперь будет отображать скрытые файлы и папки! Но опять таки, это не всем нравится, так давайте это выключим, пока родителикто-нибудь не испугался или не удалил нужных файликов. Для сокрытия в уже указанной команде поставьте 0 вместо 1. Ну и для примера, ссылка на статью, где описано много твиков с помощью этой команды.
Что-то типа заключения
Ну что ж, мы разобрали некоторые интересные возможности консоли в Mac OS X. Статья, разумеется, не претендует на полноту и является, скорее, «заманухой» для вовлечения маководов в shell-скриптинг да и вообще в консоль.
Источник