CTO室所属のnyanと申します。日本語版のMac OSが漢字Talk 7という謎の名称で呼ばれていた頃からのmacユーザです。
現在のmacOSはBSD UNIXをベースとするオペレーティングシステムであり、同じ名前のコマンドでもGNU由来のLinuxのものとは異なる点があります。このためLinuxユーザーはmacでコマンドを使う際に違和感を覚えることもあるでしょう。例えばawkやsed、grepなどの各種コマンドの挙動の違いなどが一例ですが、一般的にLinuxのコマンドの方が機能が充実している傾向があります。またipやssコマンドのように、そもそもmacOSには存在しないコマンドもあります。
逆にmacOSにのみ存在するコマンドもあります。macを使っているのであればmacOS独自の便利コマンドを知っておくのも悪くないでしょう。今日はそのようなmacOSの独自コマンドをいくつか紹介したいと思います。
pbcopy & pbpaste
まずmacのターミナルを使う上で外せないコマンドがこの2つ。pbcopyは標準入力をクリップボードにコピーし、pbpasteはクリップボードの内容を標準出力に書き出すコマンドです。
setup.pyの内容をクリップボードにコピーする。
pbcopy < setup.py
クリップボードをsample.goに書き出す。
pbpaste > sample.go
open
openは名前の通り色々なものを開くコマンドです。ファイルを指定した場合Finder上でダブルクリックしたのと同じ効果を発揮します。
Excelファイルを開く
open hoge.xlsx
規定のブラウザでURLを開く
open http://example.com/
ブラウザを指定してURLを開く
open -a Firefox http://example.com/
カレントディレクトリをFinderで開く(これが地味に便利)
open .
osascript
AppleScriptを実行します。
AppleScriptはシステムやアプリケーションを制御するための言語です。AppleScriptはスクリプトエディタというアプリで作成するのが一般的ですが、コマンドラインから直接実行することもできます。以下のコマンドで通知センターに通知を送ります。
osascript -e 'display notification "にゃー" with title "猫" sound name "Glass"'
osascriptはシェルスクリプトのインタープリタとして使うこともできます。
#!/usr/bin/osascript
on run argv
set msg to "notification"
if (count of argv) > 0 then
set msg to (item 1 of argv)
end if
display notification msg with title "CLI" sound name "Glass"
end run
これをnotifyという名前で保存し、実行権限をつけて /usr/local/bin などにパスの通った場所に保存するとコマンドから簡単に通知センターを呼べるようになります。
時間のかかる処理の完了時に通知すると便利かもしれません。
./some-heavy-script.sh ; notify 完了

その他コマンドをダイジェストで紹介
security、キーチェーンのコマンドラインインターフェースです。mdfind、spotlight検索を行います。networkQuality、ネットワーク回線速度テストを行います。caffeinate、スリープを抑止します。say、テキストを読み上げます。afplay、サウンドファイルを再生します。
それでは、macで快適なCLIライフを!
