Content-type: text/html
Sojin Project / Free Software HOME | SiteMap | Touring Impression | Free Software | Bookshelf | Diary

FreeBSD 設定ファイル

HOME > Free Software > UNIX > FreeBSD 設定ファイル

Index of this Page

※FreeBSD 4.5-RELEASE で,実際に使っている設定ファイルの例です。一部は Red Hat Linux にも流用しています。
シェル tcsh の設定
コメント .cshrc .login .logout の3つのファイルで使い勝手を調整しています。
実際に使っている .login .logout .cshrc です。
X の設定
コメント メインは .xinitrc ですが,GUI ログインの時には .xsession を先に実行します。。
実際に使っている .xinitrc .xsession .Xresources です。

シェル tcsh の設定

コメント

 ~/.cshrc ~/.login ~/.logout の3つのファイルで使い勝手を調整しています。
 .login では,単に趣味で fortune を表示。.logout では画面消去しているだけです。したがってメインの設定は .cshrc でやっています。
 .login の fortune freebsd-tips はデフォルトの設定です。日本語端末なら日本語版マーフィーの法則も表示しています。murphyjp は
Junk Box のページの「データ」の項に murphyjp.tgz として入れてあります。
 .cshrc の詳細は以下の通りです(変更した .cshrc の内容を即座に反映させるためには source .cshrc を実行):
limit coredumpsize 0
Fatal Error でプロセスが死んだときも,メモリイメージを保存しない。
umask 22
新規ファイル・ディレクトリ作成時に, Group と Other には,Writeビットを立てない。(chmod 644/755)
#### set shell variables ####
シェル変数で tcsh の動作をカスタマイズ
set autolist=ambiguous
TAB(Ctrl-I)キーでの自動補完機能を使う。関連して set autocorrect / set complete=enhance などの設定もある。
if ( "_$user" == "_root" ) then 〜 endif
状況によってプロンプトを変えている。X で複数の端末を開いて作業しているときに,どれが自分でどれが root か,すぐ忘れるので。各設定は man(jman) tcsh<Enter> で prompt の項を参照。
if ( $?tcsh ) then bindkey 〜 endif
キーの割当てを好みのものに変更。引数なしの bindkey<Enter> で現在の設定を表示。
#### set environ variables ####
環境変数の設定
setenv LANG/LC_CTYPE/... ja_JP.EUC
FreeBSD 4.6-RELEASE 以降では ja_JP.eucJP に変更されています。日本語 locale(ロケール)の設定に関しては FreeBSD 公式サイトのQ&Aが詳しい → FreeBSD QandA 2200
ドキュメント通りであれば,LANG ないし LC_ALL だけ,設定しておけばよいように読めるのですが,どうも手抜きのソフトがあるために LC_CTYPE などを適宜設定しなければならないようです。これはご自分のインストールされたソフト次第です。共通の設定でうまく日本語が表示できない場合は,そのソフトだけ env コマンド経由で呼び出すということも考えます。
setenv HTTP_PROXY 以下
自宅のマシンはルータにぶら下がっているが,職場のマシンは,2段階のファイアウォールの下で厳重に保護されている(はず)。また ports を取るのにネットワーク距離の近いサイトを指定。
#### aliases ####
よく使うコマンド・忘れやすいコマンドを登録。引数なしの alias<Enter> 一発で思い出せるしね。
alias rm rm -i 以下
Yes/No の確認を求めるように変更。逆にディレクトリを丸ごと削除したい時など rm -rf xxx/ とする。
alias x env XDESKTOP=WindowMaker startx 以下
一応 GUI ログインの設定もしてあるのだが好きでないので,startx で X を呼ぶ。普段は WindowMaker 単独を使っているが,たまに気分で他のウィンドウ・マネージャやデスクトップ環境も使う。いずれも一文字で呼べるように。.xinitrc の中で,環境変数 XDESKTOP の値で条件分岐するようにしている。
alias memo/note
すぐに忘れるので,インストールの記録は note.txt に,その他の備忘は memo.txt に。ファイルは 664 で wheel グループなら書込み可にしてある。ほとんどのテキストは jvim で書く。単に XEmacs を覚えるのが面倒なだけだが。
alias printset 'env LANG=ja_JP pips900'
EPSON のインクジェットプリンタ PM-900C の設定プログラム pips900 を呼んでいる。Linux 用ソフトなので LANG=ja_JP.EUC のままでは日本語が化ける。env コマンドで一時的に Linux 用の設定に変更して起動。 ※エプソンの Linux 用プリンタドライバは,エプソンの公式サイトで入手可能。
alias vncstart/vnckill
LAN にぶら下がった Windows マシンから FreeBSD を使う設定。ssh でログインして VNC を起動/終了する。一応 port-forwarding の設定もしてある。残念ながら上流のファイアウォールが telnet すら通してくれないので,職場外からは使えない。
PageTop

