web-dev-qa-db-ja.com

Mac OS Xの便利なコマンドラインコマンドは何ですか?

Windows および Linux スレッドごとに、 Mac OS X Server (またはクライアント)で最も役立つコマンドは何ですか?

58
username
say "some text"

有名な 人々をアパートに戻すsayは引数を取り、オーディオ出力デバイスを介してそれらを読み上げます。

28
Tim

pbpasteおよびpbcopyを使用して、ペーストボード(別名クリップボード)を操作します。

例:

# copies the directory listing
ls -l | pbcopy

# get pasteboard lines containing foo and save them in a_file
pbpaste | grep foo > a_file

デフォルトではマクロマンエンコーディングを使用するので、UTF-8を使用する場合(そうする場合)は、次のリンクを確認する必要があります。

23
kch
fs_usage

ファイルシステムのアクティビティを監視できます。アプリが作成するファイルを確認したい場合に便利です。詳細は http://rentzsch.com/macosx/fs_usageIntro を参照してください。

19
username
open .

現在の作業ディレクトリでFinderウィンドウを開きます。

17
richardhoskins

コマンドラインから、私は以下の能力を持つことが好きです:

「ユニバーサル」CD/DVDを作成して書き込みます。

 $ mkisofs -allow-multidot -allow-leading-dots -d -hide-rr-moved\
-l -joliet-long -R -T -v\
- V VOLUME_NAME -o output.iso root-cd-dir /
$ hdiutil burn -noverifyburn output.iso 

CD/DVDからISOイメージを作成します。

 $ diskutil unmountDisk /dev/disk2s0
$ dd if =/dev/disk2s0 of = cdname.iso bs = 32m 

Lddを探しているときにotoolコマンドを忘れることができる:

 $ alias ldd = 'printf "\'\'' otool -L\'\' '-\ n"にコマンドを送信&& otool -L' 

コマンドラインからディスクイメージをマウントします。

 $ hdid diskimage.dmg(または.iso)

プレビューを使用して、manページにアクセスします。

 $ man -t rsync | open -f -a /Applications/Preview.app
13
Gary Chambers

'airport' CLIユーティリティが私のお気に入りです。 http://osxdaily.com/2007/01/18/airport-the-little-known-command-line-wireless-utility/ を参照してください。関連付けられているAPの信号レベル、ノイズレベル、BSSIDなどの詳細が表示されます。

12
Jason Luther
drutil tray open

Apple光学式ドライブのイジェクトボタンはケースの外側からアクセスできないため、キーボードが接続されていない場合は(ssh経由で)非常に役立ちます。

11
James
ipconfig getpacket en0

プライマリイーサネットインターフェイス(en0)のネットワーク設定を表示します。

Windowsに慣れていて、「ipconfig」が壊れていると思う場合-それはそうではありません;-)いくつかの引数を追加する必要があるだけです

11
username

「オープン」は素晴らしいとは言えません。ドキュメントをGUIプログラムで開くことができ、GUIプログラムを-aで選択することもできます。例えば、

open -a vlc movie.avi

vLCを開き、現在のディレクトリにmovie.aviをロードするよう指示します。

open movie.avi

デフォルトのプログラムで開きます。プログラムを開きたいだけなら、それもできます:

open -a system\ preferences

システム環境設定を実行します。 URLも開くことができます。

open vnc://myserver:5900

画面共有を開き、myserverに接続します。

チェックアウト

man open

使用できるすべてのフラグを表示します。

11
w00t
softwareupdate

CLIからMacを更新します。

10
dvoita
networksetup

コマンドラインの[システム環境設定]の[ネットワーク設定]ペインで見つけたすべてを構成します。スクリプトを書いたり、リモートで物事を行ったりするmuchより簡単になります。

9
Chealion
Sudo changeip -checkhostname

正引きおよび逆引きDNS解決が正常であることを確認し、多くの場合、問題の修正に使用できるコマンドを示します。 「名前が一致しても、何も変更する必要がない」と表示されていれば、問題はありません。サーバーのネットワーク構成を変更する場合に不可欠です。サーバーをオープンディレクトリのマスターに昇格させる前にこれを使用することも重要です。

8
username
dscacheutil -flushcache

私は10.5以降で、その1つのヒープを使用してDNSキャッシュをフラッシュすることに気づきました。

