Linuxの環境変数を一覧表示するには、printenvコマンドを使用します。このコマンドはすべての環境変数を表示しますが、lessコマンドにパイプすることで検索可能な結果を得ることができます。または、grepを使用して特定の環境変数を確認します。
Linuxでは、環境変数は重要な値と設定を保持しています。スクリプト、アプリケーション、シェルはこれらの値を読み取って、多くの場合自身を構成するか、動作を制御します。以下では、ターミナルで環境変数を表示する方法と、リストの解釈方法をいくつか紹介します。
Linuxの環境変数とは?
変数は私たちのために値を保持します。プロセスが値を知る必要がある場合、リスト内の名前で変数を検索し、そこから値を読み取ります。変数名は変更できませんが、値は変更できます。環境変数は、他の変数と同様に、名前と値の組み合わせです。名前は一意であり、変数が作成されるときに設定され、環境変数の有効期間中は存続します。
テスト用のコンピュータにはそれぞれ平均50の環境変数が存在します。
システム環境変数を変更することはあまりありませんが、必要に応じて変更できます。たとえば、Bashシェルコマンド履歴キャッシュのサイズを増やすことができます。".bashrc"ファイルで$HISTSIZE
環境変数の値を編集して、記憶されるコマンド数の新しい上限を設定できます。
これは便利ですが、頻繁に行うことではありません。環境変数は、デフォルトのままにするか、一度変更して忘れてしまうことがほとんどです。頻繁に変更するものではありません。
それにもかかわらず、コンピュータで定義および使用されている環境変数をチェックする方法を知っておくことは価値があります。環境変数をターミナルウィンドウに出力すると、その値を確認でき、Linuxエクスペリエンスのどの側面がこれらのバックグラウンド値によって制御されているかがわかります。
環境変数の値を表示する方法
echo
を使用して、環境変数に格納されている値を確認できます。これを行うには、環境変数の名前を事前に知っておく必要があります。
echo $HOME
echo $USER
Linuxのすべての環境変数の名前と値を表示するために一般的に使用される方法は2つあります。env
コマンドとprintenv
コマンドです。
printenv
コマンドは、これを行うための公式な方法です。このコマンドは、この目的のために特別に記述されました。env
コマンドにはまったく別の目的があります。
env
は、環境変数の一時的なユーザー指定の値でアプリケーションを実行するために使用されます。これらは実際の格納値を上書きし、アプリケーションが変更された環境で実行されることを許可します。コマンドラインパラメータなしでenv
を呼び出すと、デフォルトのアクションとして環境変数が一覧表示されます。
正しく呼び出されていないツールの副作用に依存するのではなく、その作業用に設計されたツールを使用する必要があります。そのため、例ではprintenv
を使用して環境変数をチェックします。
printenvを使用して環境変数を一覧表示する方法
printenv
コマンドを使用すると、環境変数を表示でき、実際には非常に簡単です。オプションはごくわずかです。--version
オプションを使用して、コンピュータのバージョン番号を確認できます。また、--help
コマンドを使用して、これら2つのコマンドラインオプションとその他1つのコマンドラインオプションの簡単な説明を確認できます。
もう1つのオプションは-0
(ヌル終端)オプションです。通常、printenv
は、各行の末尾に改行文字を追加することで、1行に1つの環境変数を一覧表示します。-0
オプションは、その改行文字をヌルバイトに置き換えます。改行文字を必要としない別のアプリケーションに出力をパイプする場合、このオプションを使用します。
printenv -0
ターミナルウィンドウで-0
オプションを使用すると、出力は押しつぶされて、理解不能なテキストの壁になります。
この形式で一覧表示された環境変数を理解することは事実上不可能です。-0
オプションを使用する必要があることはまれでしょう。これを削除して、もう一度試してみましょう。
printenv
出力は1行に1つの環境変数で印刷されます。慣例により、環境変数の名前には常に大文字が使用されます。変数名の直後に等号"=
"があり、その後に環境変数が設定されている値が続きます。
出力は依然として多いので、環境変数をless
にパイプした方が簡単かもしれません。
printenv | less
これにより、環境変数のリストをスクロールしたり、リストを検索したりできます。
興味のある環境変数について何か知っている場合は、grep
を使用して候補を見つけることができます。たとえば、"display"という単語を含む環境変数があるとします。次のようにリストを検索できます。
printenv | grep DISPLAY
一般的な環境変数
異なるLinuxコンピュータのデフォルトの環境変数は、さまざまなディストリビューション、デスクトップ環境、シェルの管理者の好みによって異なります。そのため、Linuxデバイスで環境変数を確認すると、さまざまな結果が表示される場合があります。
GNOMEデスクトップ環境を使用しているLinuxコンピュータで見つかる可能性が高い、より一般的な環境変数をいくつか紹介します。
- BASHOPTS: bashが起動されたときに使用されたコマンドラインオプションのリスト。
- BASH_VERSION: bashのバージョン。
- COLUMNS: 列単位のターミナルの幅。
- DIRSTACK:
pushd
コマンドとpopd
コマンドで使用されるディレクトリのスタック。 - HISTFILESIZE: 履歴ファイルに書き込むことができるコマンド履歴の最大行数。
- HISTSIZE: メモリに格納できるコマンド履歴の最大行数。この数を越えると、以前に記憶されたコマンドはメモリで上書きされます。ターミナルウィンドウを閉じると、コマンド履歴が履歴ファイルに書き込まれます。
- HOME: 現在のユーザーのホームディレクトリ。
- HOSTNAME: コンピュータの名前。
- IFS: ユーザー入力を解析するために使用される内部フィールドセパレータ。デフォルト値はスペースです。
- LANG: 文字エンコーディングを含む現在の言語とローカライズ設定。
- LS_COLORS: lsからの出力に色を追加するために使用されるコードを定義します。
- MAIL: 現在のユーザーのLinuxメールボックスへのパス。
- OLDPWD: 以前の作業ディレクトリ。
- PS1: プライマリコマンドプロンプトの定義。ターミナルウィンドウのプロンプトの外観を定義します。
- PATH: シェルにコマンドを入力すると、一致するコマンドまたはアプリケーションを検索するために順番に検索されるディレクトリのコロン区切りのリスト。
- PWD: 現在の作業ディレクトリ。
- SHELL: デフォルトのシェルの名前。
- TERM: シェルを実行するときにエミュレートされるターミナルのタイプ。
- UID: 現在のユーザーのユーザー識別子。
- USER: 現在のユーザー。
- _: 最近実行されたコマンド。
printenv
を使用してこれをリストすると、常にprintenv
になります。
環境の検査
すべての環境変数を一覧表示するには、printenv
を使用します。出力をgrep
に通して結果をフィルタリングし、echo
を使用して特定の既知の環境変数の値を印刷します。
コメントする