Guides, HowTos and Tips for Technology Geeks - The Geek Stuff

LinuxやFreeBSD、Mac OS Xで提供されているシェルは管理業務やリモートログインしながらの作業に向いている。コマンドの使い方に詳しくなればなるほどシェルは効率よく作業をするためには欠かせないプラットフォームとなる。

UNIX系のプラットフォームを扱いはじめた開発者や情シスの新人、管理者が最初に覚えておきたいシェルの機能のひとつはエイリアス(alias)だ。エイリアスはコマンドに対して別の名前をつけるような機能で、たとえばよく使うコマンドにデフォルトで利用するオプションを設定したり、短縮入力を可能にするために利用される。

Unix Bash Alias Tutorial - Handle Alias Command Like Jennifer Garnerにおいてエイリアスの簡単な説明と設定例が紹介されている。エイリアスを知るには記事も短くてわかりやすい。紹介されているエイリアスの機能と実行例を簡単にまとめると次のとおり。

エイリアスの特徴
実行コマンドに対して別の名前をつける機能。オプションも含めて設定することが可能。長いコマンドを短くしたり、オプションも含めた実行にほかの名前をつける場合などに利用する。
bashであればalias name='unix command...'のようにalias組み込みコマンドを実行することでエイリアスを設定する。nameがエイリアス名(別名)になる。=の左右には空白をいれないで記述する。
一度実行してもシェルを終了するとエイリアスも無効になる。毎回有効になるようにするには~/.bashrcや~/.zshrc、~/.tcshrcなどシェル設定ファイルに記述しておく。なおsh系とcsh系ではaliasの設定方法が異なるので注意。
エイリアスの実行例や設定例(bashの場合) 内容
alias 設定されているエイリアスを一覧表示。
alias aliasname 指定した名前のエイリアスの設定内容を表示。
\aliasname エイリアスが設定されていたとしてもそれを無視してコマンドを実行。
unalias aliasname 指定したエイリアスを解除。
alias Vim="vim `ls -t | head -1`" 最後の編集したファイルをvimで開く。
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5" サブディレクトリも含めカレントディレクトリ以下にあるファイルサイズの大きい方から5つ分を表示。
alias psg="ps -aux | grep bash" bashのプロセスを表示。
alias ls='ls -aF --color=always' 隠れファイルの表示と色付けオプションをls(1)につねに設定する(Mac OS XやFreeBSDならalias ls='ls -aFGw')。
alias ll='ls -l' ls -lの短縮コマンド名。
alias hcl='history -c; clear' 履歴の消去と画面のクリア。
alias cp="cp -iv" インタラクティブにコピーする。
alias rm="rm -i" インタラクティブに削除する。
alias mv="mv -iv" インタラクティブにリネームする。
alias grep="grep -i" grep(1)で大文字と小文字を無視する。
alias x="exit" exit(1)の短縮コマンド。
alias cls='clear;ls' 画面のクリアとls(1)の実行。
alias dus='df -h' df -hの短縮コマンド。
alias ..='cd ..' 1つ上のディレクトリへ移動。
alias ...='cd ../..' 2つ上のディレクトリへ移動。
alias rm_fire_lock='/bin/rm .mozilla/firefox/NAME.default/.parentlock' Firefoxロックファイルの削除。NAMEは適宜環境に合わせて変更。
alias server_name='ssh 192.168.1.1 -l tom' sshログインの短縮コマンドその1。
alias ser2='ssh www.dbserver.com -l kgf' sshログインの短縮コマンドその2。
alias cvl='cvs -d :ext:username@cvs.server.com:/usr/local/cvsroot' CVSサーバ利用短縮コマンド。
alias umnt='umount /mnt/cdrom' CDのアンマウント。

エイリアスと同じようなことはシェル関数やコマンドとしてのシェルスクリプトの作成でも実現できる。どれも同じようなことができるが、利用できる機能の違いなど違いもある。それぞれの適した利用シーンをまとめると次のとおり。

機能 推奨される利用シーン
エイリアス インタラクティブに使用するケース。コマンドや組み込みコマンドと同じ名前にするケース。たとえばdfでdf -hにするなどはエイリアスの適用範囲。また、組み込みコマンドや環境変数の設定など、同じシェルで実行しなければ意味がないケースなど。cdコマンドや環境変数の設定は外部のコマンドで実行しても実行しているシェルには反映されない。1行で実行できるようなもの。
シェル関数 インタラクティブに使用するケース。エイリアスで処理したいものの処理が複数行にまたがるようなケースでは、シェル関数としてまとめた方が便利。
コマンド インタラクティブな使用のみならず、ほかのシェルスクリプトなどからも実行するケース。シェル起動時に読み込まれる設定ファイルに記載したエイリアスやシェル関数はシェルスクリプトからは利用できない。処理が複数行にまたがり、そしてシェル関数である必要がないケースなど。多くの処理を記述でき、対象とする種類のシェル以外のシェルやアプリケーションからも利用できる。