8
Bruce McLeod
ping 224.0.0.1

Ping allサブネット上のデバイス

7
username
srm

安全な削除のためのコマンドラインバージョン。

7
Jauder Ho
last

システムにログインしたユーザー、システムを使用した時間、システムが再起動された日時を表示します。

次に出力のサンプルを示します。

clinton   ttys000                   Thu May 28 22:33   still logged in
clinton   console                   Thu May 28 08:05   still logged in
reboot    ~                         Thu May 28 08:05 
shutdown  ~                         Wed May 27 20:15 
clinton   console                   Wed May 27 17:33 - 20:15  (02:42)
...

wtmp begins Thu May 14 09:26 
7
 lsof

開いているファイルのリスト

USBドライブをイジェクトし、使用中と表示され、すべてのアプリケーションを終了してから再試行する場合に便利です。

$ Sudo lsof /Volumes/CLINTON
COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    55966 clinton  cwd    DIR  14,12    16384    2 /Volumes/CLINTON
lsof    56042    root  cwd    DIR  14,12    16384    2 /Volumes/CLINTON
lsof    56043    root  cwd    DIR  14,12    16384    2 /Volumes/CLINTON

この例では、ドライブにcdedしたため、bashがボリュームにアクセスしていました。

「mds」エントリが表示されている場合は、スポットライトがドライブにインデックスを作成していることを意味しています。

7

Appleによって発行されたCommand-Line Administrationガイドは非常に貴重です。

"command line Administration mac" をグーグルすると、良い結果が得られます。

Mac OS Xのコマンドライン管理 10.510.4 、および 10.

他の便利なガイドは http://www.Apple.com/server/macosx/resources/ にあります。

7
osascript -e 'tell application "AppName" to quit'

シェルからアプリケーションを終了できます。

osascript -e 'tell application "Finder" to sleep'

長いシェルスクリプトの有用な最後の行は、スクリプトが完了するとMacをスリープ状態にします。 iSleepにエイリアスされています。

pbpaste | script.sh |pbcopy

ペーストボードの内容を取り(編集->コピー)、それをscript.shにパイプします。結果はペーストボードに置かれ、編集してドキュメントに貼り付けることができます。

6
sal

http://www.commandlinefu.com

具体的にはMacリソースではありませんが、ターミナルのアイコンを使用しており、非常に便利なコマンドのリストのほとんどが機能します。

6
mcxquery

これにより、クライアントマシンに適用されているMCX(管理対象クライアント)設定の種類を確認できます。

[対応するGUIは、システムプロファイラーに移動し、[ソフトウェア]セクションで[管理対象クライアント]をクリックします。]

マシンが管理されているかどうかを判断し、期待どおりの設定が得られているかどうかを確認すると便利です。

5
sw_vers

現在インストールされているMac OS Xのバージョンとビルドを表示します。

5
username
df -h

すべてのディスクに現在あるディスク領域の数を確認する。

4
hendrasaputra
opendiff file1 file2

file1file2を実行する FileMerge (Apple開発者ツール)に付属するグラフィカルdiffを実行します。

4
las3rjock
dns-sd -B _ssh
dns-sd -B _rfb
dns-sd -B _services._dns-sd._udp

Bonjourでアドバタイズするサーバーを一覧表示します。最後の提案は、リストできるサービスのタイプをリストしています。リストはライブです。十分に見終わったら、Ctrl-Cを押してください。

同じコマンドが最近のLinuxとBonjour SDK for Windowsに含まれています。

4
James
system_profiler

コマンドラインでのみ、[このMacについて]-> [詳細]を選択した場合と同じ結果が得られます。

ランニング

system_profiler -usage

または、manページを見ると、その使用方法に関するヒントが得られます。

いくつかの例:

system_profiler -xml > MySystem.spx
# and later,
open MySystem.spx  # or just double click on it in the Finder

これにより、システムプロファイルがファイルにダンプされ、後で別のマシンで確認できます。

system_profiler SPUSBDataType

すべてのUSBデバイスについて説明します(ドライバーの追跡に役立つベンダーおよび製品IDを含む)。

system_profiler SPUSBDataType | grep "Product ID" -c

