isEOL(@Angelworm_)

this method describes @Angelworm_ is End Of Life

知って得しないmacのコマンドたち

この記事はOUCCアドベントカレンダー2014 6日目です。

さて皆様、今あなたの手元には銀色に光るMacBookがあることかと思います。

一部の方はMacportsとかHomebrewとEmacsさえあれば他はいらないというOSSな方々もいると聞きます。しかし、いくらBSDベースとはいえ、それだけでは使い勝手が不足するはずです。

ということで便利如何にかかわらず、適当に思い出したコマンドを紹介します。またの名を自分用のメモともいう。

CpMac, MvMac

のっけから相当事情がない限り使わないコマンドがきました。基本的にはcpとmvコマンドと同じコマンドです。ただしフォークを保存します。

フォークというものに馴染みがないと思います。それもそのはず、Mac OSと呼ばれていたころまでに存在していた概念だったからです。

私こそ世代ではないので正確な説明には自信がありませんが、昔のMacではファイルは「データそのもの」と幾つかの「メタデータ」で一つでした。例えばアイコンはファイルの内容としてのデータではないですが、ファイルの情報としてのデータではあるのでファイルに与えられているべきです。このようなデータ以外のファイルの情報をデータと合わせてひとまとめに扱う概念がフォークです。フォークの概念下ではデータはデータフォークの中身のことで、アイコンはリソースフォークの一種となります。ちょうど先の別れた一本のフォークの先端に名前と意味を与える感じですね。

さて、このリソースフォークというもの、予想通りというかなんというかunix的コマンドでは認識されない場合が多く、普通に操作するだけでは消えたりしてしまう場合があるわけです。例えばlsはフォントファイル(当時はリソースフォークのデータだったらしい)は0バイトと言ってきます。ありえませんね。

となれば当然mvとかで動かしてもリソースフォークが吹き飛んで壊れるだけなので、なんとかしなければなりません。一例はAppleDoubleというデータフォークとそれ以外を格納するそれぞれ別のファイルで一組とする表現方法にして、両方にコマンドを適用してやれば良いとなります。もう一つは専用の改造を施したコマンドにすればリソースフォークも考慮してくれるわけです。

使用感はオプションが使えないmv,cpです。

Rez,DeRez

いまどきだと完全に使い道を見出せないコマンド。リソースフォークにコンパイルするためのコンパイラ

使い方はこの辺に詳しい。

[Mac OS X] HFS Plus:リソースフォーク管理 - Life with IT

どこにデータが入っているのかわからない.textClipplingファイル(文字を選択してデスクトップにD&Dで作成)とかの情報を取り出せる。

leaks, heap

本当にmacにしかないのか疑わしいコマンド。正確にはdeveloper Toolsに付いてくる。

leaks [pid]とやるとプロセスのメモリリークをリストアップしてくれる優れもの。
leaks(1) Mac OS X Manual Page

heapはmallocしたメモリを一覧にする便利なもの。
heap(1) Mac OS X Manual Page

GUIツールのInstrumentsが利用してるのかなという感じのするコマンド。

airport

非常にわかりづらい位置にあるコマンド。正式名称を "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" という。

現在のマシンのwifiとかについての設定をしたり情報を表示したりするツール。飛んでいる無線の情報を見たいならairport -sとやる。無線強度も見れて便利。

security

本当に使わなさそうなコマンドばかり出てくるのに飽きてきた頃かもしれませんが、これも利用法が怪しいです。キーチェーンをコマンドラインから操作するコマンド。アプリケーション開発の際には依存してみてもいいかもしれません。

キーチェーンはご存知の通り、ブラウザとかwifiとかがパスワードを覚えておくツールです。実際は証明書の管理とか秘密鍵とかも扱うので適当に扱うのは止めましょう。

securityではキーチェーンの作成、ロックから鍵の検索までできます。

security(1) Mac OS X Manual Page

便利な使い方として、find-internet-passwordコマンドを使いましょう。これさえあればアプリは覚えていて自分は忘れたパスワードを取り出すことができます。

$ security find-internet-password -a "account_name" -w
*****

ダイアログが出てくるのがウザいだけですね。

scutil

ネットワークの設定が環境設定よりは細かく閲覧できるコマンド。説明書くの疲れた。

open

知ってたらfile程度に使えるコマンド。finderのダブルクリックと同じ挙動ができます。MacネイティブGUIアプリでファイルを開きたいときとかに使える。-aオプションで開きたいファイルが指定できる。

いわゆるMac上で開けることがわかっているファイルならとにかくopenで開けるので大雑把に「ファイルを開く」必要があるときにオススメ。

[追記]調べてみたら色々面白い(使うかは別の)オプションがあった。-h keywordでヘッダーファイル名かヘッダーファイル内を検索し、マッチするファイルを開くらしい。”open -h NSView”みたいな。あとは-nを使えば、すでに起動しているアプリであろうと新しく起動することができる。わざわざコピーを作らなくても"open -na YoruFukurou"で無限に夜フクロウが起動できる。

say


まとめ

散発的な記事になってしまいましたが、少しは役にた(たなか)ったと思います。GUIオンリーの世界から来た割には充実しているのではないでしょうか。

さて、OUCCではMac大好きっ子も募集しています