UNIX/Linux の環境変数って何ですか?
UNIX/Linux の環境変数の種類
環境変数とは、アプリケーションの挙動に関する設定を保存するための仕組みです。
$ echo $OSTYPE
とコマンドを実行すると、現在使用中のOS(オペレーティングシステム)の値を表示します。
僕の場合は
linux-gnu
と表示されました。
環境変数は
システムにより定義されるもの
ユーザが任意に定義するもの
があります。
環境変数に関連するコマンド
printenv コマンド
環境変数の一覧を表示
export コマンド
-n 指定した環境変数を削除します。
-p エクスポートされている環境変数のリストを表示します。
env コマンド
-0 表示する行の終端を改行ではなく値が 0 のバイトにします。
-i 環境変数が無い状態でプログラムを実行します。
-u 変数名 指定した変数名が環境変数の一覧にある場合は、それを削除します。
オプションなしでコマンドを実行すると定義されている環境変数が表示されます。
よく使う環境変数
環境変数 PATH
PATH で設定されているディレクトリ内の実行ファイルは、 /usr/bin/ls などと絶対パスで指定しなくても、自動で実行してくれます。
PATH が設定されていなければ ls というコマンドを実行する場合、 /usr/bin/ls と入力する必要がありますが、 PATH が設定されているので ls だけでコマンドが実行されます。
環境変数 PATH の内容は
$ echo $PATH
で確認できます。
僕の場合は
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
でした。
一時的に、PATH を追加する時は次のようにします。
$ export PATH=$PATH:/hoge/hogehoge/
完全に設定する場合は ホームディレクトリにある .bashrc に以下の行を追加します。
export PATH=$PATH:/hoge/hogehoge01:/hoge/hoge2:......
$ source ~/.bashrc
で追加した PATH を反映させます。
環境変数 LANG
環境変数 LANG は、ロケールと呼ばれる言語、通貨単位、日付の書式などが設定されます。
↓
ja_JP.UTF-8 <--- 僕の場合 と表示されました。
この ja_JP の部分がロケールです。ja が言語名、 JP が国名です。 UTF-8 が文字のエンコード方式になります。
シェル
あなたが使っている シェルを調べるときには
$ echo $SHELL
で、使っているシェルがわかります。
Ubuntu では、一般的に bash というシェルが使われています。
シェル( shell )と は、以前にも説明しましたが、ユーザーとOSのやり取りを行うプログラム(インターフェイスの役割を担っていてコマンドを受け付けたり、結果を出力する)の事で、沢山の種類のシェルがあります。
- sh( Bシェル ) 初期のUNIXの標準シェル
- csh( Cシェル ) BSD系のUNIXの標準シェル
- tcsh( TCシェル ) Cシェルの上位互換のあるシェル
- ksh( Kシェル ) SVR系のUNIXの標準シェル
- Bash GNUプロジェクトのシェル
など多くのシェルがあります。
シェルってなんだっけ? と思った方は
→ UNIX/Linuxのシェルとカーネルとは? や
→ 標準入力 標準出力とリダイレクト、パイプのはなし
の記事を読んでください。
Linuxの常識 ディレクトリについて
あなたがふだん使っているコマンドはどこに保存されているかわかりますか?
コマンドが保存されているディレクトリ
/bin | 汎用(基本)コマンド |
/sbin | 管理者用コマンド |
/usr/bin | アプリケーションで利用する汎用(基本)コマンド |
/usr/sbin | アプリケーションで利用する管理者用コマンド |
/usr/local/bin | 追加したソフトやパッケージ用のコマンド |
一般的には上記のディレクトリに実行ファイルが保存されていますので、覚えてください。
環境変数 PATH が設定されていなければ /bin/ls と入力しないと、 ls コマンドは実行されません。
普段よく使うコマンドのディレクトリは、長い path を入力しないでもいいように環境変数 PATH に設定するようにします。