SHELLの設定

shellとは,UNIXにおいて入力した文字列を受け付け,対応するコマンドを実行してくれるもので, loginすると起動され,それぞれのktermの中でもひとつづつ動いているものである.
各自の環境は初期状態ではtcsh(ティーシーシェル)といわれるUNIXではかなりメジャーなshellが動いている.
そもそもUNIXでもっとも最初に使われたのはsh(bourne-shell:ボーンシェル[ボーンさんが作った.bsh/b-shともいわれるがコマンドはshである])である. man shとしてみれば分かるが,このshには非常に多くの機能があるが,それでも使いづらい面があったため, これの制御形式をC言語に近いものに拡張したのがcsh(シーシェル)である. tcshはこのcshをさらに使いやすいように拡張したものである. これ以外にshを拡張したbash(born again shell:バッシュ[bourneとbornをかけている])などが有名である.
屋代研では,これらのシェルはすべて利用可能であるが,ここではtcshについてのみ説明する.

tcshは起動時にホームディレクトリにある".cshrc"というファイルを読み込み,自分自身の設定を行う. .cshrcの本来の意味はcsh起動時に動くコマンド(run command)という意味であるが,cshを拡張したtcshも .cshrcを読み込む.
なお,".cshrc"に書かれているコマンドは,なにも特別なものではなく,ユーザが自分で直接打ち込んでも実行可能なものである. 下記のコマンドも当然,.cshrcになくても,一行ずつその通りに打ち込んで実行すれば,途中で環境を変更することも可能である.
各自の初期状態の.cshrcは下記のようになっている.
#################################################################
#
#         .cshrc file
#
#         initial setup file for both interactive and noninteractive
#         C-Shells
#
#################################################################

set     ignoreeof
set     filec

setenv  LANG    ja

setenv DSPKANJI dspk
setenv JLESSCHARSET japanese-ujis
set    dspkanji euc
stty -istrip cs8 -parenb

#------------------------- path
set path = (    /usr/local/bin \
                /usr/bin \
                /usr/local/bin/mh \
                /usr/ucb \
                /usr/X11R6/bin \
                /usr/openwin/bin \
                /usr/sbin \
                /usr/ccs/bin \
           )

set cdpath = (. .. ~ )

#------------------------- env
setenv CANNAHOST        localhost
setenv JSERVER          localhost
setenv PAGER            less
setenv EDITOR           mule

setenv MANPATH          $HOME/man:/usr/local/man:/usr/local/gnu/man:/usr/man:/usr/X11R6/man:/usr/openwin/share/man
setenv TEXMFCNF         "$HOME/lib/tex/"
setenv TEXINPUTS        .:$HOME/lib/texinputs:/usr/local/share/texmf/tex/latex209:/usr/local/share/texmf/tex/platex209:/usr/local/share/texmf/tex/local:/usr/local/share/texmf/tex/jinputs:/usr/local/share/texmf/tex/inputs
setenv XFILESEARCHPATH  ./%N:/usr/X11R6/lib/X11/%L/%T/%N:/usr/X11R6/lib/X11/%T/%N
setenv LD_LIBRARY_PATH /usr/lib:/usr/X11R6/lib:/usr/ucblib:/usr/local/lib:/usr/local/mh/lib

#------------------------- grobal settings
limit   coredumpsize    0
#umask  002
set     noclobber


#------------------------------------ settings  for interactive shells
#  skip remaining setup if not an interactive shell
if ($?USER == 0 || $?prompt == 0) exit

source ~/.alias

set     history  = 40
set     savehist = 20
unset   autologout
set     notify
set     nohup

if ($?tcsh) then
        set     prompt = "[%M]%/ %! %# "
        complete {c,push}d              'p/1/d/'
        complete {xdvi,dvi2ps,lwdvi2ps} 'n/*/f:*.dvi/'
        complete jlatex                 'n/*/f:*.tex/'
        complete man                    'p/1/c/'
        complete {setenv}               'n/*/e/'
        complete {set}                  'n/*/s/'
        complete {gunzip}               'n/*/f:*.gz/'
        complete {uncompress}           'n/*/f:*.Z/'
        complete {zcat}                 'n/*/f:*.{gz,Z}/'
        complete {grep}                 'p/1/u/'
        complete {which,where}          'p/1/c/'

        bindkey -s '^[l' '^E | less'
endif
このうち,#で始まる行はコメントである.また,行末に"\"のある行は,次の行に継続される (複数行にわたって一行分の内容が記述されている).
ここで使われているコマンドをそれぞれ簡単に説明する.詳しくはman tcsh…と思ったら…ない….
戻る