コマンド

MacOSXが起動しなくなった時、シングルユーザーモードで起動させる。
→→→起動音がしたらすぐに Command + S を押す。
その後→→→起動ディスクの修復は、以下のコマンドを入力する

# fsck -y
( # fsck )

コマンドを実行。エラーが無くなるまで、繰り返す。
※ Mac を再起動するには、

# reboot
(
# Shutdown -h now)

コマンドを実行します。

ルートパーティションを書き込み可能にマウントし直すには

# mount -uw /



起動時にステータスを表示したい場合は?
起動音がしたらすぐに Command + V を押す。

コンソールモードにするには?
Aqua のログイン画面で、アカウント >console でログインする。
パスワードは入力しない。コンソールモードになると、キーボードが JIS 配列では無くなるので注意が必要。何処で変えるのかわかりません。ログインして、ログアウトすれば Aqua が起動されるが、ログインせずにそのまま Aqua に戻りたい時は Ctrl+D をタイプする。



コマンドラインから NetInfo データーベースの情報を見るには?
niutil コマンドを使用する。

データーベースのリストを見る (# はプロンプト)

# niutil -list . /
1 users
7 groups
27 machines
...

フィールドの内容を見る

# niutil -read . /users/dayan
home: /Users/dayan
uid: 502
_shadow_passwd:
name: dayan
gid: 20
...

また、nidump(フィールド内の情報を見る)、
niload(NetInfo データーベースに登録する)といったコマンドが用意されている。

diskutil
この「Mac OS X」のツールは、ディスクの管理と修復のためのさまざまなコマンドを提
供するため、サーバの環境内で特に役に立ちます。たとえば、次のコマンドがあります。
m ログインしているMac OS X コンピュータのディスクおよびパーティションを表示す
るには、「ターミナル」ウインドウで「diskutil list」と入力します。
m 複数のディスクにRAID( Redundant Array of Independent Disk)セットを作成するには、
「sudo diskutil createRAID mirror MirrorDisk BootableHFS+ disk1 disk2」と入力します。この
場合は、ルートアクセス権が必要です。
m ボリュームのディスクの構造を検証するには、「sudo diskutil verifyDisk /Volumes/SomeDisk」
と入力します。ディスクの構造を修復するには、「sudo diskutil repairDisk /Volumes/SomeDisk」
と入力します。この場合は、ルートアクセス権が必要です。
m 「Mac OS X」の起動ボリュームのアクセス権を検証するには、「sudo diskutil verifyPermissions /」
と入力します。この場合は、ルートアクセス権が必要です。



コマンドラインからユーザー登録する方法は?(ユーザーdayan を追加
・データベースへのエントリを作る: niutil -create / /users/dayan
・シェルを設定: niutil -createprop / /users/dayan shell /bin/tcsh
・実名を登録: niutil -createprop / /users/dayan realname "Dayan"
・uid を設定: niutil -createprop / /users/dayan uid 502
・gid を設定: niutil -createprop / /users/dayan gid 20
・ホームディレクトリを設定: niutil -createprop / /users/dayan home /Users/dayan
・パスワードのエントリを作成: niutil -createprop / /users/dayan _shadow_passwd
・パスワードを設定: passwd dayan
・wheel グループに加える: niutil -appendprop / /groups/wheel users dayan

ネットワークに関する情報は?
基本的なホストの設定は、/etc/hostconfigで行う。/etc/iftab にインターフェースの情報を記述する。

DHCP を利用する場合
/etc/iftab: en0 inet -DHCP-
/etc/hostconfig: HOSTNAME=-AUTOMATIC-
ROUTER=-AUTOMATIC-

NFS の設定は?
/etc/exports ファイルを作るタイプの設定方法。

OS 立ち上げ時に起動されるプロセスを設定するには?
Mac OS X では、SystemStarter というプログラムが起動したいサービスのスクリプトを実行します。SystemStarter は、/System/Library/StartupItems/ にあるスクリプトを起動します。

スクリプトの追加方法: Apache の場合、/System/Library/StartupItems/Apache/Apache というシェルスクリプトを以下の形式で作成する。この Apache というディレクトリー名やファイル名はユニークなものならば何でも構わない。

#!/bin/sh
##
# Start Web Server
##
. /etc/rc.common

if [ "${WEBSERVER:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting web server"
/usr/sbin/apachectl start
fi

さらに、/System/Library/StartupItems/Apache/StartupParameters.plist ファイルを作成する。

{
Description = "Apache web server";
Provides = ("Web Server");
Requires = ("Disks", "Resolver");
Uses = ("NFS", "Network Time");
Preference = "None";
Messages =
{
start = "Starting Apache web server";
stop = "Stopping Apache web server";
};
}

最後に、/etc/hostconfig に以下の行を追加します。

WEBSERVER=-YES-

/etc/hostconfig に追加するシェル変数は、ユニークなものでなくてはならず、起動スクリプトで if 文に使用したものと同じでなければならない。

これらの事でわかるように、スクリプト等を作成したなら /etc/hostconfig に登録された各変数の値を -YES- や -NO- とすることで、OS 起動時にサービスを開始するかどうか決定できます。

Mac OS X のバイナリーフォーマットは?
Mac OS X は、Mach-O (Mach Object) というバイナリーフォーマットを採用している。ELF ではなく、ELF とも互換はありません。

シェアードライブラリーの作成
ライブラリを作る時は
cc -dynamiclib -undefined suppress -install_name libFoo.dylib -o libFoo.dylib a.o b.o c.o ...
とします。この時、標準ライブラリの多重定義が出るようならコンパイルオプションで -nodefaultlibs または -nostdlib をさらに指定します。

また、シェアードライブラリーをリンクする場合、Mac OS X のダイナミックリンクの仕組みが他の UNIX とはちょっと異なる(シェアードライブラリーのロードの仕方が違う)ので、リンカに -bind_at_load を指定します。(コンパイラ cc で指定する時は -Xlinker -bind_at_load を指定)

Java
ProjectBuilder の Format メニューの File Encodings から No-lossy Ascii を選択してUnicode 以外のコードを UnicodeのLarin-1にしてファイルに保存するようにする。

MRJApp.properties ファイルの file.encoding を x-sjis にする。その他、改行コードを設定する line.separator やロケールを設定する user.region, user.language、パスの設定をする file.separator なども注意する

◎192.168.0.2/~username/をhttp://192.168.0.2/でアクセスさせたい

/etc/httpd/httpd.conf
の中にある
DocumentRoot "/Library/WebServer/Documents"
って所を
DocumentRoot "/Users/username"
に変更して
apacheの再立ち上げしたらいいだけだと思います。


INDEX