FreeBSD QandA 703

FreeBSD QandA

Q. シェルに csh を使っているのですが、プロンプトの表示をもっと便利にで
   きませんか?

A. csh のデフォルト設定では、一般ユーザの場合は `% ' が、スーパユーザ
   の場合は `# ' がコマンドプロンプトに表示されますが、シェル変数 `prompt'
   を設定することでこの表示を変更できます。

   以下にいくつかの例をあげておきますので、これらのうちいずれかを ~/.cshrc
   に記述しておくとよいでしょう。

   ・プロンプトに自分のログイン名を表示させる。

       set prompt = "${user}% "

   ・プロンプトにホスト名を表示させる。

       set prompt = "`hostname`% "

     ホスト名がFQDN (ドメイン名を含むホスト名) で設定されている時にドメイ
     ン名を含まない形にしたいときは次のようにする事もできます。

       set prompt = "`hostname -s`% "

   ・プロンプトに現在のイベント番号を表示させる。

       set prompt = "{\!}% "

   ・プロンプトに現在のワーキングディレクトリを表示させる。

     これが csh の難点です。csh では tcsh などと異なり、現在のワーキング
     ディレクトリを表すシェル変数 `cwd' が変数 `prompt' と呼応しません。
     そこで、通常は cd をエイリアスすることで実現します。

       alias cd 'cd \!*; set prompt = "`pwd`% "'
       set prompt = "`pwd`% "

   以上の例を組み合わせる事もできます。

   ・プロンプトにログイン名とホスト名と現在のイベント番号を表示させる。

       set prompt = "${user}@`hostname`{\!}% "

   ・プロンプトにホスト名と現在のワーキングディレクトリ、イベント番号を表
     示させる。

       alias cd 'cd \!*; set prompt = "`hostname -s`:`pwd`{!}% "'
       set prompt = "`hostname -s`:`pwd`{\!}% "

   これらはあくまで一例であって、他にも方法はいろいろあります。より詳しい
   事が知りたいときや応用がしたいときは csh(1) を参照して下さい。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。