|compphys|

● 環境設定をしよう

  1. エイリアスを作る
  2. コマンド・パスを追加しよう

UNIX を使い始めてしばらくすると、よく使うコマンドをもっと簡単に入力したいと 思うようになってきます。たとえば、ls コマンドを打つときに、 いちいち ls -F などとするのはとても面倒だし、間違いの元です。 (全く苦にならないと言う人は、以下は読み飛ばしてもらって結構です)

UNIX のシステムでは、このような要求に答えるべく、 自分の好みに合わせて環境を設定する方法が提供されています。

このページでは、皆さんが最もよく使うであろう、 ターボCシェル(コマンドを打ち込んだり、実行ファイルを実行したりする窓)の 環境設定について説明します。


  1. エイリアスを作る

    長いコマンドを毎回入力するのは大変です。こんなとき、エイリアスを作っておけば、 短いコマンドを入力するだけで長いコマンドを実行することが出来るようになります。 では、どうすればエイリアスを追加できるのでしょう?

    コマンドラインから ls -a と入力してみて下さい、作った覚えのないファイル名が たくさん出てきます(下記参照)。このように先頭に . の付いているファイルは、 環境設定ファイルと呼ばれ、様々なコマンドや環境を個人の好みに合わせて設定する 為のものです。

    x0000% ls -a
    ./            .cshrc        .mh_profile   .rhosts       temp@
    ../           .emacs        .mwmrc        .cshrc       work
    .Xauthority   .forward      .netscape    .xsession*     www
    .Xdefaults    .history      .newsrc       Mail
    .canna        .login        .profile      
    
    この様に環境設定ファイルはたくさんあるのですが、とりあえずはターボCシェルの 環境設定ファイルである .cshrc という ファイルを開いて、一番下の行に下記のエイリアスを追加してみましょう (以前からあった内容は決して消してはいけません)。
            alias cd            'cd \!*;echo $cwd'
            alias cp            'cp -i'
            alias mv            'mv -i'
            alias rm            'rm -i'
            alias la            'ls -al'
            alias ll            'ls -l'
            alias mule          'mule \!* &'
            alias ls            'ls -F'
    
    難しそうに見えますが、内容はとても簡単です。

    例えば、上の赤い文字の一番最後の行を見て下さい、 alias ls 'ls -F' と書かれています。 この行は、コマンドラインから ls と入力したときに自動的に ls -F を実行せよと 言う意味になります。つまり ls と入力するだけでディレクトリや実行ファイルを 区別して表示してくれるようになるのです。

    その他の alias は以下のような意味をもっています。各人で必要かどうかを判断して、自分の .cshrc に加えて下さい。

    alias cd 'cd \!*;echo $cwd' ディレクトリを変更するごとに、現在のディレクトリを表示する
    alias cp 'cp -i' 同じファイル名のファイルにコピーするとき、上書きして良いか聞く
    alias mv 'mv -i' ファイル名を変更するときに、上書きして良いか聞く
    alias rm 'rm -i' ファイルを削除するときに、念のため、本当に消して良いか聞く
    alias la 'ls -al' 全てのファイル(隠しファイル含む)を表示する。
    alias ll 'ls -l' ファイルの属性(上書き可か?、第3者が見られるかなど)を表示する
    alias mule 'mule \!* &' Mule を最初から background で起動する
    alias ls 'ls -F' ファイルを表示するとき、ディレクトリ、実行ファイルを区別して表示

    また、環境設定は、いったんログアウトして、再びログインした後に有効になります。変更した環境をすぐに使いたい時は、コマンドラインから 

     ap1 xx: source .cshrc
    
    と打ち込んで下さい。


  2. コマンドパスを追加する
    皆さんがコンパイルして作った実行ファイルを実行するときには、
    ./a.out
    と打ち込まなければいけません。なぜ、実行ファイル名である a.out の前に、 よけいな ./ が必要なのでしょう?

    UNIX の中では、いろいろな場所にコマンドや実行ファイルが収納されています。 そして、どこにどんなコマンドが収納されているか、 あらかじめ(個人の環境設定ファイルに)登録しておく必要があるのです。

    例えば、コマンドラインから which muleと 入力してみて下さい。 /usr/local/bin/mule と出てくると思います。 これは、mule というコマンドは /usr/local/bin/ というディレクトリに 格納されているという事を示しているのです。 そして、この/usr/local/bin/は皆さんのコマンドパスとしてあらかじめ 登録されているので、単に mule と打ち込むだけで mule が起動するように なっていたのです。

    逆に言えば、各人のホームディレクトリは、コマンドを収納するディレクトリとして 登録されていないために、わざわざ ./a.out などと書いて、コマンドの場所を UNIX に教える必要があったのです。

    それでは、各人のホームディレクトリーをコマンドパスに登録してみましょう。
    mule を立ちあげて .cshrc というファイルを開いて下さい。
    上から何行目かに、 set path で始まる次のような行があるはずです。これが コマンドパスを定義している文章です。

    set path=(/usr/local/bin /bin/posix /bin /usr/bin /usr/ucb /usr/bin/X11/3050/bin /usr/gnu/bin /usr/local/canna/bin /usr/local/bin/mh /usr/lib/splus /usr/lib/sas609)
    set path の右辺の括弧内の一番最初に
    "./ "(ピリオドとスラッシュとスペース)
    を追加して下さい、,(コンマ)ではありません。 このピリオドは「自分が今いるディレクトリー」を表しています。
    set path=(./ /usr/local/bin /bin/posix /bin /usr/bin /usr/ucb /usr/bin/X11/3050/bin /usr/gnu/bin /usr/local/canna/bin /usr/local/bin/mh /usr/lib/splus /usr/lib/sas609)
    どうですか、上のように修正できたでしょうか?
    念のために書いておきますが .cshrc の他の部分は 変更したり削除したりしないで下さい。
    ピリオド一つだけなので見かけはほとんど変化したように見えませんが、 これで各人のディレクトリーをコマンドパスに登録することが出来ました。

    あとは、コマンドラインから

    x0000% source .cshrc
    と打ち込むことで新しいパスが有効になります。

    これで今度からは実行ファイルを実行するときに

    x0000% ./a.out
    としなくても(もちろん、上記のように打っても一向に構わないのですが)
    x0000% a.out
    と、実行ファイル名を入力するだけで実行することが出来るようになりました。