【PATH】bashでパスを通して、ファイル名のみで実行させる

今回は、自作したコマンド・スクリプトにPATH(パス)を通す方法について調べてみました。

 

パスを通すとは

まず、パスを通すとはなんだっていう話ですが、簡単にいうと“自作コマンドやスクリプトをファイル名だけで実行させらせる様にする”ことです。

例えば、bashでは、lsコマンドcdコマンドなどを使いますが、本来なら“/usr/bin/ls”, “/usr/bin/cd” と入力しなければなりません。それをいちいちフルパスをいちいち入力するのが大変なのでパスが通されているわけです。

 

パスが通っているディレクトリはこうやって確認します。そう、PATHという環境変数に格納されています。

つまりPATH変数に自分のスクリプトを置いているパスを追加するだけでOK!

printenvコマンドを使用しても確認できます。(出力が多いのでgrepで絞った方がみやすいと思います)

実現させたいこと

今回実現させるために実行することを箇条書きにするとこんな感じ

・test_scriptという名前のコマンドを/usr/local/work/bin(テスト用に作ったディレクトリ)に作成
・権限の修正とファイルの編集
・現在のシェルで使える様にパスを通す
・再起動やログインをし直しても使える様に恒久対応をとる
・test_scriptだけ入力してファイルが実行されるかを確認

最終目標

実現手順

実行するためのファイルを作成

というわけでまずはテスト用のスクリプトファイルを作成します。とは言ってもただechoで文字を出力するだけです。

まずは、テスト用に今回使用するディレクトリ“/usr/local/work/bin”を作りましょう!

みなさんが実現したいディレクトリに置き換えてください。

次にテスト用のスクリプト(test_script)を作成します。中には適当にechoで文字が出力される様にします。

 

今のシェルに反映させる

というわけで、現在のシェルでまずは使える様に設定します。

↓のコマンドを入力してください。

 

 

この設定は、ログインセッションが切れるとPATH変数がリセットされてしまうので次に紹介する恒久対応も必要です。

 

恒久対応

ログインセッションが切れてもPATH変数に対象のディレクトリを追加するには、bashrcへの記載も必須です。

まずは、サーバの全ユーザに適応する場合

特定のユーザのみが使用できる様にする

 

これで、ログインセッションが切れたとしても問題ありません。

さいごに

今回は、bashでパスを通す方法についてお知らせしました。

パスを通すとスクリプトファイル名を他のコマンドと打ち間違いやすい名前にしまうとオペレーションミスの可能性が高くなってしまうので気を付けないといけません。

ただ、便利なことは間違い無いので是非試してみてください。

 

では〜〜〜

コメント