macOS独自コマンドの紹介

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ライフを!