Linux Tips

コマンドの場所を調べるには

北浦訓行
2001/9/6

 コマンドが置かれているディレクトリを調べるには、whichコマンドを使用する。

$ which vedit
/usr/vine/bin/vedit

 whichコマンドは、環境変数のPATHに設定されているディレクトリ順に調べ、最初に見つかったコマンドを表示する。PATHに設定されている全ディレクトリを調べるには、-aオプションを使用する。

$ which -a vedit
/usr/vine/bin/vedit
~/bin/vedit ←ユーザーのホームディレクトリ下にあるbinにもveditが見つかった

 コマンド(プログラム)のディレクトリを知るにはでは、typeというbashの組み込みコマンドを紹介している。このtypeコマンドとwhichコマンドにはどのような違いがあるのだろうか。

 whichコマンドは、コマンドのフルパスを表示するプログラムであるのに対して、typeコマンドは、指定したコマンドがbashでどのように解釈されるかを調べるコマンドだ。例えば、エイリアスされたlsコマンドをwhichとtypeの両方で調べてみると、whichコマンドでは「lsはエイリアスされていて、オリジナルのlsは/bin/lsにある」と表示されるが、typeコマンドでは、「lsは`ls -F --color=auto'とエイリアスされている」と表示される。

$ which ls
alias ls='ls -F --color=auto'
        /bin/ls
$ type ls
ls is aliased to `ls -F --color=auto'

 さらに、両者の違いはbashの組み込みコマンドを調べたときに顕著になる。例えば、cdコマンドの場合は、以下のようになる。

$ which cd
/usr/bin/which: no cd in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/vine/bin:
/home/nori/bin) ←cdはbashの組み込みコマンドなので、PATHに定義されたディレクトリには存在しない
$ type cd
cd is a shell builtin ←cdはbashの組み込みコマンドである

Linux Tips Index



 Linux Squareフォーラム Linux Tipsカテゴリ別インデックス
インストール/RPM ブート/ブートローダ
ファイル操作 環境設定
ユーザー管理 コンソール/ターミナル
X Window System セキュリティ
トラブルシューティング 他OS関係
ネットワーク ハードウェア
Webサーバ Samba
GNOME KDE
OpenOffice.org エミュレータ
ソフトウェア そのほか/FAQ
全Tips公開順インデックス Linux Tips月間ランキング
Linux Squareフォーラム全記事インデックス

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間