ターミナルは、OS X の基盤となるコマンドライン インターフェイスを提供する非常に強力なツールです。
大量のファイルの移動から、知らなかった環境設定の変更まで、ターミナルにはさまざまな機能があります。
Before We Begin
これから紹介するすべてのターミナル コマンドは、使用してもまったく問題なく、環境設定の変更に関しては完全に元に戻すことができます。
いつものように、何かが起こったときのために、最近のバックアップがあることを確認してください。
ヒント: もしあなたがターミナルに慣れていないのであれば、このトピックに関する入門シリーズである「Taming the Terminal」を読むことを強くお勧めします。
また、Envato Marketでは、Mac OS X用のアプリケーションを簡単に作成できるSentenza Desktop for MacなどのMac用アプリケーションを提供しています。
ターミナルの起動
「ターミナル」は、「アプリケーション」>の「ユーティリティ」フォルダの中にあります。
Terminalは、アプリケーション>のユーティリティーフォルダーにあります。
ターミナルでは、次のように表示されます:
MacBook:~ jordan$
これはプロンプトで、コマンドを入力します。 コマンドの入力方法を正しく理解するために、ドル記号 ($) を使用してプロンプトを示しますので、ドル記号に続くコマンドを入力してください。
では、いくつかの基本的なコマンドでウォーミングアップをしてみましょう。
ウィンドウをクリアする
$ clear
簡単に言うと、現在のウィンドウをクリアします。 (OS X のターミナル内では、上にスクロールして何があったか確認することができます。 このコマンドは、単に現在のビューをクリアします)。
フォルダへの移動
次のコマンドを入力することで、Utilities などのフォルダに移動することができます:
$ cd /Applications/Utilities
ホーム フォルダにすばやく戻りたい場合は、単に入力するだけです。
$ cd
スペースを含むフォルダーでは、2 つの方法があります:
$ cd /Volumes/Macintosh\ HD/$ cd "/Volumes/Macintosh HD/"
最初の方法では、バック スラッシュを使用してスペースを「エスケープ」します。 コマンドラインでは、スペースはコマンドの一部として扱われますので、この文字は、直後のスペースを無視するように Terminal に伝えます。 また、フォルダのパスを引用符で囲んでおけば、スペースがあっても無視されます。
続行する前に、ホームフォルダに戻ってください。
ディレクトリの内容を一覧表示する
フォルダの内容を表示するには、次のように入力します。
$ ls
リスト形式で表示するには、次のように入力します。
$ ls -l
すべてのファイルを表示したい場合は、隠しファイルも含めて次のようにします。 すべてのファイルを見たい場合。
$ ls -a
上記のコマンドは、ピリオドで始まる隠しファイルも含めてすべてのファイルを表示します。
$ ls -la
そう、それらを組み合わせるだけの簡単なことなのです!
では、次のステップに進んでみましょう。
先に進む前に、ホームフォルダーに戻ってください。
Ditto
OS X の隠れた宝石は、Apple の ditto コマンドです。 このコマンドは、従来の Finder のコピー ウィンドウよりも進行状況に関する有益な情報を含むターミナル ウィンドウ内で実行できるので、大量のデータをコピーする際に非常に便利です。
$ ditto -V /old/work/ /new/work/
上記のコマンドは、「work」フォルダーを新しい場所にコピーします。 実際には、このコマンドは、「work」フォルダの内容を新しい「work」フォルダにコピーします。
「-V」(verboseの意味)を追加すると、コピーされているファイルごとにターミナルウィンドウに行が表示されます。 どのファイルがコピーされているかをいつでも正確に確認できるので、非常に便利です。
Ditto は私が頻繁に使用するコマンドで、信頼性が非常に高いと思われるため、これを使用して何GBものデータをハードドライブ間でコピーしたことがよくあります。
スクリーンショットのドロップ シャドウを無効にする
OS X でウィンドウのスクリーンショットを撮る場合、デフォルトでは常にドロップ シャドウが表示され、無駄なピクセルが追加されます。
$ defaults write com.apple.screencapture disable-shadow -bool TRUE
Mac を再起動して変更を確認するか、別のコマンドを使用して即座に変更を確認することができます
このコマンドは、OS X のグラフィカル フロント エンドを一瞬停止します。 心配しないでください。このコマンドは常に実行する必要があるため、停止するとすぐに再起動しますが、私たちの新しいオプションで更新されます。 スクリーンショットを撮ると、シャドウが含まれなくなっていることに気づくでしょう。
変更を元に戻すには、次のコマンドを入力します:
$ defaults write com.apple.screencapture disable-shadow -bool FALSE
$ killall SystemUIServer
変更をすぐに確認するには、次のコマンドを入力します。
スクリーンショット ファイル フォーマットの変更
PNG はおそらくスクリーンショットに使用するのに最も適したフォーマットですが、少しスペースを取ってしまいます。 PDF 形式を使用したい場合は、以下のようにします。
$ defaults write com.apple.screencapture type PDF
$ killall SystemUIServer
変更を元に戻すには、以下のように入力します。
$ defaults write com.apple.screencapture type png
$ killall SystemUIServer
スクリーンショットの場所を変更する
スクリーンショットを撮ることは素晴らしいことですが、デスクトップがすぐに散らかってしまうことがあります。
$ defaults write com.apple.screencapture location /drag/location/here
$ killall SystemUIServer
厄介な長いパス名を扱うのではなく、コマンドの最初の部分を入力し、「場所」という言葉の後に、スクリーンショットを保存したいフォルダーをドラッグするだけです。
$ defaults write com.apple.screencapture location ~/Desktop
$ killall SystemUIServer
ヒント: スクイグルの ~ は、実際にはホーム フォルダを表します。 上記の例では、実際には/Users/jordan/Desktopを意味しています。 便利な時間節約術ですね。
古い Mac で AirDrop を有効にする
AirDrop は、厄介なファイル共有アプリケーションを使わずに、Mac 間でファイルをすばやく簡単に送信できる素晴らしい機能です。 困ったことに、この機能はWiFi環境と最近のMacでしか利用できません。
あなたの Mac が現在 AirDrop をサポートしていない場合、次のコマンドを入力することで、AirDrop を使用することができ、イーサネット上でも使用することができます。
$ killall Finder
変更を元に戻すには、次のように入力します:
$ defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool FALSE
AirDropの有効化についての詳細は、以前のチュートリアル「イーサネット接続されたMacとサポートされていないMacでAirDropを有効にする方法」で説明していますので、そちらを参照してください。
隠しファイルや隠しフォルダーを表示する
OS X で隠しファイルや隠しフォルダーを表示するには:
$ defaults write com.apple.finder AppleShowAllFiles -bool TRUE
$ killall Finder
Finder が再起動すると、今まで見たことのない多くのファイルが表示されますが、通常はピリオド (OS X では隠しファイルを示す) で始まります。
変更を元に戻すには:
$ defaults write com.apple.finder AppleShowAllFiles -bool FALSE
$ killall Finder
以前のチュートリアル「Revealing Hidden Files in OS X」でも、隠しファイルの可視性について説明しました。
Mac のストレス テスト
Mac でストレス テストを実行したい場合、CPU を即座に 100% 使用する簡単なコマンドを入力することができます。 このコマンドをキャンセルするには、Ctrl-Cを押します。
ファイル システム 使用状況の表示
ディスクの読み書きに関して、Mac が何をしているかを確認したい場合があります。
$ sudo fs_usage
sudo と入力することで、スーパー ユーザーとして実行することを要求しています。 これを実行すると、プロセスがディスクにアクセスする際の情報が次々と表示されます。
表示される可能性のあるプロセスとしては、Time Machine (backupd) や Spotlight (mds) などがあります。
キャンセルするには、Ctrl-Cを押します。
任意のファイルの内容を表示する
ファイルがあっても、それがどのような形式なのかわからないことがあります。 テキスト形式であれば、TextEdit で開くことができますが、必ずしもうまくいくとは限りません。
$ cat /path/to/file
ファイルが何であれ、これで開くことができます。 MP3やビデオのようなファイルでは、おそらく不可解なものになるでしょう。 しかし、破損したドキュメントを復元しようとしている場合、これは役に立つかもしれません。
Spotlight の再構築
Spotlight は時折、思い通りに動作しないことがあります。 時には、Spotlight に新しいインデックスを作成するように指示して、できるだけ速く効率的にファイルを見つけられるようにする必要があります。
$ sudo mdutil -E /Volumes/DriveName
上記のコマンドは、Spotlight のインデックスを削除し、新しいインデックスを作成するように強制します。 コマンドの最初の部分を入力し、場所については、デスクトップからターミナル ウィンドウにハード ドライブをドラッグするだけで完了する、より簡単な方法です。
重複した “Open With…” を削除する。 エントリ
OS X の一般的なバグとして、「ファイルを開く」メニューに重複したアプリケーションが表示されることがあります。
$ /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
上記のコマンドは、OS X Leopard 以降で動作します。 他のコマンドとは異なり、Macを再起動することをお勧めします。
クイック ルックでテキストを選択できるようにする
クイックルックは素晴らしいものですが、ドキュメントを開くことなくクイックルック内でテキストを選択できたら、さらに素晴らしいと思いませんか?
$ defaults write com.apple.finder QLEnableTextSelection -bool TRUE
$ killall Finder
変更を元に戻すには、以下のコマンドを実行します。
$ defaults write com.apple.finder QLEnableTextSelection -bool FALSE
$ killall Finder
任意のアプリケーションでファイルを開く
ターミナルから直接ドキュメントを開くことは非常に簡単ですが、ファイルの種類に応じてデフォルトではない別のアプリケーションで開く場合はどうでしょうか。
$ open -a /Applications/AppName.app /path/to/file.txt
上記を実行すると、AppName というアプリでテキスト ファイルを開きます。 アプリとファイルを必要なものに変更するだけです。
Mac のアップタイムをチェックする
Mac を再起動するのは、数日、数週間、あるいは数か月後になることもありますし、最後に再起動したのがいつだったか思い出せないほど長いこともあります。
$ uptime
これは、現在の時刻と Mac が実行されている時間を表示します。
OS X ソフトウェア アップデートのインストール
Mountain Lion では、ソフトウェア アップデートが App Store に移行しましたが、コマンド ラインを使用して、ソフトウェア アップデートを起動することなく、システム アップデートをインストールすることができます。 お使いのMacで利用可能なソフトウェアアップデートを確認するには:
$ sudo softwareupdate -l
数分後、利用可能なアップデートのリストが表示されます。
利用可能なすべてのアップデートをインストールしたい場合は、次のように入力してください:
$ sudo softwareupdate -ia
ログイン ウィンドウにカスタム メッセージを表示する
複数のユーザーが使用する Mac を使用する際には、便利な情報を提供するためにメッセージを表示するとよいでしょう。 他の人もこのキーボードを使わなければなりませんよ。
$ sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "Hey, Sticky Hands!"
次回、Mac をログアウトまたは再起動したときに、メッセージが表示されます。 メッセージを完全に削除するには、
$ sudo defaults delete /Library/Preferences/com.apple.loginwindow LoginwindowText
任意のフォルダーにシンプルな HTTP サーバーを起動する
作業中の HTML をすばやくテストする必要がある場合は、Mac の任意のフォルダー内にシンプルな Web サーバーを起動します。
$ python -m SimpleHTTPServer 8000
末尾の数字は使用するポートで、ブラウザを開いて http://localhost:8000 にアクセスしてください。
同じコマンドをもう一度実行する
これらのコマンドのいくつかは、root スーパー ユーザーとして実行するために、最初に sudo を入力する必要があることがお分かりになるでしょう。 時には、長いコマンドを入力した後に、sudo を最初に入力するのを忘れたことに気づくこともあります。 ありがたいことに、コマンド全体をもう一度書き直す(あるいはコピー&ペーストする)必要はありません。
$ !!
同じコマンドを sudo を前面に出して再度入力する必要がある場合は、次のように入力します。
$ sudo !!
ブラウザを使わずにファイルをダウンロードする
ブラウザを使わずにファイルをダウンロードしたい場合は、次のコマンドを使用できます:
$ curl -O http://appldnld.apple.com/iTunes11/091-6058.20130605.Cw321/iTunes11.0.4.dmg
これは、入力した URL を現在いるフォルダにダウンロードします。 ブラウザによっては、ダウンロード時に自動的にファイルを開こうとしたり、必要のない厄介なファイル拡張子を追加したりします (特に、.txt という拡張子以外の何かを持つテキスト ファイルを扱う場合)。
Shutdown Your Mac, With or Without a Delay
Mac をすぐにシャットダウンするには:
$ sudo shutdown -h now
Mac をすぐに再起動するには:
$ sudo shutdown -r now
必要に応じて、時間の遅延 (分単位) を追加することもできます。
$ sudo shutdown -r +60
自分の Mac ではあまり役に立たないかもしれませんが、コマンド ラインを使用してリモートで Mac にログインする時間が長い場合、これらはリモート サーバーを再起動する際に非常に役立ちます。
Mountain Lion でメールの返信アニメーションを無効にする
メールには見栄えのするアニメーションがあり、任意のメッセージに返信を押すと、作成ウィンドウがアニメーションで表示されます。 このアニメーションは誰にでも合うわけではなく、時にはウィンドウが瞬時に表示されることもあります。 アニメーションをオフにするには:
$ defaults delete com.apple.mail DisableReplyAnimations -bool TRUE
変更を有効にするには、メールを終了して再起動してください。 変更を元に戻すには
$ defaults delete com.apple.mail DisableReplyAnimations -bool FALSE
Prevent Your Mac From Sleeping
私たちは誰でも、時間のかかる作業をしているときに Mac を放置し、戻ってきたら Mac がスリープしていたという経験があります。
$ caffeinate
このコマンドを単独で入力すると、Ctrl-C を押して停止するまで Mac が起きています。
$ caffeinate -u -t 600
数字は秒数を表しているので、上のコマンドは次の 10 分間で Mac がスリープ状態にならないようにするものです。
任意のサイズのファイルを作成する
テストのために特定のサイズのファイルが必要になる場合があります。 速度のアイデアを得るために、1GB のファイルをネットワーク経由でコピーするのは便利だとよく思います。 必要なサイズのファイルを見つけるのは難しいですが、コマンドラインを使えば、必要なサイズの空のファイルを作成することができます。
$ mkfile 1g test.abc
ファイルのサイズは、バイト(b)、キロバイト(k)、メガバイト(m)、ギガバイト(g)で指定できます。 上の例では、test.abcという1GBのテストファイルを作成していますが、名前は何でもよく、ファイルの拡張子も必要ありません。
ファイルの出力を継続的に監視する
これは新進のシステム管理者のためのものです。 テキスト ファイルを常に監視し、変更が加えられるとそれを表示したい場合、選択したファイルを常に監視し、新しい行が追加されるとそれを表示する適切なコマンドがあります。
$ tail -f /var/log/system.log
ターミナル ウィンドウは、指定したファイル (この場合は system.log) を常に監視し、新しい行が追加されるたびに、それを画面に表示します。
キャンセルするには、Ctrl-C.を押します。
ネットワークの IP アドレスを取得する
確かに、システム環境設定を開き、ネットワークを選択して IP アドレス情報を表示することもできますが、コマンド ラインで行う方がはるかにクールです!
$ ipconfig getifaddr en0
en0 という用語は、使用するネットワーク インターフェースを表しています。 いくつかのプログラミング言語と同様に、最初のネットワークインターフェースは0から始まり、カウントアップしていきます。したがって、2つのインターフェース(イーサネットとWiFiなど)がある場合、それぞれen0とen1となります。
デフォルトでは、Macにイーサネットが内蔵されていない場合を除き、Macは常に有線ネットワーク接続をen0と指定します。
外部 IP アドレスの取得
最も一般的な方法は、What Is My IP などのサイトにアクセスしたり、Google に「What is My IP Address」と入力したりして、パブリック IP アドレス (ISP から提供されているもの) を調べることです。
実際には、ターミナルを使用して、IP Echo と呼ばれる上記と同様のサービスを使用して、パブリック IP アドレスを調べることができます。 前述のサイトにアクセスするほど素早く入力できないかもしれませんが、ターミナルの出力で多くのことを行うことができ、特にある種のスクリプトに含めたい場合に便利です。
ネットワーク接続のテスト
「Ping」という言葉を聞いたことがあると思います。 ping は、非常に小さな情報をネットワーク経由でリモート コンピューターに送信し、応答を受信するまでの時間を計ります。 IPアドレスが動作しているかどうか、ウェブサイトがダウンしているかどうかを確認するのに便利です。
$ ping -c 10 www.apple.com
上記のコマンドを実行すると、10パケットの情報が送信され、応答時間に関する詳細な情報が得られます。 www.apple.com を他のドメイン名やIPアドレスに置き換えることができます。
Google Chrome の 2 本指スワイプ ナビゲーションを無効にする
マルチタッチ トラックパッドが内蔵されている Mac や、Magic Trackpad を使用している Mac では、Google Chrome 独自の 2 本指スワイプによる進む/戻る操作が可能です。
$ defaults write com.google.Chrome.plist AppleEnableSwipeNavigateWithScrolls -bool FALSE
変更を確認するために Google Chrome を終了して再起動すると、2 本指スワイプができなくなっていることに気付きます。
$ defaults write com.google.Chrome.plist AppleEnableSwipeNavigateWithScrolls -bool TRUE
Prevent Apps From Save to iCloud by Default
iCloud は素晴らしいサービスですが、Dropbox を使いたい方や、Mac にファイルを保存したい方は、多くの iCloud 互換アプリがデフォルトの保存先として iCloud を提供していることに不満を感じていることでしょう。
$ defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool FALSE
iCloud を使用しているすべてのアプリケーションを終了して再起動すると、新しいドキュメントの保存ダイアログのデフォルトは iCloud ではなく、お使いの Mac になります。
変更を元に戻すには
$ defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool TRUE
Dock にある非表示のアプリのアイコンを半透明にする
使用していないアプリを非表示にすることは、画面のスペースを空ける素晴らしい方法ですが、どのアプリが非表示で、どのアプリが非表示でないかを区別する方法は実際にはありません。
$ defaults write com.apple.Dock showhidden -bool TRUE
$ killall Dock
変更を元に戻すには、Dock を変更します。
$ defaults write com.apple.Dock showhidden -bool FALSE
$ killall Dock
Autocomplete Paths
次のような長いパス名を入力する場合、
/Volumes/Macintosh\ HD/Users/admin/Library/Application\ Support/
すべてを入力するのは非常に面倒なことです。 そこで、Tabキーを使ってオートコンプリートを利用することができます。 これを使うには、パスを入力する必要のあるコマンドを入力し始め、1文字目または2文字目を入力したら、Tabキーを押します。 最初の数文字でオートコンプリートできるフォルダが1つしかない場合は、そのようになります。 そうでない場合は、Tab キーを 2 回押すと、可能な限りジャンプして、アクセスしたい可能性のあるすべてのファイルとフォルダーを表示します。
これを試すには、次のように入力しますが、Enter キーを押す代わりに Tab キーを押します:
$ cd /Us
その後、次のように自動補完されることがわかります:
$ cd /User
おそらく警告音も聞こえることでしょう。 それは、アクセスしたいと思われる 2 つのフォルダーがあるからです。 それは「/Users」と「/User Information」です。 そして、最後の文字をパスに追加して、Enterキーを押します。
これは、iOS の単語のオートコンプリートと非常によく似た動作です。
Mac を喋らせる
Mac OS X には素晴らしい音声機能が組み込まれており、何でも喋らせることができます。
$ say "This Mac runs OS X, not OS ex"
さらに、好きなテキスト ファイルを読み込ませることもできます。
$say -f /path/to/file.txt
Mac はテキスト ファイルにあったことを何でも話すことができます。
ディスク イメージを外付けドライブに復元する
ディスク ユーティリティの動作を真似て、ディスク イメージ ファイルを Mac に接続されたボリュームに復元することができます:
$ sudo asr -restore -noverify -source /path/to/diskimage/dmg -target /Volumes/VolumeToRestoreTo
検証はスキップされ (検証したい場合はその部分を削除することができますが、時間がかかります)、OS X のコピーなどのイメージをボリュームまたはパーティションに直接復元することができます。
ダッシュボードをオフにする
ダッシュボードは、かつて電卓や付箋など、すぐにアクセスできるアプリの未来の姿でした。 数年間はかなり人気がありましたが、すぐに人気がなくなりました。 今でも残っていて、たいていは誤って開いてしまいます。
私は Mission Control を頻繁に使用しており、左端に配置していますが、正直なところ、完全になくしてしまいたいと思っています。 ありがたいことに、Dashboard は永久に沈黙させることができます。
$ defaults write com.apple.dashboard mcx-disabled -boolean TRUE
$ killall Dock
Dashboard がもはや実行されておらず、中にあったかもしれないウィジェットも一緒に実行されていることに気づくでしょう。
$ defaults write com.apple.dashboard mcx-disabled -boolean FALSE
$ killall Dock
すべてのアクティブなプロセスを表示
アクティビティ モニターというアプリは、Mac が現在何をしているのかを詳細に表示します。
$ top
起動すると、現在のすべてのプロセスを簡単に見ることができ、最も CPU を使用しているプロセスがリストの一番上に来るように、プロセッサの使用率別に表示されます。
さらに、ウィンドウの上部には、実行中のプロセスの数、現在使用中の RAM の量、生成したネットワーク トラフィックの量など、さまざまな情報が表示されます。
入力したすべてのコマンドのリストを表示する
最後に、コマンドを入力して、コマンド ラインで入力したすべてのコマンドを表示することができます
$ history
ターミナル内で実行したすべての前のコマンドがここに表示されるので、過去に戻って、すでに実行したことを確認することができます。
おわりに
ターミナルは、Mac を思い通りに設定したり、グラフィカル インターフェイスでは変更できない機能にアクセスしたりするのに役立ちます。
コマンド ラインは非常に強力なツールですが、ベンおじさんがピーター パーカーに言ったように、「大きな力には大きな責任が伴う」のです。 賢く使いましょう!