UNIXの部屋 コマンド: alias


※空白区切りで AND 検索 (例:「ファイル 削除」)

コマンド alias コマンドの別名 (エイリアス) を設定する。シェルの内部コマンド。

alias コマンドを使うと、あるコマンドを別のコマンド名で登録して、長いコマンド名の短縮形を作ることができる。引数を処理することもできる。

*BSD で主に使用されている csh・tcsh と、Linux で使用されている bash では書き方が大きく異なるので注意すること。

csh・tcsh の場合
csh・tcsh の場合は以下のように設定する。
% alias ls "ls -lFA"
% alias du "du -k"
% alias memo "emacs ~/memo.txt"
% alias f "find / -name '\!*' -print"

sh・bash の場合
sh・bash の場合は、「=」で結ぶ。
% alias ls="ls -lFA"
% alias du="du -k"

alias の一時的な無効化
csh・tcsh・sh・bash とも、コマンドの前に `\' を付けることで、一時的にエイリアスを解除できる。また、/bin/ls などとフルパスで書くことで一時的に無効にすることもできる。
% alias ls "ls -lFA" (csh・tcsh の場合)
% alias ls="ls -lFA" (sh・bash の場合)
% ls (ls -lFA と同じ)
% \ls (alias が無効。普通の ls と同じ)
% /bin/ls (alias が無効。普通の ls と同じ)
% ls (ls -lFA と同じ)

tcsh の引数処理
tcsh では 以下のように引数を渡すことができる。これは引数全体を find に渡す例。
% alias em "emacs \!*"
% em a.txt b.txt
→ emacs a.txt b.txt と同じ
続いて、1個目の引数・2個目の引数、と指定した場合。
% alias fx "find \!:1 -type f | xargs grep \!:2 /dev/null"
% fx . abc
→ find . -type f | xargs grep abc /dev/null と同じ
bash の alias での引数処理はどうやってもできないので、function で関数を作ろう。

bash の拡張機能
bash の場合、alias で設定した文字列の末尾にスペースを入れておくと、次の引数も alias 展開される。大変わかりづらいが、要はこういうことだ。
% alias MYCMD="cal"
% alias sudo="sudo -E"
→ 末尾に空白をいれない場合は…
% sudo MYCMD
→ cal に展開されない
% alias sudo="sudo -E "
→ 末尾に空白をいれておくと…
% sudo MYCMD
→ MYCMD が cal に展開される
sudo や nice コマンドのように、第2引数にコマンド名を渡すものに設定すると便利かもしれない。

エイリアスの削除 (解除)
エイリアスを削除 (解除) するには unalias を使う。alias コマンドを引数なしで実行すると、現在設定されているエイリアスの一覧を表示する。

普通 alias の設定は、~/.cshrc や ~/.profile などに記述しておく。こうすることで、ログインすると自動的に alias が有効になる。

読み方 alias (Cシェルコマンド) [えいりあす]

よく [ありえす] [あらいあす] とか読む人がいるがそれは間違い。 [えいりあす] が正しい。/etc/aliases は [えいりあしず]。[ありゃーせず] と発音するのは、きっと変だと思われる。


頑張って書いたおすすめコンテンツ!