はじめに
Linux の環境変数は、システム上でプロセスがどのように実行されるかに影響を与えるキーと値のペアです。これらの変数を管理する方法を理解することは、初心者から上級管理者まで、すべての Linux ユーザーにとって重要です。
この実験では、既存の環境変数を表示する方法、独自の一時変数を作成する方法、PATH のような重要なシステム変数を変更する方法、およびログインセッションをまたいで変更を永続化する方法を学びます。これらのスキルは Linux 環境管理の基礎を形成し、Linux の使用体験をカスタマイズし、環境関連の問題をトラブルシューティングするのに役立ちます。
この実験の終了時には、Linux で環境変数を効果的に管理するために必要なコマンドと技術の実践的な経験を積むことができます。
環境変数の表示
環境変数は、システムやアプリケーションが使用できる情報を格納します。このステップでは、Linux システム上の既存の環境変数を表示する方法を学びます。
まず、実験用の演習に専用のディレクトリを作成しましょう。
mkdir -p ~/project/env_lab
このディレクトリに移動します。
cd ~/project/env_lab
現在設定されているすべての環境変数を表示するには、env コマンドを使用します。
env
このコマンドは、現在のセッション内のすべての環境変数のリストを表示します。出力は次のようになります。
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
HOME=/home/labex
USER=labex
SHELL=/bin/zsh
...
各行には、変数名の後に等号 (=) が続き、その後に値が表示されます。これらの変数は、環境のさまざまな側面を定義しています。
特定の環境変数を表示するには、変数名の前にドルル記号 ($) を付けて echo コマンドを使用できます。たとえば、ホームディレクトリの変数の値を表示するには、次のようにします。
echo $HOME
これにより、次のような内容が表示されます。
/home/labex
同様に、現在のユーザーを表示するには、次のようにします。
echo $USER
期待される出力は次のとおりです。
labex
一時的な環境変数の設定
環境変数は、現在のシェルセッションで一時的に設定することができます。これは、システムに永続的な変更を加えることなく、特定のタスクで変数を使用する必要がある場合に便利です。
一時的な環境変数を設定するには、export コマンドの後に変数名と値を指定します。
export TEST_VAR="Hello, Linux"
これにより、値が "Hello, Linux" の TEST_VAR という名前の変数が作成されます。変数が正しく設定されたことを確認するには、echo を使用します。
echo $TEST_VAR
次のように表示されるはずです。
Hello, Linux
一度に複数の変数を設定することもできます。
export VAR1="First" VAR2="Second"
両方の変数を確認します。
echo $VAR1
echo $VAR2
期待される出力は次のとおりです。
First
Second
すべての環境変数の中から新しく設定した変数を表示するには、次のコマンドを実行します。
env | grep VAR
これにより、出力がフィルタリングされ、"VAR" を含む行のみが表示されます。例えば、
TEST_VAR=Hello, Linux
VAR1=First
VAR2=Second
この方法で作成された変数は、現在のシェルセッションでのみ存在することに注意してください。新しいターミナルウィンドウやタブを開くと、これらの変数は利用できなくなります。
PATH 変数の理解と変更
PATH 環境変数は、Linux において最も重要な変数の 1 つです。この変数は、コマンドを入力したときにシステムが実行可能ファイルを検索する場所を指定します。
まず、現在の PATH を確認しましょう。
echo $PATH
コロンで区切られたディレクトリのリストが表示され、次のような内容になります。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
コマンドを入力すると、システムはこれらのディレクトリを順番に検索し、一致する実行可能ファイルが見つかるまで続けます。
次に、独自のスクリプト用の新しいディレクトリを作成し、それを PATH に追加しましょう。
mkdir -p ~/project/env_lab/bin
このディレクトリを PATH の先頭に追加するには、次のコマンドを使用します。
export PATH=~/project/env_lab/bin:$PATH
これにより、新しいディレクトリが既存の PATH の先頭に追加されます。変更を確認します。
echo $PATH
これで、出力の先頭に新しいディレクトリが表示されるはずです。
/home/labex/project/env_lab/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
変更した PATH をテストするために、簡単なスクリプトを作成しましょう。
cd ~/project/env_lab/bin
nano エディタを使用して hello という名前のファイルを作成します。
nano hello
ファイルに次の内容を追加します。
#!/bin/bash
echo "Hello from my custom script!"
Ctrl+O を押してファイルを保存し、Enter を押し、Ctrl+X でエディタを終了します。
スクリプトを実行可能にします。
chmod +x hello
これで、どのディレクトリからでも、スクリプトの名前を入力するだけで実行できるはずです。
cd ~/project/env_lab
hello
次のように表示されるはずです。
Hello from my custom script!
これは、PATH 変数がシステムが実行可能ファイルを見つけるのにどのように役立つか、および独自のスクリプトディレクトリを含めるようにカスタマイズできることを示しています。
コマンドとスクリプトでの環境変数の使用
環境変数は、コマンドやスクリプト内で様々な方法で使用することができます。このステップでは、環境変数を効果的に利用する方法を学びます。
まず、あなたの名前を持つ新しい環境変数を作成しましょう。
export MY_NAME="Linux User"
この変数は、コマンド内で $ を前に付けることで使用できます。
echo "Hello, $MY_NAME"
これにより、次のように出力されるはずです。
Hello, Linux User
環境変数は他のコマンドと一緒にも使用できます。たとえば、変数名を使ってディレクトリを作成しましょう。
mkdir -p ~/project/env_lab/$MY_NAME
ディレクトリが作成されたことを確認します。
ls -la ~/project/env_lab/
出力に "Linux User" という名前のディレクトリが表示されるはずです。
次に、環境変数を使用する簡単なスクリプトを作成しましょう。
cd ~/project/env_lab
nano greet.sh
以下の内容を追加します。
#!/bin/bash
## 既存の環境変数を使用する
echo "Hello, $MY_NAME"
echo "Your home directory is $HOME"
## スクリプトに渡される変数を使用する
echo "The current time and date is $(date)"
## ローカル変数を作成する
local_var="This is a local variable"
echo $local_var
## スクリプトから新しい変数をエクスポートする
export GREETING="Have a nice day!"
echo $GREETING
Ctrl+O、Enter、Ctrl+X で保存して終了します。
スクリプトを実行可能にします。
chmod +x greet.sh
スクリプトを実行します。
./greet.sh
次のような出力が表示されるはずです。
Hello, Linux User
Your home directory is /home/labex
The current time and date is Fri Aug 18 12:34:56 UTC 2023
This is a local variable
Have a nice day!
スクリプトを実行した後、GREETING 変数が環境に存在するか確認します。
echo $GREETING
次のように表示されるはずです。
Have a nice day!
これにより、スクリプトからエクスポートされた変数はシェル環境の一部になり、一方、スクリプト内のローカル変数はスクリプトが終了した後は保持されないことが確認できます。
環境変数を永続化する
これまで設定したすべての環境変数は、ターミナルセッションを閉じると失われます。このステップでは、環境変数をセッションをまたいで永続化する方法を学びます。
Linux では、.bashrc、.zshrc、.profile などのシェル起動ファイルを使用して、永続的な環境変数を設定します。この環境では zsh を使用しているので、.zshrc ファイルを使います。
まず、.zshrc ファイルを開きましょう。
nano ~/.zshrc
ファイルの末尾に移動し(Ctrl+End または矢印キーを使用)、次の行を追加します。
## Custom environment variables
export PERSIST_VAR="This variable will persist"
export PATH=$HOME/project/env_lab/bin:$PATH
Ctrl+O、Enter、Ctrl+X で保存して終了します。
ターミナルを閉じて再開することなくこれらの変更を適用するには、ファイルをソースします。
source ~/.zshrc
新しい変数が設定されたことを確認します。
echo $PERSIST_VAR
次のように表示されるはずです。
This variable will persist
これで、ターミナルを閉じて再開しても、この変数は引き続き利用可能です。
これを実証するために、新しいシェルセッションを開始することで、ターミナルを閉じて再開するのをシミュレートしましょう。
zsh
変数がまだ利用可能か確認します。
echo $PERSIST_VAR
引き続き次のように表示されるはずです。
This variable will persist
このシェルを終了して前のセッションに戻ります。
exit
このように、シェルの設定ファイルに環境変数を追加する方法で、システムにログインするたびにそれらが利用可能になります。
すべてのユーザーが利用できるシステム全体の環境変数を設定するには、管理者は /etc/profile.d/ 内のファイルに追加するか、/etc/environment を編集することができます。
まとめ
この実験では、Linux での環境変数の管理の基本を学びました。環境変数は、Linux の使用環境をカスタマイズし、アプリケーションの動作を制御するために不可欠です。
カバーされた主要な概念は以下の通りです。
envコマンドで環境変数を表示し、echo $VARIABLE_NAMEで特定の変数を表示するexportコマンドを使用して一時的な環境変数を設定する- Linux が実行可能プログラムを探す場所を制御するために、PATH 変数を理解して変更する
- コマンドやスクリプトで環境変数を使用して、コードをより柔軟にする
- シェルの設定ファイルに環境変数を追加して、それらを永続化する
これらのスキルは、Linux 環境管理の基礎を形成し、さまざまな Linux ディストリビューションで適用可能です。環境変数を理解することは、初心者から上級管理者や開発者まで、すべてのレベルの Linux ユーザーにとって重要です。
環境変数は、シェルの使用環境をカスタマイズし、アプリケーションの動作を制御し、より柔軟なスクリプトを作成するのに役立ちます。Linux の学習を続けるにつれて、ソフトウェア開発、システム管理、トラブルシューティングなどのより複雑なタスクにおいて、適切な環境管理がますます重要になることがわかるでしょう。



