【実践Linux10】コマンドのパスについて パスの表示を行うwhichコマンドの使い方

linux

linuxは様々なコマンドを用いて操作しますが、コマンドの実態もコードが書かれたプログラムです。つまりコードが書かれたファイルということですので、/binや/sbinといったプログラムを保存するためのディレクトリに配置されているということです。

通常、コマンドを実行するときにその実態であるプログラムがどこに配置されているかを気にする必要はありません。PATHという環境変数にコマンドのプログラムが配置されているディレクトリが設定されているからです。環境変数に設定されたディレクトリ配下にあるプログラムはわざわざパスを指定しなくても実行できるので、普段はコマンドのプログラムの場所を気にせず、コマンド名だけで実行できるのです。

コマンドのパスを表示したい場合はwhichコマンドを使います。whichコマンドはPATH環境変数に含まれているディレクトリ配下に配置されているコマンドのパスを表示することができます。

書式

which コマンド名

実習 whichコマンド

以下のコマンドを実行してcatコマンドのプログラムのパスを確認してみましょう。

$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/linuxtext/bin
(ユーザが参照できるパスを確認)
$ which cat
/bin/cat
(cat コマンドは/bin 配下に配置されているのがわかる)

上記ではcatというプログラムが/binディレクトリ配下に配置されていることが確認できました。

コマンドが存在するディレクトリがPATH環境変数に含まれていない場合は、whichコマンドはエラーを返します。たとえば管理者権限が必要なコマンドへのパスは基本的には一般ユーザでは設定されていないため、whichコマンドでは確認できません。

プロフィール

プロフィール
コードラボJP

大学卒業後SEに就職、現在は退職しフリーランスとして活動中。
『初心者でも挫折せずに一人でプログラミングを学べる』をモットーに、コードラボJPを開設
お問い合わせ等はcodelabsjp@gmail.comまで

コードラボJPをフォローする
タイトルとURLをコピーしました