Помимо внушительного списка из более чем 200 изменений и нововведений, в Mountain Lion можно найти ряд новых UNIX-команд. Конечно, большинство из них довольно специфичны и предназначены, скажем так, для очень продвинутых пользователей, но некоторые команды могут пригодиться даже обычным юзерам, которые не пугаются командной строки и слова Терминал.

Администраторские команды

sharing

Эта утилита способна создавать, модифицировать и удалять общие ресурсы для AFP, FTP и SMB. Вот как с помощью неё, например, открыть общий доступ к определенному каталогу на вашем Mac для всех вышеперечисленных протоколов:

sudo sharing -a /Users/Deavy/temp-folder (имя каталога может быть любое)

Для отключения гостевого доступа к этой общей папке требуется немного модифицировать предыдущую команду:

sudo sharing -e /Users/Deavy/temp-folder -g 000

Отключить «шару» полностью так же просто, как и её создать:

sudo sharing -r /Users/Deavy/temp-folder

Помимо этого, sharing позволяет устанавливать индивидуальные имена и права на доступ для каждого протокола, а также указывать специфические детали. Единственное неудобство может заключаться в том, что данная команда должна всегда запускаться от root, но для большинства пользователей и применений это не будет столь критично.

serverinfo

Полезней всего данная команда будет при написании shell-скриптов, и позволяет определить, на какой версии системы он запускается (обычной или серверной), и какие специфические серверные функции включены:

if serverinfo -q --hardware; then echo Running on server hardware; fi

К сожалению, у этой команды до сих пор нет man’а с её подробным описанием, но запуск serverinfo -h отобразит список доступных опций, и этого уже может хватить.

Общие команды

caffeinate

Команда caffeinate запрещает вашему Mac’у переходить в режим сна на определенный промежуток времени (например, на час):

caffeinate -u -t 3600

Или позволить выполняться некоторой команде ровно столько, сколько нужно, не переживая, что встроенная функция автоматического перехода ко сну (которая особенно «агрессивно» себя ведет в Mountain Lion) прервет её выполнение:

caffeinate -s любая-команда-которая-выполняется-довольно-долго -аргументы

fdesetup

Полное шифрование диска с помощью утилиты FileVault — это одна из тех вещей, которую можно один раз включить и благополучно о ней забыть, ибо оно просто работает, как любил говаривать Стив Джобс. Так почему бы не появиться UNIX-команде, которая поддерживает весь этот процесс? На данный момент можно придумать несколько сценариев использования этой команды:

  • После включения FileVault каждый пользователь должен один раз войти в систему (login) для активации аккаунта. К сожалению, до выхода Mountain Lion не было простого способа узнать, кто из пользователей на определенном компьютере еще этого не сделал. Разве что малоинформативное сообщение в соответствующей панели в Системных Настройках. С помощью команды sudo fdesetup list можно вывести список активированных учетных записей. А sudo fdesetup add -usertoadd имя-пользователя позволит включить аккаунт указанному пользователю.
  • В сетевом окружении (например, небольшой фирме или учебном классе) администратор получит возможность принудительно включить FileVault на всех компьютерах при помощи комбинации ssh и fdesetup, включая интеграцию с Open Directory и Keychains, если это необходимо.

Однако, стоит иметь в виду, что сейчас данная команда поддерживает только основной жесткий диск, поэтому для шифрования любых подключенных внешних накопителей требуется использовать hdiutil.

pgrep и pkill

Скорее всего, многие продвинутые пользователи в прошлом и так устанавливали эти утилиты через MacPorts или Homebrew, поскольку гораздо проще воспользоваться pgrep, нежели писать конструкцию вида ps опции|grep то-что-мы-ищем (которая, к тому же, обычно возвращала сам grep). В OS X 10.8 они доступны «из коробки».

Например, если вы хотите узнать, сколько у вас запущено процессов Chrome, просто за пустите следующую команду:

pgrep Chrome | wc -l

Не менее полезной является pkill. Если вы хотите завершить все процессы Chrome для определенного пользователя не застрагивая другие учетные записи, запустите sudo pkill -U имя-пользователя Chrome. Для более специфичных задач (особенно с участием сложных регулярных выражений), где требуется подтверждение перед каждым «убийством» процесса, можно использовать -I.

tccutil

Эта команда предназначена для управления специальной базой данных, в которой хранятся решения пользователя в отношении приложений, запрашивающих доступ к личным данным. Правда, на данный момент она позволяет только удалять решения для определенной программы или сервиса (tccutil reset AddressBook). С одной стороны, это не так много, с другой — гораздо проще выполнить эту команду удаленно, чем идти на каждый компьютер в сети и ковыряться в Системных настойках.

Другие статьи из цикла «Особенности Mountain Lion» доступны по следующим ссылкам:

Читайте также: