「OSXの固有コマンド」の版間の差分
細 (→textutil … テキストファイル形式を変換) |
|||
行100: | 行100: | ||
plutil -convert myconfig.plist | plutil -convert myconfig.plist | ||
+ | |||
+ | 例:バイナリフォーマット・XML(テキスト)フォーマットに変換し標準出力する | ||
+ | plutil -convert xml1 -o - some_binary.plist > some_xml.plist | ||
+ | plutil -convert binary1 -o - some_xml.plist > some_binary.plist | ||
+ | |||
== say … 英語を発音する == | == say … 英語を発音する == |
2011年7月27日 (水) 00:27時点における版
UNIXターミナルで利用できるコマンドのうち、Mac OS Xに固有のものを紹介します。 (⇒UNIX入門に戻る)
調べるには,
$ zgrep -l "Mac OS X" /usr/share/man/man1/*
コマンド/テンプレート に倣って、徐々に分割していきます。(find:コマンド/)
目次
- 1 defaults … ユーザーデフォルトシステムへのアクセスを提供する
- 2 open … ファイルやフォルダを開く
- 3 osascript … AppleScript を実行する
- 4 pbcopy, pbpaste … コピーとペーストをコマンドから
- 5 plutil … プロパティリストファイルの検証と変換
- 6 say … 英語を発音する
- 7 screencapture … スクリーンキャプチャ
- 8 sips … 画像の操作とフォーマット変換
- 9 softwareupdate … ソフトウェアアップデートを実行する
- 10 textutil … テキストファイル形式を変換
- 11 CpMac --- ファイルのメタデータとフォークを保持したままファイルをコピーする
- 12 MvMac --- ファイルのメタデータとフォークを保持したままファイルを移動する
- 13 GetFileInfo --- ファイルタイプ・クリエータ等の情報を表示する
- 14 SetFile --- ファイルタイプ・クリエータを設定する
- 15 hdiutil, hdid, ditto の使い方
- 16 ditto … ファイルのコピーやアーカイブの作成・展開
- 17 security --- キーチェーンと Security.framework に対するコマンドラインインターフェイス
- 18 srm --- セキュアなファイル/ディレクトリ消去
- 19 open-x11 --- X11でプログラムを実行する
- 20 pstopdf --- PostScript ファイルを PDF ファイルに変換する
- 21 ni** -- NetInfo 関連コマンド
- 22 mdfind -- Spotlight のコマンド版
- 23 launchctl -- daemonやagentを管理する
- 24 convert -- 画像ファイル形式を変換
- 25 afconvert -- 音声ファイル形式を変換
- 26 sw_vers -- Mac OS Xのバージョンを表示
- 27 pkgutil -- pkg 形式のパッケージ管理を管理
- 28 Wiki内の関連ページ
defaults … ユーザーデフォルトシステムへのアクセスを提供する
- OSのバージョン:Mac OS X 10.0(Cheetah)以降
- 場所:/usr/bin/defaults
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/defaults.1.html
- 使えるdefaultsを書き込め
- Macの隠し機能を有効にする -「Mac OSの使い方」All About(2009-06-06)
- 【コラム】OS X ハッキング! (125) 今さら聞けないdefaultsコマンドの使い方 - マイコミジャーナル(2005-02-28)
defaults [-currentHost | -host hostname] sub-command [parameters] sub-command = read | read-type | write | rename | delete | ...
アプリケーションの初期設定を操作するコマンド。アプリケーション自身の初期設定パネルからアクセスできない変更も可能にします。
(例)ダッシュボードを起動しないようにする(NO を YES に変えると復活):
defaults write com.apple.dashboard mcx-disabled -boolean NO killall Dock
defaults read [domain [key]]
defaults write domain {plist | key value}
(未完成)
(例)Safari において PDF ファイルをウィンドウ内表示させる:
defaults write com.apple.Safari WebKitOmitPDFSupport -bool YES
(例)スクロールバーの矢印 (スクロールアロー) を双方向にして両端におく(DoubleBoth の代わりに Single,DoubleMin,DoubleMax (あるいはDouble) が指定できる):
defaults write "Apple Global Domain" AppleScrollBarVariant DoubleBoth
open … ファイルやフォルダを開く
→ コマンド/openを参照してください。
osascript … AppleScript を実行する
→ コマンド/osascript を参照して下さい。
- OSのバージョン:Mac OS X 10.0(Cheetah)以降
- 場所:/usr/bin/osascript
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/osascript.1.html
pbcopy, pbpaste … コピーとペーストをコマンドから
- pbcopy: 標準入力(の内容)をクリップボードへ入れる(コピーする)。
- pbpaste: クリップボードに入っているものを標準出力へ渡す。
コマンドの標準出力を文字コードUTF-8へ変換し,コピーする。
コマンド | nkf -w | pbcopy
クリップボードの内容をファイルに保存する。
pbpaste > ファイル
クリップボードのテキスト内容を改行コードLFへ変更したものを,コマンド等の標準入力へ渡す.
pbpaste | nkf -Lu | コマンド -
plutil … プロパティリストファイルの検証と変換
- OSのバージョン:Mac OS X 10.2(Jaguar)以降
- 場所:/usr/bin/plutil
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/plutil.1.html
plutil -help plutil [-lint] [-s] file ... plutil -convert format [-o outfile] [-e extension] file ...
plutil はプロパティリスト形式のファイルの文法検証とフォーマット変換を行うユーティリティである。
-lint オプションは、指定したファイルの文法チェックを行う。これはデフォルトの動作で、オプションが指定されなかった場合も同じ動作になる。-s オプションを同時に指定すると、成功した場合は何も出力しない。
-convert オプションは直後にフォーマットを指定して、.plist ファイルのフォーマットを変換する。現在、以下のフォーマットを指定可能。
- xml1 -- XML プロパティリスト バージョン 1
- binary1 -- バイナリプロパティリスト バージョン 1
他にオプションを指定しない場合、元のファイルは変換後のファイルで置き換えられる。
-o オプションを指定すると、outfile に変換後のファイルを書き出す。これは 1 ファイルだけ変換する際に有効。もし複数のファイルを指定した場合は、outfile の中身は最後に変換したファイルになる。
-e オプションを指定すると、.plist の代わりに指定した拡張子で変換後のファイルを書き出す。
例:myconfig.plist を文法チェック
plutil -lint myconfig.plist
例:myconfig.plist をバイナリフォーマットに変換
plutil -convert myconfig.plist
例:バイナリフォーマット・XML(テキスト)フォーマットに変換し標準出力する
plutil -convert xml1 -o - some_binary.plist > some_xml.plist plutil -convert binary1 -o - some_xml.plist > some_binary.plist
say … 英語を発音する
→ コマンド/say を参照して下さい。
screencapture … スクリーンキャプチャ
Mac OS X は Cmd + Shift + 3、Cmd + Shift + 4 でスクリーンキャプチャが行えますが、コマンドラインツールを使うと保存場所を決める等小回りがききます。デフォルトのフォーマットは 10.3 以前は PDF でしたが、10.4 から PNG になりました。
screencapture [-SWcimswx] [-t<format>] <file>
- -i : 対話式モード。
- -W : (-i と併用)ウィンドウキャプチャモード。
- -S : (-iW と併用)ウィンドウ範囲のスクリーンキャプチャモード。上に重なっているウィンドウが重なってキャプチャされます。
- -c : ファイルに保存せず、クリップボードに保存する。<file> 指定は無視されます。
- -C : カーソルもキャプチャする。-i スイッチとは併用できません。
以下のオプションは 10.4 以降対応です。
- -t<format> : ファイルフォーマット。-t と <format> の間に空白をおいてはいけません。
例:
画面全体をクリップボードにコピーする。
screencapture -c
選択範囲をクリップボードにコピーする。
screencapture -ic
マウスで選択したウィンドウを captue.png として保存する(10.3以前は .pdf に読みかえてください)。
screencapture -iW capture.png # sleep している間に目的のウィンドウをアクティブにできます。 sleep 2 && screencapture -iW capture.png
sips … 画像の操作とフォーマット変換
- OSのバージョン:Mac OS X 10.3(Panther)以降
- 場所:/usr/bin/sips
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/sips.1.html
- http://developer.apple.com/jp/technotes/tn2035.html#TNTAG58
- 【コラム】OS X ハッキング! (73) Pantherを追いかけて(5)~sipsは使えるよ~ - マイコミジャーナル(2003-12-05)
softwareupdate … ソフトウェアアップデートを実行する
→ コマンド/softwareupdate を参照して下さい。
- OSのバージョン:Mac OS X 10.0(Cheetah)以降
- 場所:/usr/sbin/softwareupdate
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man8/softwareupdate.8.html
textutil … テキストファイル形式を変換
- OSのバージョン:Mac OS X 10.4(Tiger)以降
- 場所:/usr/bin/textutil
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/textutil.1.html
- Apple Geeks 第33回:知る人ぞ知るテキスト形式変換コマンド「textutil」の謎を解く - ASCII.jp(2011-03-31)
- 対応形式(Mac OS X 10.6 における)
リッチテキスト txt, html, rtf, rtfd, doc, docx, wordml, odt, or webarchive
(例)リッチテキストファイルからHTMLファイルを作成する
$ textutil -convert html origfile.rtf
以下のコマンドは標準では Mac OS X にはインストールされておらず、Xcode などの Apple 製開発ツールをインストールすると /Developer/Tools にインストールされる。常用するなら /Developer/Tools にパスを通しておくとよい。(参考:パスを通す )
CpMac --- ファイルのメタデータとフォークを保持したままファイルをコピーする
コマンド cp では Classic MacOS のファイルが持つリソースフォークなどの情報はコピーされない。 Mac OS X の登場後、リソースフォークをサポートするアプリケーションは次第に減りつつあるが、まだまだリソースフォークを保持したままファイルをコピーしたい場面は多い。そのような場合、CpMac コマンドを用いてリソースフォークを保持したままファイルをコピーすることができる。cp コマンドに比べて利用できるオプションの数はだいぶ少ないが、ほぼ cp と同様の使い方ができる。すなわち、
CpMac FILE TARGET
とすることで、TARGET が既存のディレクトリだった場合には FILE を TARGET ディレクトリにコピーし、TARGET が存在しないパス名だった場合には、これが新しいファイル名と見なされ、その名前で FILE の複製が作られる。-p オプションを指定すると,ファイルの修正日やアクセス権などの情報もそのままコピーされる.また、
CpMac -r DIRECTORY TARGET
とすることで、DIRECTORY 以下のファイルが、サブディレクトリも含めて TARGET ディレクトリにコピーされる。
ちなみに、リソースフォークなどを保持したままファイルをコピーしたければ、ほかに ditto コマンドを利用することもできる。
なお、Mac OS X 10.4 (Tiger) では cp コマンドがリソースフォークに対応したので、CpMac コマンドは必要なくなった (コマンド自体は Xcode 2.0 をインストールすれば /Developer/Tools にインストールされる)。CpMac のオンラインヘルプによれば、将来的にはこのコマンドは廃止される予定である。
- [質問]逆に(?)Tiger の cp、mv 等にリソースフォークを無視する(分離・削除する)オプションは用意されているでしょうか?
- man cp しても通常の BSD の cp コマンドのマニュアルしか出てこないので、どうもそのようなオプションはないような気がします。もう少し調べてみますが……
- ありがとうございます。いちいち SplitForks を使わなければならないのであれば Tiger への移行は見送ります。周りがみんな Mac ユーザならうれしい変更なのですが.....。
- まだちゃんと調べていませんが,自分で cp や mv をビルドして /usr/local/bin にでも入れておけばよいかもしれませんね.Tiger は起動や最適化,Finder の動作などが速くなった (たとえばコマンドでのファイル操作の結果が即時に反映されます) のがよいと感じています.比較的低速なマシンを使っている身にはありがたいです.
- Tiger では、ditto コマンドで -norsrc オプションを使えば、リソースフォークおよび HFS メタデータは無視されてコピーされます。
- リソースフォークに対応していないファイルシステム(HFSやHFS+以外)にファイルを移動またはコピーすると、リソースフォークが分離し別名で保存されます。
MvMac --- ファイルのメタデータとフォークを保持したままファイルを移動する
UNIX の標準的な mv コマンドでは、ファイルの移動の際に Classic MacOS のファイルが持つリソースフォークなどの情報は保存されない。そうした情報を持ったままファイルを移動したいときには MvMac コマンドを使うとよい。
MvMac FILE DIRECTORY
とすることで、FILE が DIRECTORY 下に移動される。DIRECTORY が存在しないパス名だった場合には、MvMac コマンドはこれをファイル名と見なし、FILE が DIRECTORY にリネームされる。FILE は複数指定することもできる。この場合、DIRECTORY が存在しないパス名だったときには、DIRECTORY というディレクトリが新たに作成され、その下に指定したファイルが全て移動される。
なお、mv コマンドと異なり、MvMac にはオプションを指定できない。また、指定したファイルのあるボリュームと異なるボリュームにファイルを移動することはできない。
Mac OS X 10.4 (Tiger) では mv コマンドがリソースフォークに対応したので、MvMac コマンドは必要なくなった (コマンド自体は Xcode 2.0 をインストールすれば /Developer/Tools にインストールされる)。将来的にはこのコマンドは廃止される予定である。
GetFileInfo --- ファイルタイプ・クリエータ等の情報を表示する
GetFileInfo FILE
SetFile --- ファイルタイプ・クリエータを設定する
SetFile [-a attributes] [-c creator] [-d date] [-m date] [-t type] FILE
SetFile はファイルタイプやクリエータなどのファイル属性を設定する。ただし、このコマンドで属性を設定できるのは HFS+ ディレクトリにあるファイルに限られる。FILE は複数指定することも可能。
オプションには、次のようなものがある。
-a attributes
ファイルの属性を設定する。文字列 attributes は以下に示すローマンアルファベットからなる文字列(長さはいくつでもよい)で、大文字と小文字が区別される。attributes 内の文字列それぞれがファイル属性に対応しており、大文字の場合にはその属性のビットがオン(1)に、小文字の場合にはオフ(0)になる。
a | エイリアス(シンボリックリンクではない)である |
b | バンドルである |
c | カスタムアイコンを持つ(フォルダにも適用可) |
d | デスクトップにある(フォルダにも適用可) |
e | 拡張子が非表示(フォルダにも適用可) |
i | ファインダーがウィンドウ内の位置を記憶している(フォルダにも適用可) |
l | ロックされている |
m | 複数回起動が可能なアプリケーションである |
n | INIT リソースを持たない |
s | システムファイルである(名称変更不可) |
t | |
v | ファインダー上で不可視である(フォルダにも適用可) |
-c creator
ファイルのクリエータを creator に設定する。 クリエータとは Classic MacOS でファイルとそれを作成したアプリケーションを関連させるために用いられていた情報で、英数字または空白4文字からなる文字列で指定される。クリエータが空白を含む場合には必ず引用符で creator を囲む必要がある。
-d date
ファイルの作成日を設定する。date の書式は mm/dd/[yy]yy [hh:mm:[ss] [AM | PM]] となる。date が空白を含む場合には引用符で囲まなければならない。
-m date
ファイルの修正日を設定する。date の書式は -d オプションと同じ。
-t type
ファイルタイプを設定する。ファイルタイプとは Classic MacOS でファイルの種類を示すために用いられていた情報で、クリエータと同様に必ず4文字の英数字または空白からなる。ファイルタイプが空白を含む場合には、やはり引用符で囲む必要がある。
- むか〜し作った Maple(v.6) ワークシートを開くためわざわざ Classic 環境をインストールして、いざ開こうとしたら開けず.....。初めて上記コマンドのお世話になりました。
hdiutil, hdid, ditto の使い方
次のページで詳しく解説されています。
- hdiutil, hdidとdittoによる、HFS+のdmgイメージの作り方 - いのうえ・こういち - Macintosh Notes(2002-11-05)
ディレクトリをもとに(Windowsでも見れる)hybridなisoイメージを作成するには
hdiutil makehybrid -o hogehoge.iso /Path/To/Directory
isoイメージをCDなどに焼くには
hdiutil burn foobar.iso
ditto … ファイルのコピーやアーカイブの作成・展開
- OSのバージョン:Mac OS X 10.0(Cheetah)以降
- 場所:/usr/bin/ditto
- http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/ditto.1.html
(例)srcfolderフォルダをZIP圧縮したarchive.zipファイルを作成
$ ditto -ck --sequesterRsrc --keepParent srcfolder archive.zip
(例)archive.zipファイルをdstfolderフォルダ内に展開する(dstfolderフォルダがカレントディレクトリになければ自動的に作成)
$ ditto -xk --sequesterRsrc archive.zip dstfolder
security --- キーチェーンと Security.framework に対するコマンドラインインターフェイス
security [-hilqv] [-p prompt] [command] [command_options] [command_args] command = help | list-keychains | default-keychain | login-keychain | create-keychain | delete-keychain | lock-keychain | unlock-keychain | set-keychain-settings | show-keychain-info | dump-keychain | create-keypair | add-internet-password | add-certificates | find-internet-password | find-certificate | create-db | import | export | install-mds | leaks
すべての command に共通のオプション -h :指定された command の使い方を表示する。
find-internet-password [-gh] [-a account_name] [-d security_domain] [-p path] [-P port] [-r protocol] [-s server_name] [-t authentication_type] [keychain...]
指定されたキーチェーン( keychain )に対し、与えられた条件に合致するインターネットパスワード項目を検索し、内容を出力する。
- keychain が省略された場合、登録されているすべてのキーチェーン(ユーティリティフォルダのキーチェーンアクセス.app で見ることができる)に対し検索が行われる。
- '-g' オプションを与えるとパスワードも出力される。出力先は標準エラー出力であることに注意。また、この場合、キーチェーンがロックされていたり、あるいは当該インターネットパスワード項目のアクセス制御設定に依存して、利用者に対しキーチェーンのパスワードの入力を促すダイアログや、確認ダイアログが表示される。
srm --- セキュアなファイル/ディレクトリ消去
場所:/usr/bin/srm
このコマンドは厳密にはMac OS X固有ではない。ソースコードは http://srm.sourceforge.net/ でメンテナンスされており、FreeBSD等各種UN*X系のシステムで動作する模様。
srm はファイルを unlink する前に上書き、移動、切り捨てを行うことによって他のユーザーが消したファイルを復活させたり、ファイルに関する情報を取得することを予防する。
rm と同様に権限のないファイルやディレクトリを消去することはできない。
srm [-dfirsmznv] [--help] [--version] FILE...
rm と同じようなオプションを備えており、-d, -f, -i, -r, -R, -v について同じように動作する。このうち、-d は rm との互換のためだけに残っており、指定しても無視される。つまり、-d を指定しなくてもディレクトリを削除できる。
その他のオプションは以下。
- -s, --simple : 対象のファイルをランダムなデータで上書きしてから消去する。
- -m, --medium : 対象のファイルを US DoD(アメリカ国防総省)規格に準拠した方式で7回上書きしてから消去する。(0xF6, 0x00, 0xFF, random, 0x00, 0xFF, random の順で上書きする)。
- -z, --zero : 上書き後にファイルのブロックサイズをゼロにする。
- -n, --nounlink : ファイルを上書きするが、移動、削除は行わない。
- --help : ヘルプメッセージを出力し、終了する。
- --version : バージョン情報を出力し、終了する。
-s オプションは -m オプションに優先する。どちらのオプションも指定しなかった場合は、(simple, medium に対し)最高が指定されたとみなし、Gutmannアルゴリズムによって35回上書きしてから消去する。
Finderにある「確実にゴミ箱を空にする」はsrmを利用している。
open-x11 --- X11でプログラムを実行する
pstopdf --- PostScript ファイルを PDF ファイルに変換する
場所:/usr/bin/pstopdf
pstopdf [infile] [-o outfile] [-lpi]
pstopdf は infile で指定した PostScript ファイルを PDF に変換し、-o で指定したファイルか、infile の拡張子を .pdf に変換したファイルとして保存する。
- -l : ログは通常標準出力に出力されるが、-l を指定すると、ログを出力ファイル名の後ろに .log をつけたファイルに保存する。
- -p : 1 ページ変換する度に標準出力に情報を表示する。
- -i : 標準入力を入力ファイルとして指定する。
例:sample.ps を sample.pdf に変換する
pstopdf sample.ps
例:標準入力から受けとった PostScript データを sample.pdf に変換して保存し、ログを sample.pdf.log に保存する。
cat sample.ps | pstopdf -i -o sample.pdf
- Ghostscript には ps2pdf という同種のツールが付いてくる。Ghostscript によってレンダリングがおこなわれる点が異なる。
ni** -- NetInfo 関連コマンド
→ NetInfo を参照。
mdfind -- Spotlight のコマンド版
- OSのバージョン : Tiger 以降
- 場所:/usr/bin/mdfind
mdfind [-live] [-onlyin directory] query
mdfind は query の内容を Spotlight エンジンを用いて検索し、結果内容を含むファイルの一覧を表示します。
- mdfindの使い方の詳細な紹介(英語)。http://www.macdevcenter.com/pub/a/mac/2006/01/04/mdfind.html
-live オプションは検索結果やマッチした件数をリアルタイムに更新するようです。
-onlyin オプションは検索対象となるディレクトリをしぼる場合に使います。
query の例。内容もしくはファイル名に文字列を含むファイルを検索。この例では複数の文字列を含むファイルを検索するために「"」で括りスペース区切り。
$ mdfind "MacOSX10.5 Leopard"
Query Expression Syntax
queryの表現式。詳細説明は、http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/Concepts/QueryFormat.html#//apple_ref/doc/uid/TP40001849
- 例:"apple"で始まるファイル名を探索(case insentitive指定で)
$ mdfind 'kMDItemDisplayName == "apple*"c' $ mdfind -0 'kMDItemDisplayName == "apple*"c' |xargs -0 basename
- 例:しかし"apple"で始まり".txt"で終わるファイル名の探索は,下記のように指定してもできないようです.
$ mdfind 'kMDItemDisplayName == "apple*.txt"'
- 例:内容もしくはファイル名に"日本"を文字列として含み、種類が"書類"もしくは"document"のファイルを探索
/usr/bin/mdfind "(kMDItemTextContent == '*日本*' || kMDItemDisplayName == '*日本*') && (kMDItemKind == '* 書類' || kMDItemKind == '* document')"
launchctl -- daemonやagentを管理する
→ コマンド/launchctl を参照して下さい。
convert -- 画像ファイル形式を変換
/System/Library/Printers/Libraries/convert
入力形式
- jpeg, giff, pict, tiff, pdf, text など
出力形式の指定
- -j "application/pdf" (デフォルト)
- -j "application/postscript" (epsのこと?)
afconvert -- 音声ファイル形式を変換
/usr/bin/afconvert
sw_vers -- Mac OS Xのバージョンを表示
$ sw_vers ProductName: Mac OS X ProductVersion: 10.5.8 BuildVersion: 9L31a $ strings `which sw_vers` $ uname -a
pkgutil -- pkg 形式のパッケージ管理を管理
Snow Leopard から新設。
- http://builder.japan.zdnet.com/sp/snow-leopard-09/story/0,3800100196,20412914,00.htm
- http://developer.apple.com/Mac/library/documentation/Darwin/Reference/ManPages/man1/pkgutil.1.html