ログイン | .login | .cshrc | ||
---|---|---|---|---|
環境変数の設定 | PATHの設定 | 特殊なシェル変数path | 特殊なシェル変数prompt | |
aliasコマンド | 様々な alias | aliasを一時的に無効にする | ||
特殊なコマンド | umask | limit | source がcshrcにあるのは? | cshrcの一部を無効にしたい |
その他 | FAQ | 練習問題 |
以下にお奨めの設定を示します。
unset autologout unset noclobber stty erase "^H" kill "^U" intr "^C" susp "^Z" stty -istrip set filec set prompt="`hostname` `whoami`:\!] " |
説明
unset autologout | 自動ログアウトを設定しない。 |
unset noclobber | すでにあるファイルに対する書き込みを禁止しない。 |
stty erase "^H" | 端末のキィーを設定する。 |
stty -istrip | 入力文字を 7 ビットにストリップしません。
つまり8ビットそのまま通します。
(日本語を使うときは必須です) |
set filec | 一部を入力したファイル名またはユーザ名を自動拡張します。
ESC 文字で自動拡張、CNTL.D でリストを表示します。 |
set prompt = "`echo ``hostname`-\!] " | コマンドプロンプトを設定します。 |
以下にお奨めの設定を示します。
setenv TERM vt100 setenv LANG ja setenv MHOME $HOME set OSNAME = `uname` switch ($OSNAME) case "SunOS": # OS=solaris setenv MANPATH "/usr/openwin/man:/opt/SUNWspro/man" setenv LD_LIBRARY_PATH "/opt/SUNWspro/lib:/usr/openwin/lib:/usr/dt/lib: breaksw case "HP-UX": # OS=HP-UX setenv MANPATH "/opt/ansic/share/man:/opt/imake/man" setenv LD_LIBRARY_PATH "/usr/lib:$MHOME/tool/libpcap-0.4" breaksw case "AIX": # OS=AIX set path = (. /opt/ansic/bin $path) setenv MANPATH "/opt/ansic/share/man:/opt/imake/man" setenv LD_LIBRARY_PATH "/usr/lib:$MHOME/tool/libpcap-0.4" breaksw case "Linux": # OS=Linux default: setenv LD_LIBRARY_PATH "/usr/lib" setenv MANPATH "/opt/ansic/share/man:/opt/imake/man" breaksw endsw source $HOME/.aliases |
![]() |
![]() |
環境変数は、実行するコマンドに渡される変数です。 大抵は、コマンドが要求するもので、設定は以下のようにします。
setenv <変数名> <値>
例えば、環境変数 LANG を"ja"としたいなら、以下のようにします。
setenv LANG ja
ちなみにこれは、ロケールを ja つまり日本にします。
環境変数PATHを設定する場合は、次のようにします。
setenv PATH < PATH 1>:< PATH 2>:...< PATH N>
また、これに追加したい時には次の二通りのいづれかを使います。
setenv PATH ${PATH}:< PATH a>:... setenv PATH < PATH a>:...:< PATH x>:$PATH
環境変数の主なものは、次のとおりです。
PATH | コマンドへのパス |
LD_LIBRARY_PATH | 動的リンクを行う際の共有ライブラリへのパス |
MANPATH | オンラインマニュアルへのパス |
特にPATHとMANPATHは覚えておきましょう。
シェル変数とは、cshでのみ有効な変数で、 環境変数のように実行するコマンドに渡されません。 大抵はシェルスクリプト実行において利用されますので敢えてここでは述べませんが、 pathだけは少し違って、環境変数PATHと連動していますので、 pathでPATHを設定しても良いのです。 この方が折り返しが楽なので、こちらを推奨します。 設定方法は、以下のとおりです。
set path = ( < PATH1> ... ) set path = ( $path <PATH a> ... ) set path = ( < PATH a> ... $path )
promptは、プロンプト文字列を指定します。 例えば
set prompt = "`hostname`-\!]"
としてみましょう。
また、tcshでは、"%+文字"を使った設定が可能です。
![]() |
![]() |
aliasコマンドで、コマンド名の短縮などが可能です。
alias <エイリアス名> <本物のコマンド名など>...
たとえば、"cdoh"を"cd $ORACLE_HOME"としたいなら、以下のようにします。
alias cdoh cd $ORACLE_HOME
以下にお奨めの alias を示します(.aliases)。
alias cd "cd \!*;pwd" alias fnd "(find . -name \!* >/dev/tty) >& /dev/null" alias ftp "ftp -i" alias h "history" alias lc "ls -aCFb \!*" alias ll "ls -alFb \!*" alias lr "ls -aCFR \!*|more" |
"rm"を"rm -i"とすると、本当に消して良いかを常に問われますが、 大量のファイルを消したいが消して良いかを聞かれるのは面倒というときには、 もとの"rm"つまり"-i"オプションを消したくなります。このとき、
\rm *としてみましょう。 これで、aliasが一時的に無効になり、そのコマンドに限り外れますので、 その後は、また"-i"オプションが付いた状態になります。
![]() |
![]() |
> umask 022 > touch a > ls -l a -rw-r--r-- 1 taka dba 0 4月 12日 15:42 a
読まれるのも、コマンドの実行も嫌なら、以下のようにします。
> umask 077 > touch b -rw------- 1 taka dba 0 4月 12日 15:43 b
limit coredumpsize 0プログラムが不正終了した時に coreファイルを吐きますが、それを抑制します。
source <ファイル名>
となっていると、その行に指定したファイルを取り込んだような格好になります。 通常 setenv などはそのスクリプト内でだけ有効となりますが、 source でスクリプトを実行すると、そのセッション中ずっと有効となります。
なにか「実験」をする場合などでは、一時的に特定行を無効にしたくなると思います。 いくつかの方法があります。
<コマンド> <設定した変数またはエイリアス>
![]() |
![]() |
【 解答 】
![]() |
![]() |