Heavy Watal

Mac固有コマンド

簡単・便利

open

Finder でダブルクリックするのと同じように、 Terminal から一発でファイルを開くことができる。

# 関連付けられたデフォルトのアプリケーションで開く
open hudson1992g.pdf

# アプリケーションを指定して開く
open -a Skim hudson1992g.pdf

# カレントディレクトリをFinderで開く
open .

pbcopy, pbpaste

ターミナルからクリップボード(pasteboard)を操作する。

pwd | pbcopy
pbpaste | wc

say 音声読み上げ

say hello world
pbpaste | say

声は環境設定の Accessibility > Speech で変更可能。

カーソル行あるいは選択中のテキストを読み上げるショートカットも設定できる。 optionesc

killall

Finder や Dock など、GUIから終了させにくいアプリケーションを再起動する:

killall Finder
killall Dock
killall Kotoeri

動作が不安定になったとき、設定変更を反映させたいとき、メモリを開放したいときなどに。

設定関連

defaults

~/Library/Preferences/ 以下にある各種設定ファイル.plistを編集する。 true に設定した項目を元に戻すには、 項目自体を delete するか、false に設定する。

defaults [write/delete] DOMAIN KEY -TYPE VALUE

# Finderのタイトルバーにフルパスを表示
defaults write com.apple.finder _FXShowPosixPathInTitle -boolean true

# Launchpadの並び順をリセット
defaults write com.apple.dock ResetLaunchPad -bool true; killall Dock

# 使わないXcodeのための重いindexingを切っておく
defaults write com.apple.dt.Xcode IDEIndexDisable 1

# Quicklook上でコピペできるようにする
defaults write com.apple.finder QLEnableTextSelection -bool true

# 特定アプリをダークモードから除外する
# osascript -e 'id of app "Google Chrome"'
defaults write com.google.Chrome NSRequiresAquaSystemAppearance -bool true

# スクリーンショットの保存先を変更
defaults write com.apple.screencapture location "~/Pictures/Screenshot"
# 影なしで撮る
defaults write com.apple.screencapture disable-shadow -bool true
# 撮影後のサムネイル表示(=遅延)を無効にする
defaults write com.apple.screencapture show-thumbnail -bool false

OnyXTinkerTool などのGUIアプリを使うほうが簡単で安心かも

launchctl

サービスの起動、終了

MacBook Pro の Touch Bar は完全なる失敗作であり欠陥品である。 目視を要求してtouch typingを阻害するばかりでなく、 意図せぬ接触による誤動作を誘発する。 例えば、再生ボタンをうっかり触るとMusic.appが起動してしまう。 次のコマンドでそれを防げる:

launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist

ただし副作用としてそれ以外の用途でも再生ボタンを使えなくなる。 Music.appの起動だけを防ぐオプションは存在しないのかな?

lsregister

Open with で表示されるアプリケーションが重複しまくったときなど、 ファイルとアプリケーションの関連付けに関する古い情報を消して再構築。 まっさらに戻るわけではない。:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

設定ファイルは ~/Library/Preferences/com.apple.LaunchServices.plist

mds, mdworker

Spotlightの設定やインデックス作成に関わる。 外付けのボリュームを除外したい場合、 GUIから環境設定してもejectするたびに戻ってしまうので、 下記のように mdutil を使う必要がある:

# インデックス情報を表示
sudo mdutil -s /Volumes/Macintosh\ HD

# インデックスサービスを切る
sudo mdutil -i off /Volumes/Macintosh\ HD

# インデックスを作る・更新する
sudo mdutil -p /Volumes/Macintosh\ HD

# インデックスを一旦削除して作り直し
sudo mdutil -E /Volumes/Macintosh\ HD

インストールなど

.dmg のマウント、.pkg からのインストール、 システムのソフトウェア・アップデートなどを ssh 越しにやらねばならぬときもある:

hdiutil mount SomeDiskImage.dmg

sudo installer -pkg SomePackage.pkg -target /

softwareupdate -l
softwareupdate -i -a