今回は、自作したコマンド・スクリプトにPATH(パス)を通す方法について調べてみました。
パスを通すとは
まず、パスを通すとはなんだっていう話ですが、簡単にいうと“自作コマンドやスクリプトをファイル名だけで実行させらせる様にする”ことです。
例えば、bashでは、lsコマンド・cdコマンドなどを使いますが、本来なら“/usr/bin/ls”, “/usr/bin/cd” と入力しなければなりません。それをいちいちフルパスをいちいち入力するのが大変なのでパスが通されているわけです。
パスが通っているディレクトリはこうやって確認します。そう、PATHという環境変数に格納されています。
1 2 3 |
[root@test 18:32:18 work]# echo ${PATH} /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@test 18:32:19 work]# |
つまりPATH変数に自分のスクリプトを置いているパスを追加するだけでOK!
printenvコマンドを使用しても確認できます。(出力が多いのでgrepで絞った方がみやすいと思います)
実現させたいこと
今回実現させるために実行することを箇条書きにするとこんな感じ
・権限の修正とファイルの編集
・現在のシェルで使える様にパスを通す
・再起動やログインをし直しても使える様に恒久対応をとる
・test_scriptだけ入力してファイルが実行されるかを確認
最終目標
1 2 |
[root@test 18:55:07 bin]# test_command test_scriptコマンドが実行されました!!! |
実現手順
実行するためのファイルを作成
というわけでまずはテスト用のスクリプトファイルを作成します。とは言ってもただechoで文字を出力するだけです。
まずは、テスト用に今回使用するディレクトリ“/usr/local/work/bin”を作りましょう!
みなさんが実現したいディレクトリに置き換えてください。
1 2 3 |
#pオプションでworkとかがなくても強制的に作ってくれます #パスを通す対象のディレクトリを作る mkdir -p /usr/local/work/bin/ |
次にテスト用のスクリプト(test_script)を作成します。中には適当にechoで文字が出力される様にします。
1 2 3 4 5 6 7 8 9 10 11 |
#テスト用のスクリプトを作成 touch /usr/local/work/bin/test_command chmod 755 /usr/local/work/bin/test_command vi /usr/local/work/bin/test_command # 適当名文字を入力させる。今回は下を入力 ============================== #!/bin/bash echo "test_scriptコマンドが実行されました!!!" ============================== |
今のシェルに反映させる
というわけで、現在のシェルでまずは使える様に設定します。
↓のコマンドを入力してください。
1 2 |
#PATH変数に今回テスト用のスクリプトを配置しているディレクトリを追加する export PATH="$PATH:/usr/local/work/bin" |
この設定は、ログインセッションが切れるとPATH変数がリセットされてしまうので次に紹介する恒久対応も必要です。
恒久対応
ログインセッションが切れてもPATH変数に対象のディレクトリを追加するには、bashrcへの記載も必須です。
まずは、サーバの全ユーザに適応する場合
1 2 3 4 |
#/etc/bashrcに記載することで、全ユーザに適用される export PATH="$PATH:/usr/local/work/bin" >> /etc/bashrc #または、export PATH="$PATH:/usr/local/work/bin"を上記ファイルに追記 |
特定のユーザのみが使用できる様にする
1 2 3 4 |
#対象ユーザの~/.bashrcに記載することで、該当ユーザのみに適用される export PATH="$PATH:/usr/local/work/bin" >> ~/.bashrc #または、export PATH="$PATH:/usr/local/work/bin"を上記ファイルに追記 |
これで、ログインセッションが切れたとしても問題ありません。
さいごに
今回は、bashでパスを通す方法についてお知らせしました。
パスを通すとスクリプトファイル名を他のコマンドと打ち間違いやすい名前にしまうとオペレーションミスの可能性が高くなってしまうので気を付けないといけません。
ただ、便利なことは間違い無いので是非試してみてください。
では〜〜〜
コメント