Как управлять беспроводным Bluetooth-радио из командной строки?

22

Этот вопрос почти такой же, как мой предыдущий вопрос , но с одним существенным отличием; Я хочу включить / выключить Bluetooth из командной строки (bash или аналогичной), а не из AppleScript - ответы для этого я видел на суперпользователе, все использовали AppleScript.

Я предположил бы , что networksetupможет быть полезным , но понятия не имеют , что интерфейс (ы) для взаимодействия с - я хотел бы получить ответ , включая полную команду можно запустить (и понять) - если модель устройства имеет значение, это Snow Leopard на MacBook2,1к MacBook7,1, за исключением того MacBook5,1, и если вы можете сделать только для 6,1 и 7,1, это нормально.

Эндрю Воннакотт
источник
1
Вы можете запустить AppleScript из командной строки, используя, osascript -e "<applescript goes here>"если всплывающие окна - единственная проблема, с которой вы сталкиваетесь при его использовании.
Мэтью Холл
Я не люблю AppleScript как язык; это имеет тенденцию быть многословным.
Эндрю Воннакотт
Кроме того, вспомогательные устройства не включены, и я не могу администратор на этом компьютере.
Эндрю Воннакотт

Ответы:

40

Blueutil - это аккуратный маленький инструмент командной строки, чтобы сделать это. Это бесплатно и поставляется с исходным кодом. Если у вас установлен homebrew , вы можете установить его черезbrew install blueutil.

Использование:

Печать состояния Bluetooth
blueutil

Включить Bluetooth
blueutil --power 1 илиblueutil -p 1

Выключить Bluetooth
blueutil --power 0 илиblueutil -p 0

Отлично работает на Macbook Pro с Lion (10.7.3) и Mac mini с Snow Leopard (10.6.8). Вы получите некоторые ошибки, если отключите Bluetooth, когда подключена волшебная мышь, хотя она все еще работает :)

binarybob
источник
Спасибо. Я приму это в ближайшее время, но не хотел бы принимать в течение 6 часов после публикации (если вы можете сделать это, не загружая ничего, просто используя встроенную OS X, что также было бы очень приятно, так что я жду, чтобы увидеть, если кто-то предполагает, что).
Эндрю Воннакотт
3
@Andrew Другой способ, которым вы могли бы сделать это без загрузки чего-либо, - убить (и перезапустить) процесс демона bluetooth (синий) следующим образом. Однако я бы порекомендовал не использовать этот метод, так как он портит панель настроек bluetooth и значок состояния bluetooth в строке меню, поскольку теперь они больше не смогут обновляться. Для того, чтобы остановить демона , поддерживающих Bluetooth: sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist. Чтобы перезапустить демон bluetooth:sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
binarybob
1
Я не дал ему привилегии администратора. Я просто скопировал двоичный файл.
Эндрю Воннакотт
1
Да, просто скопировал бинарный файл в / usr / local / bin. Но где этот сомнительный код? Взглянул на включенный источник, и он выглядел законно, хотя и не создавал его.
Эрика
5
Это был отличный ответ, и кстати, вы можете brew install blueutilлегко установить его. Они, кажется, изменили флаги командной строки, используйте blueutil power 1для включения Bluetooth.
Иван
11

Следующее работало для меня (OSX 10.7.5), чтобы включить Bluetooth из командной строки (используя команды, найденные здесь ):

sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist

(Я столкнулся с проблемой, что я отключил Bluetooth, а затем при следующем запуске системы я больше не мог использовать беспроводную клавиатуру ... поэтому не входил в систему с экрана, но я мог войти через ssh. И мне это было не понятно как установить программное обеспечение, например, blueutilиз командной строки, как предложено @binarybob)

Андре Хольцнер
источник
Я не могу sudo на этом компьютере, согласно одному из моих других комментариев, но это все еще приятно знать. Я распаковал blueutil графически, а затем запустил исполняемый файл из командной строки, поэтому мне уже пришлось его настроить.
Эндрю Воннакотт
Как ранее сказал двоичный боб в своем комментарии , это может запутать графический интерфейс
Greenonline
0

Этот инструмент командной строки с открытым исходным кодом Mac предположительно делает это, и многое другое:

https://github.com/guarinogabriel/Mac-CLI

Лучший инструмент для управления вашим Mac. Он предоставляет огромный набор команд командной строки, которые автоматизируют использование вашей системы OS X.

Брэд Паркс
источник