BSD-tips


FreeBSD-Tips

起動スクリプトの場所

  • 変更なし
  • /usr/local/etc/rc.dディレクトリに保存ファイルのパーミッションは755に設定しておくこと

化けた企業独自memo(UNIX)

  • nkf(古いか?)
    • $cat before.txt | nkf -e > after.txt
  • qkc
    • $ qkc -e -u sample.txt
  • kcc
    • $touch newfile ; kcc -e 目的のoldfilename >> newfile

改行コード

  • perl -pe 's/\n/\r\n/' unixfile > winfile

5系列のrc.conf

  • 同じく/etc/default/rc.conf→/et.c/rc.confの順である
    • rc.confを/etcディレクトリにコピーしてから編集が望ましい

emacsで辞書を使う


環境変数の設定

  • Cシェル系
% setenv EDITOR /usr/local/bin/emacs
  • Bourne シェルでは次のようになります.
% export EDITOR="/usr/local/bin/emacs"

起動メッセージを読みなおす

  • 以下にboot後の起動messageが閲覧可能です
/var/run/dmesg.boot

portsからキーワードから検索する

% cd /usr/ports
% make search key=lisp

distfilesへのアクセスエラー(ports)

/usr/ports/distfiles
  • はCDROMへのシンボリックリンクなので書き込み不可が原則
  • 以下で回避
    • # make DISTDIR=/where/you/put/it install

日本語man(jman)

  • install
# cd /usr/ports/japanese/man
# make install
  • 環境変数の設定する
    • .bashrcに以下を追加
$ export LC_CTYPE=ja_JP.eucJP
$ export PAGER=jless
# pkg_add ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/man-jp/
  packages-5.0.0/ja-man-doc-5.0.tbz
% jmanpath -q
/usr/share/man:/usr/local/man:/usr/X11R6/man
  • MANPATHに/usr/share/man/jaを追加

bashrcの基本設定

  • プロンプトはこれに落ち着く
# bash prompt
PS1=''
PS1="[\u@\h: \w]\\$ "
export PS1

カーネルソースを取ってくる

  • たまにない企業さんもある
    • rootで/stand/sysinstall を用いて設定(Configure)を選んでから配布ファイル(Distribution)を選択し, src の中の sys をインストール

カスタムカーネルを作成

# cd /usr/src/sys/i386/conf
  • 標準のkernelからカスタマイズ用のファイルを作成
# cp GENERIC MYKERNEL (MYKERNELは任意のファイル名)
  • MYKERNELをテキストエディタで編集する
  • もし、以前に同じ名前のkernelを構築したことがある場合は、その時に生成されたファイルを消去しておく必要がある。
# cd ../compile/
# rm -rf MYKERNEL
  • まbackupできることも考えcpが無難
# cd ../compile/
# mv MYKERNEL or GENERIC /root
  • 以下、必要なファイルを生成する
# /usr/sbin/config MYKERNEL
# cd ../compile/MYKERNEL
# make depend
# make
  • インストール
    # make install
  • 再起動すれば完了
  • もし、新しく構築したkernelでうまく起動できなかった場合、その前のkernelで起動した後、それを復元する必要があり.
  • ブート時の10秒の間にEnter以外のキーを押すと出てくるプロンプトで
    unload
    boot kernel.old (もしくは boot kernel.GENERIC)
  • この順に打ち込むことで起動できるはずです。
  • そして、古いkernel.oldを現在のkernelに置き換える。
    (FreeBSD4.xの場合)
    # chflags noschg /kernel
    # cp /kernel.old /kernel
    # chflags schg /kernel
    (FreeBSD5.xの場合)
    # cp -r /boot/kernel.old /boot/kernel
  • これで、kernel構築前の状態に戻すことができる

sysctlによるチューニング

  • 個々の変数, たとえば kern.maxproc を読むには以下のようにします.
% sysctl kern.maxproc
kern.maxproc: 1044
  • 個々の変数をセットするには = オプションを使います.
# sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000
  • sysctl 変数の値は通常, 文字列, 数値, 真偽値のいずれかです. 真偽値は yes の場合には 1 で no の場合には 0 です.

おまけSolaris


起動順序

  • /etc/inittabがIDで呼び出される
    • それぞれのrunlevelに対応しS80sendmailなどとrc.3などで定義されてある
    • 起動時に読み込ませないようにするには
#mv S80sendmail _S80sendmail
  • でよい