環境変数って何なのさ?

環境変数 (environment variabl) はアプリケーションの挙動に関する設定を保存するための仕組みです。具体的な使用例は後述します。使い方は簡単で、以下のようにします (bash を想定してます):

#LANG 環境変数を設定します
LANG=ja_JP.UTF-8
export LANG

#まとめて書くこともできます
export LANG=ja_JP.UTF-8

#変数を参照します
echo $LANG
#実行結果
#ja_JP.UTF-8

#一時的に環境変数を設定します
#日本語が文字化けするので、英語版のマニュアルを参照したい
#というシチュエーションで便利です
LANG=C man man

#現在有効な環境変数の一覧を表示します
set

なお、環境変数をログインする度に手で入力することはありません。~/.bashrc や ~/.bash_profile といったファイルで export 文を上のように書いておけば良いのです。以下は .bashrc の例です。

PS1='`date "+%Y-%m-%d %H:%M:%S"`\[\033[32m\][\w]\[\033[0m\]\n\[\033[1;36m\]\u\[\033[1;33m\]@`hostname -s`-> \[\033[0m\]'

export LANG="ja_JP.UTF-8"

alias ls='ls --color -F'

push_path () {
  local new_path="$1"
  echo "$PATH" | grep "$new_path" > /dev/null || export PATH="$new_path:$PATH"
}
push_path "/usr/local/ruby-2.0.0-p353/bin"
unset push_path

よく使う環境変数を列挙しますので、覚えておくように!

PATH
コマンドサーチパスを設定します。コマンドラインで vi と入力すると /usr/bin/vi が起動しますが、これは PATH 環境変数に /usr/bin が含まれるからです。もし /usr/bin が含まれてないと、「コマンドが見つかりません」というエラーが発生します。
サーチパスは : (コロン) で区切ることで複数設定することができます。コマンドは左のパスから順番に検索され、最初に見つかったコマンドが起動されます。slackware ではこのように設定されています: /usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/qt/bin.

#使用例
which ruby
#実行結果
#/usr/bin/ruby
#サーチパスに /usr/local/ruby-2.0.0-p353/bin を追加します
export PATH=/usr/local/ruby-2.0.0-p353/bin:$PATH
which ruby
#実行結果
#/usr/local/ruby-2.0.0-p353/bin/ruby
LANG
ロケール (自然言語、通貨単位、日付の書式等の組み合わせ) を設定します。この環境変数を参照するアプリケーションは非常に多いです。この変数には ja_JP.UTF-8 を設定することがほとんどです。かつては ja_JP.eucJP が主流でした。ja_JP の部分がロケールの名前です (Slackware では、利用可能なロケールの定義ファイルが /usr/share/i18n/locales に置いてあります)。ja が言語名、JP が国名です。UTF-8 や eucJP はエンコード方式です。LANG=C にするとデフォルトの設定 (英語) になります。

#使用例
export LANG=ja_JP.UTF-8
EDITOR
どのテキストエディタを使用するか設定します。visudo や crontab コマンドが参照します。Slackware の標準のエディタは vi で、EDITOR 環境変数は未定義です。この変数には vim を設定しておくと良いと思います。debian は nano というエディタを採用しているようですが、こんなの邪道です!

#使用例
export EDITOR=/usr/bin/vim
PAGER
どのページャを使用するか設定します。ページャは長いテキストファイルを 1 画面ごとに分割して表示してくれる有り難いツールで、more, less, pg 等があります。ページャを使用するアプリケーションは、例えば man コマンドがあります。Slackware の標準のページャは less で、PAGER 環境変数は未定義です。PAGER=cat とすると苦しむことができます。

#使用例
export PAGER=/usr/bin/less
PS1
コマンドプロンプトを設定します。個性が現れるところです。8 Useful and Interesting Bash Prompts とかを参考にしてみてね。
SHELL
現在動作中のシェルのフルパスが自動的に設定されます。大抵の Linux システムは bash でしょうけど、OpenBSD は ksh (コーンシェル) がデフォルトのシェルだったと思います。「あれ、シェルの挙動がおかしい!」と思ったら、echo $SHELL を実行してみてね。
TERM
端末の種類を設定します。いじることはないと思いますが、カラー表示ができないとか、表示が乱れる時は確認してみましょう。普通は xterm-256color なのかな。gnu screen を使うと screen になります。

環境変数は他にも色々あります。アプリケーションの数だけあると言っても過言ではないでしょう!いえ、過言です。アプリケーションのマニュアルを色々読んでみてね。

(コウヅ)

広告

環境変数って何なのさ?」への1件のフィードバック

  1. ピンバック: 環境変数とシェル変数 | 魚を猫に預ける ブログ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中