.login

[ -x /usr/games/fortune ] && /usr/games/fortune freebsd-tips
if ( "_$LANG" == "_ja_JP.EUC" ) then
        echo
        /usr/games/fortune murphyjp
        echo
endif
PageTop

.logout

clear
PageTop

.cshrc

# $FreeBSD: src/etc/root/dot.cshrc,v 1.25.2.2 2001/03/05 13:36:53 asmodai Exp $
# .cshrc - csh resource script, read at beginning of execution by each shell
# see also csh(1), environ(7).

limit coredumpsize 0                        # No Coredump
umask 22                                    # A righteous umask

#### set shell variables ####

set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin $HOME/bin)
set autolist = ambiguous

# [default]:cons25, [kon]:vt100, [X]:kterm -> xterm-color
if ($?XDESKTOP) then
    # X では Eterm を使っている
    setenv TERM Eterm
endif

if ($?prompt) then
    # カラー端末か? su か? su -l か? 状況によってブロンプトを変えている
    if ( "_$user" == "_root" ) then
        if ( "_$term" == "_cons25" ) then
            set prompt = "%S[%/]%s# "
        else
            set prompt = "%{\e[41m%}[%/]%{\e[0m%}# "
        endif
    else if ( "_$HOME" == "_/root" ) then
        if ( "_$term" == "_cons25" ) then
            set prompt = "%S[%n: %~]%s% "
        else
            set prompt = "%{\e[41m%}[su: %~]%{\e[0m%}% "
        endif
    else
        if ( "_$term" == "_cons25" ) then
            set prompt = "%S[%n: %~]%s% "
        else if ( "_$term" == "_xterm-color" || "_$term" == "_Eterm") then
            set prompt = "%{\e[47:30m%}[%n: %~]%{\e[0m%}% "
        else
            set prompt = "%{\e[44m%}[%n: %~]%{\e[0m%}% "
        endif
    endif
    set filec
    set histdup = erase
    set history = 1000
    set savehist = (1000 merge)
    set mail = (/var/mail/$USER)
    if ( $?tcsh ) then
        # キーの割当て
        bindkey "^W" backward-delete-word
        bindkey -k up history-search-backward
        bindkey -k down history-search-forward
        bindkey "^P" history-search-backward
        bindkey "^N" history-search-forward
        bindkey "^R" i-search-back
        bindkey "^?" delete-char
    endif
endif

#### set environ variables ####

if ( "_$TERM" == "_cons25" ) then
    # english
    setenv  LANG    C
    unsetenv    LC_CTYPE
else
    # japanese
    setenv  LANG    ja_JP.EUC
    setenv  LC_CTYPE    ja_JP.EUC
endif
setenv  PAGER   jless
setenv  LESS -mc
setenv  EDITOR  jvim
setenv  BLOCKSIZE   K
# 日本語の設定
setenv  JSERVER localhost                   # Wnnのサーバの指定
setenv  CANNAHOST   localhost               # CANNAのサーバの指定
setenv  XMODIFIERS '@im=kinput2'            # XIMの設定
# KDE
setenv  KDE_DIR     /usr/local/kde
setenv  KDE_LANG    ja_JP.EUC
setenv  LD_LIBRARY_PATH /usr/local/qt/lib
setenv  QTDIR       /usr/local/qt
setenv  MOZ_PRINTER_NAME    pm900c
# /usr/ports
setenv  HTTP_PROXY  10.00.0.00:8080
setenv  FTP_PROXY   10.00.0.00:8080
setenv  MASTER_SITE_OVERRIDE\
   'ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/\
    ftp://ftp7.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/'
setenv  DISTDIR /cdrom/ports/distfiles

#### aliases ####