接続されているUSBデバイス(内蔵USBデバイスを含む)の数が表示されます。これは、コンピューターがデバイスを認識しているかどうか(または、Parallelがデバイスを取得したか、デバイスが停止しているかどうか)を確認するのに役立ちます。システムプロファイラGUIアプリでは、メニューから[表示]-> [更新]を選択してリストを更新できます。それはもっと簡単かもしれません。]

system_profiler SPHardwareDataType

基本的なハードウェア情報を取得します(資産の追跡に役立ちます)。

system_profiler SPHardwareDataType | grep Serial

マシンのシリアル番号が表示されます。

4
Sudo opensnoop

leopard以降では、成功したかどうかに関係なく、開いているファイルを処理するレポートが表示されます。特定のプロセスによってシステム全体で開かれているすべてのファイルを確認するか、プロセスが特定のファイルをさまざまな種類のタイムスタンプで開いているかどうかを確認し、エラーが発生したかどうかを確認するように要求できます。

詳細は次のとおりです。

opensnoopは dtrace スクリプトです。/usr/binには、プロセスが実行しているシステムコール、プロセスが作成しているプロセス、プロセスが実行しているI/Oなどを確認する他の多くのものがあります。リストを取得するにはapropos DTraceを実行し、詳細についてはmanページをご覧ください。


ネットワークアカウントを持つユーザーのOS 10.5.8でComic Life Magiq 1.1がクラッシュする理由を診断するのに苦労していたときに、opensnoopについて知りました。

私は実行しました(数回、別のアカウントで、ssh経由):

Sudo opensnoop -e -n Comic > output.txt

ネットワークユーザーが最後に開いたファイルは次のようなものでした(フルパスを使用)。

/Network/Servers/.../username/Library/Icons/WebpageIcons.db

safari 5.0がネットワークユーザーに対してクラッシュしていたことを思い出し、ファビコンをキャッシュしないように設定を管理するか、ファイルをリダイレクトすることで回避しました。 Apple明らかにSafari 5.0.1の問題を修正し、昨日Safari 5.0.2にアップグレードしたときに、Comic Life Magiqユーザーのクラッシュを修正しました。

4
ifconfig en0 ether 00:00:00:00:00:00

次の再起動までMACアドレスを変更(spoofs)

4
username

本当にMacのみ:「開いている」を見ました。上記、ただしopenは、渡されたドキュメントまたはアプリを開きます。

私が最もよく使用する一般的なUnix:Sudoは、システム構成ファイルの変更など、viで実際に編集するのに非常に便利です。

何かがハングしたとき(または、別のユーザーがバックグラウンドでデスクトップにまだログインしていて、ログアウトしたいときは、killを誇張することはできません。厄介ですが、myデスクトップです)

ssh/scp-OSXではターミナルを開いてサーバーに接続できるのが気に入っています。それだけでも、Windowsを削除してよかったです。

ifconfig/ping/whois/nmapなど

3
Alex

scutil --dns

DNS解決の順序を表示します。ネットワーク設定を作成またはデバッグするときに役立ちます。

3
romant
lsof -i 

開いているインターネットポートをリストします。出力例:

COMMAND     PID    USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
SystemUIS   223 clinton   11u  IPv4 0x3e21b08      0t0  UDP *:*
ARDAgent    262 clinton   16u  IPv4 0x3e21be0      0t0  UDP *:net-assistant
ARDAgent    262 clinton   18u  IPv4 0x5f01a68      0t0  TCP *:net-assistant (LISTEN)
AppleVNCS   263 clinton    4u  IPv6 0x3e274bc      0t0  TCP *:vnc-server (LISTEN)
Opera     48365 clinton   20u  IPv4 0x5f01e64      0t0  TCP WTD-Staff-BlackmoreC:57094->stackoverflow.com:http (ESTABLISHED)
Opera     48365 clinton   23u  IPv4 0x5b12a68      0t0  TCP WTD-Staff-BlackmoreC:57095->stackoverflow.com:http (ESTABLISHED)

すべてのユーザーがポートを開く場合はSudoを使用します。フラグ-nおよび-Pは名前解決とポート名を無効にし、代わりに番号を提供します。

3
Sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent

リモートデスクトップサービスを開始します(SSHアクセスしかないが、クライアントMacのGUIを使用して何かを実行したい場合に便利です)。その他のオプションについては、次を参照してください: http://support.Apple.com/kb/HT237

