UNIX を使い始めてしばらくすると、よく使うコマンドをもっと簡単に入力したいと 思うようになってきます。たとえば、ls コマンドを打つときに、 いちいち ls -F などとするのはとても面倒だし、間違いの元です。 (全く苦にならないと言う人は、以下は読み飛ばしてもらって結構です)
UNIX のシステムでは、このような要求に答えるべく、 自分の好みに合わせて環境を設定する方法が提供されています。
このページでは、皆さんが最もよく使うであろう、 ターボCシェル(コマンドを打ち込んだり、実行ファイルを実行したりする窓)の 環境設定について説明します。
長いコマンドを毎回入力するのは大変です。こんなとき、エイリアスを作っておけば、 短いコマンドを入力するだけで長いコマンドを実行することが出来るようになります。 では、どうすればエイリアスを追加できるのでしょう?
コマンドラインから ls -a と入力してみて下さい、作った覚えのないファイル名が たくさん出てきます(下記参照)。このように先頭に . の付いているファイルは、 環境設定ファイルと呼ばれ、様々なコマンドや環境を個人の好みに合わせて設定する 為のものです。
この様に環境設定ファイルはたくさんあるのですが、とりあえずはターボCシェルの 環境設定ファイルである .cshrc という ファイルを開いて、一番下の行に下記のエイリアスを追加してみましょう (以前からあった内容は決して消してはいけません)。x0000% ls -a ./ .cshrc .mh_profile .rhosts temp@ ../ .emacs .mwmrc .cshrc work .Xauthority .forward .netscape .xsession* www .Xdefaults .history .newsrc Mail .canna .login .profile
難しそうに見えますが、内容はとても簡単です。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
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)どうですか、上のように修正できたでしょうか?
あとは、コマンドラインから
x0000% source .cshrcと打ち込むことで新しいパスが有効になります。
これで今度からは実行ファイルを実行するときに
x0000% ./a.outとしなくても(もちろん、上記のように打っても一向に構わないのですが)
x0000% a.outと、実行ファイル名を入力するだけで実行することが出来るようになりました。