MacにはOSを操作するコマンドが色々と用意されていますが なかなか知る機会も無ければ覚えるのも難しいものです。
m-cliはそんなシステムコマンドをわかりやすいサブコマンドとして まとめたツールです。
m-cli
Swiss Army Knife for Mac OS X、ということで
Macの色々な便利ツールをm
というコマンドから引っ張りだして
使える様にしたまとめツールです。
インストールはHomebrewで
$ brew install m-cli
もしくは直接
$ curl -fsSL https://raw.githubusercontent.com/rgcr/m-cli/master/install.sh | sh
curl
でインストールはちょっと議論になるところでもあるので
きちんと確認してから。
インストールするとm
というコマンドが使える様になるので取り敢えず打ってみると、
$ m
Swiss Army Knife for Mac OS X !
usage: m [OPTIONS] COMMAND [help]
OPTIONS
--update update m-cli to the latest version
--uninstall uninstall m-cli
COMMANDS:
help
battery
bluetooth
dir
disk
dns
dock
finder
firewall
gatekeeper
group
hostname
info
lock
network
nosleep
ntp
restart
safeboot
screensaver
service
shutdown
sleep
timezone
trash
update
user
volume
vpn
wallpaper
wifi
$
こんな感じでヘルプが出てきます。 サブコマンド一覧が出てきますが見れば大体出来ることが分かりそうです。
各サブコマンドのヘルプが見たい場合はサブコマンドにhelp
を付けて実行すると
$ m battery help
usage: m battery [ status | help ]
Examples:
m battery status # get the battery status
こんな感じでそのサブコマンドに関する詳細なヘルプが出ます。
一応サブコマンドのヘルプ一覧はReadme にあるので最初にざっと見ておくと良いかもしれません。
m-cliからMacのシステムコマンドを学ぶ
m-cliはシェするクリプトで作られているので中身を見ると 実際どの様なコマンドが呼ばれているか見ることが出来ます。
大元は
$ which m
/usr/local/bin/m
にあるm
コマンドですが、その中で
export MPATH=/usr/local/Cellar/m-cli/0.1.1
...
COMMAND=$1; shift;
[ ! -f ${MPATH}/plugins/${COMMAND} ] && usage
${MPATH}/plugins/${COMMAND} "$@"
という行があり、この中のplugins
というディレクトリの中のファイルを呼んで居ることが分かります。
この中に
$ ls /usr/local/Cellar/m-cli/0.1.1/plugins/
battery dns gatekeeper lock restart shutdown update wallpaper
bluetooth dock group network safeboot sleep user wifi
dir finder hostname nosleep screensaver timezone volume
disk firewall info ntp service trash vpn
こんな感じで各サブコマンドに対応するシェするクリプトが入っています。
GitHub上ではrgcr/m-cli/plugins にあります。
ちょっと見てみると、 battery なんかは
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
こんな感じになっていて、m battery status
とすると実際には
$ pmset -g batt
というコマンドを呼んでることが分かります。 実際に両方のコマンドを実行してみれば同じ結果が戻ってくるのがわかると思います。
他のスクリプトではdefaults
コマンドを使ったりしているものもあります。
また、いくつかのスクリプトではosascript
を使って
簡単なAppleScriptを実行しているものもあります。
volume の中では
1 2 3 4 |
|
こんな感じのミュート用の関数が用意されていて、 AppleScriptでボリュームをコントロールしていることが分かります。
こんな感じでMacをコントロールする術をm-cliから学ぶことが出来ると思います。
Mac-CLI
Mac-CLIはm-cliを作るにあたって参考にされた同じ様なツールです。
こちらはmysql
やssh
等、Macのシステムコマンド以外にも色々とまとめて
mac
というコマンドから出来る様になっています。
今のところHomebrewにはオフィシャルなFormulaは入っておらず、
インストールするにはcurl
で、
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/guarinogabriel/mac-cli/master/mac-cli/tools/install)"
などしてインストールします。
こちらは全てサブコマンドのさらに細かいコマンド設定は:
でくっつけて表現する様な形になっていて、
volume
などは
mac volume X: Set the volume from the terminal - X = Level (0-100)
mac volume:mute: Mute volume
mac volume:unmute: Unmute volume
mac volume:ismute: Check if the volume is muted or not
みたいな感じで、mute
とかは:
でvolume
にくっつけて
$ mac volume:mute
とするようになっています。
mysql
等、システム以外のコマンドを含めると沢山コマンドがありますが、
Macのシステムを管理する、と言う意味ではm-cliの方が
ソースコードも含めて良くまとまっていてわかりやすいと思います。