3
username
drutil eject

cDを取り出します。

3

ファイルの行末の種類を知りたい場合は、

file /path/to/your-file

例:

$ file imports/sample-students.txt 
imports/sample-students.txt: ASCII text, with CR line terminators
3

間違いなく、この聴衆には少し歩行者ですが、私は次のものを使用しています。

screencapture -i -c

画面から必要なものをすべて取得することは非常に便利であり、Grabでは取得できないことを実行できます。

2
Dave

ルートユーザーを有効にせずにルートシェル(Apple自体がドキュメントで「マニアックな」ことを実行するために、つまりシステム全体の言語を設定するために必要になる場合があるため)

Sudo bash

これにより、すべてのコマンドにSudoコマンドを付加することなく、ルートとして必要なすべてを実行できるルートシェルが提供されます。

これは危険かもしれませんが、私たちはシステム管理者です。私たちは何をしているのか知っていますよね。 :)

2
drAlberT

通常のUnixの容疑者とは別に、私は次のことが便利だと思います:-

  • dsconfigad-Active Directory設定を編集してコンピューターをバインドします

  • デフォルト-編集設定

  • plutil- plist をテキストとの間で変換します

  • softwareupdate-コマンドラインからソフトウェアアップデートを実行する

  • インストーラー-コマンドラインからパッケージをインストールします

  • networksetup-コンピューター名などのさまざまな設定と取得

あなたがそれらと通常のUnixのものを習得すれば、コマンドラインからMac管理に必要なすべてを手に入れることができます。

2
Honestpuck

Time MachineをNASにバックアップできるようにする方法。

defaults write com.Apple.systempreferences TMShowUnsupportedNetworkVolumes 1

MACアドレスを見つける

ifconfig en0 | grep ether | sed s/://g | sed s/ether//

NASにコピーするスパースバンドルを作成するコマンド

Sudo hdiutil create -nospotlight -library SPUD -size 160g -fs "Case-sensitive Journaled HFS+" -type SPARSEBUNDLE -volname "<VOLNAME>" ./<HOSTNAME>_<MAC_ADDRESS>.sparsebundle

ReadyNASにバックアップする魅力のように機能します。

2
Jauder Ho

これはフリーウェアのサードパーティツールですが、

edit

本当に便利です。これは、最初に TextWrangler を実行するときにオプションでインストールできるコマンドラインツールです。 [他のテキストエディタ(BBEdit、TextMate)はおそらく類似のものを提供します。]

edit path/to/somefile

TextWranglerでファイルを開き、通常は編集する権限がない場合に認証できるようにします。 (sshセッションから実行することもでき、ログインしたグラフィカルユーザーのために開きます)。

さらに良いことに、パイプで接続できます。

lsof -i | edit

たとえば、開いているネットワーク接続が表示され、それらをTextWranglerで開くと、簡単に検索(およびスクロール)できます。

2

この質問は NIX管理者がなくては成り立たないツールについての質問 とかなり重複しています。 Mac OS Xのコマンドラインツールの多くは、dfduwhichなどのUNIXルートを持っています。ただし、osascriptopenpbcopypbpastesayなど、明らかなUNIXの同等機能がない注目すべき例外があります。

2
las3rjock

killall -9 appname forceはアプリを終了します。アクティビティモニターにアクセスできない場合に非常に役立ちます。

2
al.

ipconfigが役立つ場合があります。

インターフェイスの現在のIPアドレスを取得しています:

$ ipconfig getifaddr en1
10.110.2.25

最後に受信したDHCP情報を取得します。

$ ipconfig getpacket en1
op = BOOTREPLY
htype = 1
flags = 0
hlen = 6
Hops = 0
xid = 143857879
secs = 0
ciaddr = 0.0.0.0
yiaddr = 10.110.2.25
siaddr = 0.0.0.0
giaddr = 0.0.0.0
chaddr = 00:aa:bb:cc:dd:ee
sname = 
file = 
options:
Options count is 7
dhcp_message_type (uint8): ACK 0x5
server_identifier (ip): 1.1.1.1
lease_time (uint32): 0xe10
router (ip_mult): {10.110.0.1}
domain_name_server (ip_mult): {1.1.1.1, 1.1.1.2}
subnet_mask (ip): 255.255.252.0
end (none): 
2
dexedrine
ifconfig | grep cast

