Diff of UNIX/コマンド/シェル・シェル組み込み/alias


TITLE:alias - コマンドの別名定義
#navi(UNIX/コマンド)
#contentsx

alias コマンドでコマンドの別名を定義することができます。
長いコマンドを省略して実行するのに利用したりします。
解除するには unalias コマンドを使用します。

*csh, tcsh 系 [#h080f3b0]

 % alias ls "ls -F"
のようにします。このようにすることで、
ls を実行しただけで、ls -F が実行されることになります。
 % alias
と実行すると、現在の設定をみることができます。~/.cshrc である程度設定されているはずです。
 alias smail 'emacs -e mh-smail &'
 alias rmail 'emacs -e mh-rmail &'
 alias emacs 'emacs \!* &'
 alias ls 'ls -F'
のように .cshrc に書いておくと便利かもしれません。
追記した場合は、
 % source ~/.cshrc
と実行して有効化します。

smail と実行するだけで、メールを送れるようになり、
さらに rmail と実行するだけで、メールを読むことができるようになります。
また、emacs を実行する際にも & をつける手間が省けます。
\!* を指定すると、引数がそこに代入されることになります。
 % emacs test.txt
として実行すると
 % emacs test.txt &
と実行したことと同等になります。

コマンド名とエイリアスを同名にしてしまうと、そのコマンドは、
そのエイリアスと入れ替わってしますので、注意が必要です。
さきほどの emacs もそうですが、例えば
 % alias kterm 'kterm -sb \!* &' 
 % alias sterm 'kterm -km sjis' 
と定義すると
sterm = kterm -sb -km sjis & 
ということになります。

通常の kterm を実行できなくなってしまうわけなので、
そのような場合は、
 % \kterm
のように、一時的にエイリアスアウトするか、
 % unalias kterm
のように unalias コマンドでエイリアスを解除してから、
 % kterm
と実行する必要があります。
エイリアスアウトは、
 % alias rm 'rm -i'
のようにしているときによく利用したりします。( -i は確認オプション )
 % alias sterm '\kterm -km sjis' 
のようにしておくこともできます。
*sh, bash 系 [#y576fcaf]

sh, bash 系の場合は、
 % alias ls="ls -F"
のように = が必要になります。

csh, tcsh の \!* の代わりは
 % function emacs() { command emacs $@ & }
のようになると思います。
 % alias emacs='emacs $@ &'
ではうまくいきませんでした。

エイリアスアウトは csh, tcsh と同様にできるはずです。
 % \emacs
のように。
function アウトは・・・できないと思います。
なのでこの辺は tcsh のほうが上だと思います。


#navi(UNIX/コマンド,,footer,footer)
#navi(UNIX/コマンド,,footer)
xrea