.cshrcのカスタマイズホームディレクトリの下にある .chsrc というのは、csh run command の略です。 これは、シェルが起動するたびに読み込まれる設定ファイルです。 具体的には、ターミナル (kterm など) を起動したり、slogin や ssh 、 rlogin などでログインした場合に、 このファイルに書いてあることが実行されるというわけです。 Linuxでは「bash」、BSD系UNIXでは「csh」と呼ばれるシェルがデフォルトのシェルになっていますが、これを使い続けなければならないということはありません。
シェルは「bash」「zsh」「tcsh」から選ぶのが妥当だと思います。 ここでは、「tcsh」について記述します。 tcsh 利用のための設定方法まずは自分がどのシェルを利用しているのか確認しましょう。 また「tcsh」がどこにあるか確認しましょう。 echo $SHELL 利用できるシェルの一覧は次のコマンドで確認できます。 chsh -l csh がデフォルト設定の方は「.login」の最後に以下の命令を追加します。 (tcsh が 「/usr/local/bin/」にある場合 ) exec /usr/local/bin/tcsh また bash がデフォルト設定の方は「.bashrc」の最後に以下の命令を追加します。 (tcsh が 「/bin/」にある場合 ) exec /bin/tcsh ※root権限がある場合は「/etc/passwd」の設定ファイルを変更します。 ~/.chsrc ファイルで環境設定設定ファイルと言っても、内容はただの csh スクリプトです。このため、 ~/.cshrc を更新したときは、一度ログアウトしログインし直すか、あるいは以下のコマンドを入力 しましょう。 source ~/.cshrc ここでエラーが起こった場合は、以下のコマンドを入力することで、 エラーの発生場所が特定できます。 csh -fx ~/.cshrc 通常このファイルの中では、常に設定しておきたいことを記述しておきます。 ちなみに、書き換えた一例を載せておきます→「 .cshrc 」 パス設定パス名を記述は以下のようにします。ただし、「 path=( 」に空白を空けてはいけません。 set path=( パス名 ) コア ( .core ) ファイルを作らないようにするアプリケーションが異常終了した時( Segmentation fault )に .core という 名前のファイルが作成されます。 通常、このファイルはサイズも大きく利用することはありません。 ~/.chsrc に以下の一文を追加しましょう。 limit coredumpsize 0 プロンプトに表示される文字の変更ターミナルに表示されるプロンプト(コマンド入力待ちのときに表示する文字列)を変更して、使いやすくしましょう。 これには、prompt コマンドを利用します。たとえば、以下のように 入力すると、プロンプトが「hoge」に変わります。 $ set prompt="hoge " hoge _ また「%」で始まる文字は特殊な役割があります。以下主なものを紹介します。 %c … カレントディレクトリの最後のディレクトリ名。 %m … マシン名 %n … 自分のアカウント名(もしくは %USER ) %/ … 現在ユーザーが作業しているディレクトリ %# … スーパーユーザー(root)ならば「#」、一般ユーザーならば「>」を表示 %t … am/pm 表記による、時:分:秒の表示 %T … 24時間表記による、時:分:秒の表示 %! … ヒストリ番号を表示(もしくは \!、 %h) 加えて、表示方法も変更することができます。 %S … 反転表示開始 (%s で終了) %B … 太字(bold)表示開始(%b で終了) %U … 下線(アンダーライン)表示開始(%u で終了) エスケープシーケンスを利用することで、プロンプトの一部分に色をつけることもできます。
%{と%}で囲んだ中に\e(\33、^[)で始めて記述します。
%{ … これより非表示文字
%} … ここまで非表示文字
実際の記述方法は、以下のようになります。 \33[属性;文字の色;背景の色m \33[0m 以上の内容を組み合わせて使用すると、次のようになります。
$ set prompt="%{\e[01;34m%}%n@%m:%c[\!]%{\e[0m%} "
hoge@cygwin:~[1] _
tcshは、プロンプトの文字数を考慮して、コマンドがウィンドウの端まで行った時 の折り返しを行います。 エスケープシーケンスは実際に表示されるわけではないので、%{と%}で囲んで 非表示文字であることを示さなければ、動作がおかしくなるので注意しましょう。 お気に入りのプロンプトが決定したら、~/.cshrc に記述することで以降反映 されます。 ファイルのリスト補間を行うbash では [TAB] キーを押すことで、ファイルの一覧を表示してくれます。 これはキー入力する上で非常に便利な機能です。
$ /(TAB を押す)
bin/ cygwin.bat~ etc/ lib/ setup.log tmp/ var/
cygwin.bat* cygwin.ico home/ sbin/ setup.log.full usr/
tcsh は標準では一覧を表示することはできません。~/.cshrc に以下の一文を追加 しましょう。 set autolist 逆に、ファイル補間をしたくないファイルがある場合は、 ~/.cshrc に以下の一文を追加しましょう。(例:*.o、*~、*.aux、*.log ファイル) set fignore = (.o \~ .aux .log) これにより、「Ctrl-D」や「TAB」 によるファイル補完が制限されます。
$ ls
hoge.c hoge.o hoge.c~
$ emacs ho (Ctrl-D を押す)
$ emacs hoge.c _
ファイルのリスト補間を行う(csh の場合)csh では ESC キーを押すことでファイル名の補完ができます。 set filec
$ ls
hoge.c test.c a.out
$ emacs ho (ESC を押す)
$ emacs hoge.c _
入力名修正tcsh では [TAB] キーを押すことで、ファイル名・ディレクトリ名 を修正してくれる方法もあります。
$ cd /usr/locla/bin (TAB を押す)
$ cd /usr/local/bin/ _
これを行うには、~/.cshrc に以下の一文を追加しましょう。 set autocorrect ヒストリの保存数変更ヒストリに保存するコマンドの最大数を指定するには、 ~/.cshrc に以下の一文を追加しましょう。(例:1000 個のコマンドを記憶) set history 1000 ただしこのままでは、一度シェルを終了すると全て忘れてしまいます。 これを防ぐには、以下の一文を ~/.cshrc に追加します。 set savehist=1000 これによりヒストリが ~/.history に書き込まれます。次回 シェルを 起動したときに ~/.history が読みこまれて、前回のヒストリ情報を引き続き使うことができます。 ただし、ターミナルを複数開く場合は、上記の方法ではターミナルごとに 上書きされてしまいます。 各ターミナルの全ヒストリを保存しておくには、先ほどの一文を以下のように 修正します。 set savehist = (1000 merge) これにより、全てのシェルのヒストリがマージされて保存されます。 Ctrl-D でログアウトしないようにする普通、補完や文字削除で Ctrl-D を多用するため、 デフォルト仕様である Ctrl-D でログアウトする機能は操作ミスでログアウトしてします 可能性があります。 Crtl-D でログアウトさせないためには、~/.cshrc に以下の一文を追加しましょう。 set ignoreeof
|