alias rm    rm -i
alias mv    mv -i
alias cp    cp -i
alias h     history 20
alias j     jobs -l
alias ls    jls
alias la    jls -A
alias lf    jls -FA
alias ld    jls -lAFd
alias ll    jls -lAF
alias lll   'jls -lAF|jless'
alias md    mkdir
alias l     jless
alias vi    jvim
alias x     env XDESKTOP=WindowMaker startx
alias k     env XDESKTOP=KDE startx
alias e     env XDESKTOP=Enlightenment startx
alias s     env XDESKTOP=Sawfish startx
alias g     env XDESKTOP=Gnome startx
alias a     env XDESKTOP=AfterStep startx
alias memo  vi /root/doc/memo.txt
alias note  vi /root/doc/note.txt
alias lsenv 'printenv|sort|jless'
alias printerset    'env LANG=ja_JP pips900'
alias vncstart  'vncserver :1 -depth 16 -geometry 1280x1024'
alias vnckill   'vncserver -kill :1'
PageTop

X の設定

コメント

 ~/.xinitrc ~./xsession 以外にも X の設定ファイルは数が多いです。
 .xinitrc では,環境変数 XDESKTOP で条件分岐して,複数のウィンドウ・マネージャを使い分けています。所々コメントアウトされていますが,実験や気分を変えた時の痕跡です。。
 .xsession では,GUI ログインの時にはシェルを経由しないので設定されない環境変数を設定し,最後に .xinitrc を呼んでいます。
 .Xresources では,各ツールの設定をしています。Actx は,ウィンドウ・シッターです。
PageTop

.xinitrc

#!/bin/sh
export LANG=ja_JP.EUC
export LC_CTYPE=ja_JP.EUC
export PAGER=jless

exec >$HOME/xlog 2>$HOME/xelog

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

#kinput2 -ccdef /home/xxx/Wnn4/xxx.ccdef &
kinput2 -canna &


if [ "_$XDESKTOP" = "_X" ]; then
    rxvt
elif [ "_$XDESKTOP" = "_KDE" ]; then
    # KDE ####
    actx -random -offset 40 &
    exec startkde
elif [ "_$XDESKTOP" = "_Enlightenment" ]; then
    # Enlightment ####
    exec enlightenment
elif [ "_$XDESKTOP" = "_Sawfish" ]; then
    # Sawfish ####
    exec sawfish
elif [ "_$XDESKTOP" = "_Gnome" ]; then
    # Gnome ####
    #rxvt -C -fg white -bg blue -name SystemConsoleMessages &
    #rxvt -C -fg white -bg blue -iconic -name SystemConsoleMessages &
    #exec gnome-session
    exec gnome-session --failsafe
else
    # WindowMaker #### (default)
    #xterm &
    rxvt -C -fg white -bg blue -iconic -name SystemConsoleMessages &
    actx -random &
    #xconsole -notify &
    [ ! -d $HOME/GNUstep/Library/WindowMaker ] && /usr/X11R6/bin/wmaker.inst
    exec /usr/X11R6/bin/wmaker
fi
PageTop

.xsessoion

#!/bin/sh
#### settings in ~/.cshrc ####
ulimit -c 0
umask 22
export LANG=ja_JP.EUC
export LC_CTYPE=ja_JP.EUC
export TERM=xterm-color
export JSERVER=localhost
export CANNAHOST=localhost
export XMODIFIERS='@im=kinput2'
export MASTER_SITE_OVERRIDE='ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/ports/distfiles/'
export DISC=/dev/acd0c
export CDROM=/dev/acd0c

exec $HOME/.xinitrc
PageTop

.Xresources

!!!! XEmacs !!!!
    xemacs*background: beige
    xemacs*foreground: black
    xemacs*pointerColor: chocolate
    xemacs*cursorColor: Orchid
!メニューバー
    xemacs*menubar.background: wheat
    xemacs*menubar.foreground: black
    xemacs*menubar.selectColor: chocolate
    xemacs*menubar.font: r16
!ポップアップメニュー
    xemacs*popup.background: wheat
    xemacs*popup.foreground: Black
    xemacs*popup.selectColor: chocolate
    xemacs*popup.titleForeground: firebrick

!!!! Actx !!!!
    Actx*international: true
    Actx*FontSet: -*-fixed-medium-r-normal-*-14-*
    Actx*inputMethod: kinput2
PageTop
Sojin Project http://www.kgym.jp/
© CopyLEFT 2004, Sojin Project / Masaaki 'Jack' Kageyama