シェルの設定

シェルとは
TCSH初期化ファイル
.cshrc
設定
.cshrc の設定例
.xinitrc の設定例
※補足
シェルコマンド

シェルとは

UNIXを利用するとき、ユーザーは、UNIXのシステムサービスにダイレクトに アクセスするわけではなく、" シェル " と呼ばれるプログラムがカーネ ルとユーザーの間にたち、コマンドラインでのユーザーインターフェイスを 提供します。シェルは、ユーザーから入力されたコマンドなどをシステムに渡 したり、またカーネル が処理した結果をユーザーに対して表示するなどの 基本機能を始め、さまざまな機能を提供しています。

Cシェル初期化ファイル

Cシェルには、.login, .cshrc, .logoutの3つの初期化ファイルがあり ます。.loginファイルはユーザがログインするたびに実行されるログイン初 期化ファイルです。.cshrcファイルはCシェルに入るたびに実行される シェル初期化ファイルです。.logoutファイルはログアウトするたびに実行 されます。

.cshrc

.cshrc初期化ファイルは、ユーザがCシェルに入るたび、またはサブシェ ルの起動にを成功するたびに実行されます。Cシェルがログインシェルである場合 は、ログイン時に.loginファイルとともに.cshrcファイルが実行されます。 ほかのシェルからCシェルに入った場合は、.chsrcファイルが自動的に 実行され、その中から変数おようびエイリアスの定義が定義されます。

設定

今回Cシェルを基本に、様々なOSにログインした時に、ログインしたOSに あった環境で操作を行うため、コマンドのPATHやX Windows System を正 常に立ち上げるための設定を説明します。
まず設定するファイルは2つです。ディレクトリも一つ作ります。

1,  .cshrc     --------Cシェルのファイルです。
2,  .xinitrc   --------X Window System 起動時に自動的に実行されるスクリプトのファイルです。 
3,  .rc        --------ログインするOSの設定したシェルのファイルを置くためのディレクトリ

.cshrcの設定例

#
# .cshrc setting file
# ログイン時にシェルを読みこんだホスト名を条件分岐を使ってhost変数に取得します。
#

umask 022 
# get hostname
if ($?HOST) then  
        set host = $HOST 
else
        if ( -x /bin/hostname || -x /usr/bsd/hostname ) then	
                set host = `hostname`
        else if ( -x /bin/uname ) then
                 set host = `uname -n`
        else
                set host = myhost
        endif
endif
switch ($host)
        case *.jaist.ac.jp:
                setenv hostname `echo $host | sed 's/.jaist.ac.jp//'`
                breaksw
        case *:
                setenv hostname $host
                breaksw
endsw
unset host

# get ttyname   
# 端末の設定ファイル

if (! $?tty) then
        if ( -x /bin/tty ) then
                set tty = `tty | sed 's/\/dev\///'`
        else
                set tty = mytty
        endif
endif

# set ostype of architecture
# ログインするOSをswitch文を用いて os 変数に取得します

if ( -x /bin/uname) then
    set ostype = "`uname -s -r`"
    switch ("$ostype")
        case "SunOS 4.*":
	setenv os sun4
            breaksw
        case "SunOS/CM 4.*":
            setenv os sun4
            breaksw
        case "SunOS 5.*":
            setenv os sun5
            breaksw
        case "NEWS-OS 4.*":
            setenv os news4
            breaksw
        case "NEWS-OS 6.*":
            setenv os news6
            breaksw
        case "FreeBSD *":
            setenv os fbsd
            breaksw
        case "AIX *":
            setenv os aix
            breaksw
        case "OSF1 *":
            setenv os alpha
            breaksw
        case "HP-UX *":
            setenv os hpux
            breaksw
        case "IRIX *":
            setenv os sgi
            breaksw

        case "IRIX64 *":
            setenv os sgi64
            breaksw 

        case "Linux *":
            setenv os linux
            breaksw 
    endsw
    unset ostype

else
    setenv os unknown
endif

# 自分のホームディレクトリの下の.rcディレクトリを rc変数に設定

setenv rc $HOME/.rc

# source
# .rcディレクトリ以下に置いてある各OSのシェルファイルを読み込んで実行する

source ${rc}/.cshrc-${os}

.xinitrcの設定例

#
# .xinitrc - this file get executed at starting X window
# X Window System 起動時に自動的に実行されるスクリプト

# .rcディレクトリ以下の各OSの.xinitrcファイルを読み込んで実行する
source ${rc}/.xinitrc-${os}

※ 各OS用の設定ファイルをまとめた tar.gz ファイルは次のリンクから取得できます。

setting.tar.gz

シェル コマンド

$         変数名を使用して変数の値を参照
-x file   ファイルfileが存在し、実行可
-d dir    ディレクトリdirが存在する
set       Cシェル変数を設定する
unset     Cシェル変数を取り消す
setenv    環境変数を設定する
unsetenv  環境変数を取り消す
sed       データのストリームを編集する
breaksw   swich文から抜ける
endsw     switch文全体の終りの印
tty       現存する仮想端末デバイス(TTY)の情報を表示する。
uname    システムの情報を表示 
source    ファイルを読み込んで、実行する
.cshrc    cshの設定ファイル
.xinitrc X Window System 起動時に自動的に実行されるスクリプト