エイリアスとは、あるコマンドを別の名前で実行できるようにする機能である。
長いコマンドや、複雑なコマンドをエイリアスしておくとコマンドが楽に打ち込めるようになる。
\!* という記号をエイリアスの定義の中に含めておくと、そこにエイリアスされたコマンドの引数をあてはめて実行することができる。
ただし、この記号を使用する時は'(シングルクォート)で囲むことが必要である。
(下の実行例を参照)
% alias vi1 vi test1.c % vi1 ← vi test1.c が実行される % alias vi vi test2.c % vi ← vi test2.c が実行される % alias ← alias の定義をリストアップする vi1 vi test1.c vi vi test2.c % vi test3.c ← vi test2.c test3.c が実行される % \vi test3.c ← vi test3.c が実行される % unalias vi ← vi のエイリアスを取り消す % alias ccm 'cc \!* -lm' % ccm test2.c ← cc test2.c -lm が実行される % ccm test3.c ← cc test3.c -lm が実行される % alias a alias ← alias を a だけでも実行できるようになる
上の例のように、すでにあるコマンドと同じ名前(ここではvi)でエイリアスをすることができるが、その場合には元のコマンドが使用できなくなるので注意が必要である。
エイリアスの定義は、シェルを終ると(ログアウトしたり、ターミナルを消したり)すると失われてしまう。
毎回、ログインした時に必ず使うエイリアスは ~/.cshrc ファイルに設定しておきたいエイリアスを書き込んでおけば良い。
書き込んだ後、ログアウトしてログインしなおせば、それらのエイリアスが有効になる。
ログアウトするのが面倒な時は source コマンドを打ちこんでおけば、すぐにエイリアスが有効になる。
以下は ~/.cshrc ファイルにエイリアスの設定をしておく一例である。
alias cdma cd ~/maya/projects/default/
シェルでは過去に実行したコマンドをヒストリーとして、いくつか覚えている。
このヒストリーが覚えているコマンドを再利用すると、効率的にコマンドを入力できる。
!(コマンドの頭文字), !(コマンド番号), !! などでは Tab を押すことによって実際に実行されるコマンド全体が表示される。
% history 10 vi test.c 11 cc test.c 12 a.out 13 vi tmp.c 14 cc tmp.c 15 a.out % !v ← vi tmp.c が実行される % !c ← cc tmp.c が実行される % !a ← a.out が実行される % !10 ← vi test.c が実行される % !11 ← cc test.c が実行される % !12 ← a.out が実行される % vi test1.c % !! ← vi test1.c が実行される % ^1^2 ← vi test2.c が実行される % ^test^tmp ← vi tmp2.c が実行される
% vi test1.c test2.c test3.c % cc !$ ← cc test3.c が実行される % cc !vi:2 ← cc test1.c が実行される % cc !vi:2 ← cc test2.c が実行される % cc !vi:3 ← cc test3.c が実行される % !vi:s/tmp/test/ ← vi test1.c tmp2.c tmp3.c が実行される % !vi:gs/test/tmp/ ← vi tmp1.c tmp2.c tmp3.c が実行される % mv !* dir ← vi tmp1.c tmp2.c tmp3.c をdirディレクトリに移動
ヒストリーによってシェルが覚えておいてくれるコマンドの個数(履歴数)は環境変数を設定することで変えることができる。 この設定も ~/.cshrc ファイルに書き込んでおけばターミナルを表示するたびに自動的に設定されるようになる。
% set history = 1000 ← 履歴数を1000に設定
シェルではコマンド・ファイル名などを自動的に補完することができる。
コマンドやディレクトリ・ファイル名を途中まで打ち込んで Tab キーを押すことによって、そのあとの名前をシェルが補ってくれる。
もし、複数の候補が存在する場合は、そのリストを表示する。
候補のリストが表示されない場合は、打ち込んだ頭文字のファイル・ディレクトリが存在しないということである。
Maya の画像ファイルのあるディレクトリへ移動するまでをコマンド補完の機能を使って実行してみよう。