¿Cómo controlar la radio inalámbrica Bluetooth desde la línea de comandos?

Esta pregunta es casi la misma que mi pregunta anterior , pero con una gran diferencia; Quiero activar/desactivar Bluetooth desde la línea de comandos (bash o similar), NO desde AppleScript; las respuestas que vi para esto en el superusuario usan AppleScript.

Supongo que networksetuppodría ser útil, pero no tengo idea de con qué interfaz(es) interactuar. Me gustaría una respuesta que incluya un comando completo que pueda ejecutar (y entender). Si el modelo del dispositivo es importante, es Snow Leopard MacBook2,1, MacBook7,1excepto MacBook5,1, y si solo puedes hacerlo por 6,1 y 7,1 está bien.

Puede ejecutar AppleScript desde la línea de comando usando osascript -e "<applescript goes here>"si las ventanas emergentes son el único problema que tiene al usarlo.
No me gusta AppleScript como lenguaje; tiende a ser detallado.
Además, los dispositivos de asistencia no están habilitados y no puedo administrar en esta computadora.

Respuestas (3)

Blueutil es una pequeña herramienta de línea de comandos para hacer esto. Es gratis y viene con el código fuente. Si tiene instalado homebrew , puede instalarlo a través debrew install blueutil.

Uso:

Imprimir estado de bluetooth
blueutil

Encender bluetooth
blueutil --power 1 oblueutil -p 1

Apague el bluetooth
blueutil --power 0 oblueutil -p 0

Funciona bien en una Macbook Pro con Lion (10.7.3) y una Mac mini con Snow Leopard (10.6.8). Obtendrá algunos errores si apaga el bluetooth mientras un mouse mágico está conectado, aunque todavía funciona :)

Gracias. Lo aceptaré pronto, pero no me gusta aceptarlo dentro de las 6 horas posteriores a la publicación (si puede hacerlo sin descargar nada, simplemente usando OS X incorporado, eso también sería muy bueno, así que estoy esperando a ver si alguien sugiere que).
@Andrew La otra forma en que podría hacer esto sin descargar nada es matando (y reiniciando) el proceso del demonio bluetooth (azulado) de la siguiente manera. Sin embargo, recomendaría no utilizar este método , ya que causa estragos en el panel de preferencias de Bluetooth y el ícono de estado de Bluetooth en la barra de menú, ya que ahora ya no podrán actualizarse. Para detener el demonio bluetooth: sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist. Para reiniciar el demonio bluetooth:sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
@Andrew Ah, acabo de notar que en un comentario anterior dijiste que no podías "administrar en esta computadora". Si lo entendí correctamente, mi comentario anterior no funcionará, ya que debe escribir una contraseña de administrador parasudo
Está bien, blueutilfuncionó bien.
blueutil tiene un código cuestionable incluido. Intenta usar un osax llamado XMail. XMail es un osax gratuito para Mac OS X que le permite enviar correos electrónicos desde AppleScript. Tenga cuidado con el software al que otorga privilegios de administrador. Aquí hay un mensaje que recibí en la Terminal cuando ejecuté el instalador pero antes de autorizar los privilegios de administrador. Error al cargar /Library/ScriptingAdditions/XMail.osax/Contents/MacOS/XMail: dlopen(/Library/ScriptingAdditions/XMail.osax/Contents/MacOS/XMail, 262): no se encontró una imagen adecuada.
No le di un privilegio de administrador. Acabo de copiar el binario.
Sí, acabo de copiar el binario a /usr/local/bin. Pero, ¿dónde está ese código cuestionable? Eché un vistazo a la fuente incluida y parecía legítima, aunque no la construí.
Esta fue una gran respuesta y, por cierto, puede brew install blueutilinstalarla fácilmente. Parece que han cambiado las banderas de la línea de comando, use blueutil power 1para encender el bluetooth.
Y blueutil power 0para apagar.
En general, se esperaba que una respuesta antigua de Mac fallara en máquinas más nuevas basadas en Intel, ¡pero también funciona para macOS High Sierra 10.13.6! Fue un encanto ya que mi servicio Bluetooth no estaba recuperando mis dispositivos desde el inicio de sesión esta mañana nuevamente. ¡Esto fue capaz de alternar el servicio cuando el Panel de preferencias no lo estaba! También me gustan los comandos más cortos que la comunidad admite en algunos casos, a diferencia de la otra launchctlrespuesta a continuación. blueutil -p <\d>funcionó para mí como en esta respuesta, a diferencia de los comentarios anteriores.

Lo siguiente funcionó para mí (OSX 10.7.5) para activar bluetooth desde la línea de comandos (usando los comandos que se encuentran aquí ):

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

(Me encontré con el problema de que desactivé el bluetooth y luego, en el siguiente inicio del sistema, ya no podía usar el teclado inalámbrico ... así que no inicie sesión desde la pantalla, pero podía iniciar sesión a través de ssh. Y no estaba claro para mí cómo instalar software como blueutildesde la línea de comandos como lo sugiere @binarybob)

No puedo sudo en esta computadora, según uno de mis otros comentarios, pero aún así es bueno saberlo. Descomprimí blueutil gráficamente y luego ejecuté el ejecutable desde la línea de comandos, por lo que ya tenía que haberlo configurado.
Como binarybob dijo anteriormente en su comentario , esto puede confundir la GUI

Esta herramienta de línea de comandos mac de código abierto supuestamente hace eso y mucho más:

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

La herramienta definitiva para gestionar tu Mac. Proporciona un gran conjunto de comandos de línea de comandos que automatizan el uso de su sistema OS X.