[Linux]: PATH(パス)の確認と設定方法

■パス(PATH)はとは? 簡単に(楽に)コマンドを実行するために、 パスの設定をする事を『 パスを通す 』と言います。 たとえば /usr/local/pgsql/bin/psql というコマンドを psql とだけ入力して実行させるとします。 この場合 psql というコマンドがある場所が /u…

■パス(PATH)はとは? 簡単に(楽に)コマンドを実行するために、
パスの設定をする事を『 パスを通す 』と言います。
たとえば /usr/local/pgsql/bin/psql というコマンドを psql とだけ入力して実行させるとします。

この場合 psql というコマンドがある場所が /usr/local/pgsql/bin です。
つまり、/usr/local/pgsql/bin にパスを通す(環境変数 PATH で指定)事で、
【 psql 】と入力するだけで、実行することが出来るようになります。

■パスを確認するには?
コマンド【 echo $PATH 】(もしくは、env | grep PATH)でどこにパス(PATH)が通っているか確認できます。

$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/vine/bin:/home/zem/bin

パスは『 : 』(コロン)で区切られています。

 ■パスの優先度は?
パスの優先度は左の方が『 優先 』されます。
コマンド『 echo $PATH 』あるいは『 env | grep PATH 』で出てきた左が優先されます。
たとえば、/usr/local/bin/perl と /usr/bin/perl があるとします。
環境変数 PATH で /usr/local/bin の方が優先されると、
実際に実行されるコマンドは /usr/local/bin/perl となります。

■パスの設定方法 環境変数 $PATH を書き換えます。
たとえば /usr/local/pgsql/bin へパスを通したい場合

$ PATH=$PATH:/usr/local/pgsql/bin $ export PATH

このように入力します。
『 $PATH 』とは “現時点で環境変数 PATH に設定されているパス名”です。
これまで “/usr/local/bin” にパスが通っている場合は、”/usr/local/bin” に加えて
“/usr/local/bin/pgsql”がパスに加えられます。
複数のパスを加えるためには : で区切って指定します。
/usr/local/mysql/bin も一緒に指定する場合は次のようになります。

$ PATH=$PATH:/usr/local/pgsql/bin:/usr/local/mysql/bin $
export PATH

 ちなみに、コマンド『 export PATH 』は必須。
環境変数 PATH をエクスポート(出力)=環境変数を設定するという意味があります。
コマンドは『 export PATH=$PATH:/foo 』のように1行に纏めてもかまいません。

■ログインする度に自動で設定するには?
毎回ログインする度にパスの指定をするのは面倒なものです。
その場合、ホームディレクトリ配下にある .bash_profile を編集します。
.bash_profile の中に PATH=$PATH:~ と export の記述をするだけで、
毎回ログインするたびに自動で環境変数が設定されます。
環境変数の設定をサーバ内の全ユーザに対して指定したい場合は
/etc/profile ファイルを開き、末尾に PATH=$PATH:~ と export を追加する方法が確実でしょう。

各ユーザの .bash_profile の中には、ログイン後に /etc/profile
ファイルを読み込むような記述があるからです。

[Apache][.htaccess]mod_rewrite で特定の IP に対してアクセス制限する方法

mod_rewrite を使って特定の IP のみアクセスさせる、もしくはアクセスさせないようにするには以下のようにする。

アクセスを拒否

RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html

アクセスを許可

RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html

[DoCoMo]着うたフルコンテンツを機種移動できるようにする方法

HTTPレスポンスのヘッダを書き換えるために、Apacheにheadersモジュールが組み込まれている事を確認して下さい。

もし組み込まれていない場合は、以下の方法で組み込んで下さい。

1.Apacheの再コンパイル
Apache2のソースディレクトリで

 $ ./configure --enable-headers=yes
 $ su
 # make
 # make install

これでOKです。

2.適用箇所への設定
たとえば、携帯電話向けコンテンツでUIMバインドにするのかUIM+機種バインドにするのかを変更したい場合、デフォルトはUIM+機種バインドですが、UIMバインドにしてみます。
コンテンツが保存されてあるディレクトリの.htaccessを編集します。

Header add X-Dcm-Move "0001"

これでUIMバインドになりました。ちなみに、UIM+機種バインドは

Header add X-Dcm-Move "0000"

着うたフルのコンテンツであれば

AddType application/x-dcm-fullmusic .3gp

を追記しておくと、よいと思います。

Header add X-Dcm-Move "0001"
AddType application/x-dcm-fullmusic .3gp

他にも、携帯電話コンテンツだと以下のヘッダが使えます。
■故障時コンテンツファイル移行ヘッダ

Header add X-Dcm-Pdtf "0"(移行不可)
Header add X-Dcm-Pdtf "1"(移行可能)

[Linux] telnetで自動ログアウト回避方法

telnetでログインして作業している場合,ある程度時間が経つと,自動的にログアウトしてしまうことがあります。
デフォルトの設定では時間が経ってから操作しようとするとログアウトしてしまうようになっています。

~/.bash_profile(~/.bashrc)ファイルに次の1行を加える。
unset autologout  ← この行を加える

また、.bash_profileファイルは編集せずに、コマンドラインで「unset autologout」を入力すれば、自動ログアウトを禁止したい時にだけ有効にできます。