iPアドレスを取得するのに最適です。

ifconfig en1 | grep eth

mACアドレスの取得に適しています。 en1を使用すると、(ほとんどの場合)AirportのMACアドレスが取得されます。これは、既知のデバイスのみがワイヤレスネットワークに許可されている場合に便利です。逆に、en0(組み込みのイーサネットポート)を使用する場合は、次のようにオープンディレクトリでマシンを検索できます。

ldapsearch -x -h odm -b "cn=computers,dc=odm,dc=pretendoco,dc=com" "macAddress=00:0d:93:b5:82:88"

(サーバーが「odm」であり、レルムがODM.PRETENDCO.COMであると想定しています)。

2

Mac OSで欠落しているseqコマンドの代わりに使用できる気の利いたbash構文があることがわかりました。

echo { 18..21 }
2
geewiz
sqlite3 foo.db

インタラクティブ SQLite セッションを開始します。 foo.dbが存在しない場合は作成されます。

1
richardhoskins

du -d 1 -h

現在のディレクトリのディスク使用統計を人間が読める形式で表示します。

男[コマンド]

最もよく使用されるコマンドの1つ。他のすべての使い方を説明します。

1
Peter Hoven

私が見たことのないOS X固有の事項について言及しました。

mdfindはコマンドラインのSpotlight検索インデックスを使用するため、[検索]プルダウンを使用せずに全文検索を実行できます。

networksetup -は、それがサポートするクレイジーな構文をすべて表示します。これは、ネットワーク設定ペインに相当するコマンドラインです。

Sudo launchctl list-実行中のlaunchctlジョブを表示します。 launchctl stop X.XX.Xは、現在実行中の永続プロセスのインスタンスを単に「停止」(強制終了)します。実際に実行を停止するには、launchctl unload /System/Library/LaunchDaemons/X.XX.X.plist

1
eric sorenson
Sudo slapconfig -destroyldapserver

LDAPレプリカを強制的にスタンドアロンに降格します。 Open Directoryマスターの設定が間違っていると、Server Adminを使用してOpen Directoryレプリカを降格しようとすると失敗することがあります(例:レプリカサーバーが降格を拒否する場合があります)。 slapconfigを使用して、これらの状況で強制的に降格させることができます。

1
username
 which program

プログラムのパスを検索し、フルパスを指定せずにプログラムを実行した場合に呼び出される実行可能ファイルを示します。

通常、パスを入力するための省略形として最も役立ちます。

$ which python
/usr/bin/python
$ ls -l `which python`
lrwxr-xr-x  1 root  wheel  72 30 Jan 22:56 /usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python
1

Bonjourのおかげで、Finderで表示できる別のMacのIPアドレスがLAN上にあることを知りたいと思ったことはありませんか?

dscacheutil -q Host -a name OtherMac.local

dscacheutilは驚くほど便利で用途が広いです。 DNSキャッシュをフラッシュするだけではなく(ここで他の場所で説明されているように)、ユーザールックアップとキャッシュ統計およびダンプを実行するだけでなく、もっと多くのことができます。

1
Joe Carroll

クライアントはどのDHCPライセンスを保持していますか?

Sudo ls -lt /private/var/db/dhcpclient/leases

ファイアウォールの許可/拒否を一覧表示します。

Sudo ipfw list

エントロピーの高いパスワードを生成します(有望な16文字の文字列をダブルクリックしてコピー/貼り付けします):

head -c90 /dev/random | uuencode -m pwd | hexdump -C
1
Charles Stewart

これらは基本的なものですが、健忘症がある場合に便利です。

私は誰?

id

私はどこに立っていますか?

pwd

私は何の建物ですか?

hostname

そのアドレスは何ですか?

ifconfig |grep inet
1
username

多分、最も「便利な」コマンドではないかもしれませんが、sayはとても楽しいです。

例えば ​​say I love serverfaultは、「言った」後に入力した内容を読み返させます。

0
HostBits
locate "foo"

ファイル名に「foo」が含まれるシステム上のファイルを表示します。 Spotlightを使用するのとほぼ同じ頻度でこれを使用する必要があります。

0
username
 Sudo reboot

コンピュータを再起動します。

0