パス(PATH)が通っているとはどういうことなのか?
インフラチームの中川です。
今回の記事はコマンドの仕組みについてです。
サーバにログインしてログを見る、ファイルの内容を見る、サーバの状況を確認するなど
さまざまな実行結果を返すコマンドの仕組みを改めて調べてみました。
コマンドが実行できる理由を調べるとパスが通っているからと出てきます。
では、「パスが通っているから」とはどういうことなのでしょう。
パス(path)とは
- 目的のディレクトリまでの道筋・経路。
- コマンドを実行するファイルのある場所のこと。
「2.」のところにコマンドがプログラムとして置かれていて、コマンドとして認識・実行されているのです。
つまり、パスが通っている=対象ディレクトリにあるプログラムがコマンドとして設定されているということです。
確認してみる
lsコマンドを例にして確かめてみます。
- whichコマンドでlsコマンドを実行するプログラムを探す
- lsコマンドを実行して/bin/ディレクトリ内を一覧表示する
- /bin/lsを実行して/bin/ディレクトリ内を一覧表示する
実行結果は同じですね!
とはいえディレクトリに置かれているプログラムを探した上、フルパスで指定するのは手間がかかります。
あとlsコマンドの場合は、ファイル種類ごとに色を分けて表示する設定をしているため見やすいですね。
現在パスが設定されているディレクトリはechoコマンドで確認できます。
コマンドラインに入力して実行するコマンドは、特定のディレクトリから検索して実行されます。
その際に実行ファイルを探しに行くパスをコマンド検索パスといいます。
上記画像の環境変数PATHにあるディレクトリ内に設定されているものがコマンド検索パスです。
この場合、次のディレクトリが該当しますね。
- /usr/local/sbin
- /usr/local/bin
- /sbin
- /bin
- /usr/sbin
- /usr/bin
- /opt/aws/bin
- /root/bin
コマンドラインからコマンドを入力すると、コマンド検索パスから該当ファイルを探して
その実行結果を返しているということがパスが通っているに繋がるわけです。
終わりに
目的に合わせたコマンドやオプションはよく検索しますが、
どうしてその実行結果が返ってくるのかという仕組みまでを深くわかっていませんでした。
コマンドを覚えるのも勉強になりますがその仕組みを知っていくと
より興味や理解に繋がっていきました。
パスが通っている仕組みに関しては以上です。
読んでくださってありがとうございました!