Linuxで使用される主な環境変数・PATH、HOME、PS1・printenv、set、declare
2020/08/24
Linuxで設定される主な環境変数
環境変数とシェル変数の設定方法、代入方法について
Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説
Linuxのbashで変数に値を追加する方法を多数紹介。+=や""を使う方法など
の記事では、環境変数、シェル変数の設定の方法や、代入の方法、一覧表示の方法などを解説しました。
この記事では Linuxでよく使用されている主な環境変数について解説を行います。
なお、上記で紹介した記事でも書いていますが、設定されている環境変数は「printenv」コマンドで一覧表示することができます。
(環境変数、シェル変数は、「set」コマンド、「declare」コマンドでも一覧表示させることができます。)
「printenv」コマンドの使い方
「printenv」コマンドはパラメータなしで実行すると、設定されている環境変数の一覧を表示します。
1 2 3 4 5 6 7 |
$ printenv XDG_SESSION_ID=2 HOSTNAME=localhost.localdomain TERM=xterm SHELL=/bin/bash : 以下略 |
また、下記のように環境変数をパラメータとして指定して実行すると、指定した環境変数の内容を表示します。
1 2 |
$ printenv HOME /home/admin |
Linuxに設定されている主な環境変数
Linuxでよく利用される環境変数を記載しておきます。
PATH
コマンドやプログラムを検索するディレクトリのリストが保存されています。
コマンドやプログラムを実行する際、この「PATH」に設定されているディレクトリにプログラムを設置しておくと、パスを指定せずにコマンド単体で実行することができます。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/admin/.local/bin:/home/admin/bin |
PWD
カレントディレクトリが保存されています。
カレントディレクトリですので、「echo $PWD
」で表示される値はその都度異なります。
HOSTNAME
ホスト名が保存されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $HOSTNAME localhost.localdomain |
USER
現在のコマンドを実行しているユーザ名が設定されています。
コマンドを実行しているユーザ名ですので、「echo $USER
」で表示される値はその都度異なります。
ちなみに、ログインしているユーザを切り替える「su
」コマンドでは USER変数は変更されませんが、ログインし直す「-
」付きの「su -
」コマンドを実行すると USER変数は変更されます。
LC_ALL
地域ごとの言語や数値の表記、通過に関する規定、日付や時刻の書式に関する規定などを設定する地域情報(ロケール)が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $LC_ALL ja_JP.UTF-8 |
LANG
地域ごとの言語や数値の表記、通過に関する規定、日付や時刻の書式に関する規定などを設定する地域情報(ロケール)が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $LANG ja_JP.UTF-8 |
地域情報(ロケール)として設定できる主な内容は下記のものがあります。
LC_CTYPE:文字の種類やその比較・分類の規定
LC_NUMERIC:数値の書式に関する規定
LC_TIME:日付や時刻に関する規定
LC_COLLATE:文字の参照や整列に関する規定
LC_MONETARY:通過に関する規定
LC_MESSAGES:メッセージ表示に使用する言語
LC_ALLも LANGも上記のロケールをまとめて設定することが出来る環境変数です。
LC_ALLと LANGの違いは、LC_ALLを設定している場合は上記の個別のロケールの設定をしていても LC_ALLの設定を優先しますが、LANGの場合は LANGの設定をデフォルトとして扱いますが、個別のロケールの設定をしている場合は個別の設定を優先します。
なお、LC_ALLと LANGの両方を設定している場合は、LC_ALLを優先します。
また、設定されているロケールの情報を確認するには「locale」コマンドを使用します。
1 2 3 4 5 6 7 |
$ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" : : LC_ALL= |
HOME
コマンドを実行しているユーザのホームディレクトリが設定されています。
環境、実行ユーザによって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $HOME /home/admin |
LOGNAME
ログインシェルのユーザ名が設定されています。
USERと同じく、「echo $LOGNSME
」で表示される値はその都度異なります。
ちなみに、ログインしているユーザを切り替える「su
」コマンドでは USER変数は変更されませんが、ログインし直す「-
」付きの「su -
」コマンドを実行すると USER変数は変更されます。
PS1
コマンドプロンプトの表示文字列が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $PS1 [\u@\h \W]\$ |
これは、「[admin@localhost ~]$ echo $PS1
」の「$
」より前の部分をどのように表示するかを設定してある情報です。
PS2
複数行のコマンド入力する際に表示されるコマンドプロンプトの値が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $PS2 > |
HISTSIZE
コマンド履歴の最大値が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $HISTSIZE 1000 |
HISTFILE
コマンド履歴を格納するファイルが設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $HISTFILE /home/admin/.bash_history |
表示されるファイルには、「history」コマンドで表示されるコマンドの履歴が保存されています。
また、この「.bash_history」はユーザごとに用意されており、ユーザのホームディレクトリ(上記の例では「/home/admin/」)に置いてあります。
HISTFILESIZE
HISTFILEに保存する履歴の数が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $HISTFILESIZE 1000 |
TERM
端末の種類が設定されています。
環境によって異なりますが、具体的には下記のような値が設定されています。
1 2 |
$ echo $TERM xterm |
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
Linuxでファイルの内容を表示するcatコマンドの解説。more、lessで代替も
catはLinuxのコマンドで、本来の機能はファイルを連結だが、ファイルの内容を表示する機能のために使うことが多く使用頻度が高い。同種の機能のmore、less、tacコマンドについても解説。
-
Linuxのbashで変数に値を追加する方法を多数紹介。+=や””を使う方法など
Linuxのbashで変数に値を代入する方法を解説。bashの変数の処理は柔軟で様々な方法を採れる。デリミタなしで値を追加する方法などを解説。
-
makewhatis、mandbコマンドでLinuxのオンラインマニュアル索引情報を更新
Linuxコマンドのオンラインマニュアルを検索するwhatis、aproposなどのコマンドはwhatisデータベースを対象に検索する。このデータベースを更新するmandb、makewhatisコマンドを解説。
-
Linuxの wcコマンドでファイルの行数、単語数、バイト数、文字数をカウントする
Linuxの行数、単語数、文字数、バイト数をカウントする「wc」コマンドの使い方の解説。find、lsと組み合わせてファイル数のカウント方法などを解説。
-
Linuxのnlは行番号を付与してファイルの内容を表示するコマンド
Linuxでファイルを表示する際に行番号を付与するにはcatコマンドにnオプションを使うことでも可能。しかし、行番号を付与する専門のnlコマンドがある。ここではその使い方を詳細に解説。
-
Linuxのbashのコマンドの履歴をhistoryで確認し!、↓、↑で実行する
Linuxで実行したコマンドの履歴を確認するコマンド「history」。「history」の使い方、設定の変更、設定ファイルの設置場所について解説。「!番号」「!文字列」「!?文字列」など。
-
Linuxのsplitコマンドは指定したサイズにファイルを分割する
Linuxのsplitコマンドはファイルを分割する機能を有する。分割するサイズ、行数、ファイル数を指定するオプションや、分割後のファイルの接尾辞を指定するオプションなどがある。
-
less、moreはページャー、ファイルの中身を表示するLinuxのコマンド
Linuxにはコマンドで実行した結果が長い場合、1画面ごとに区切って表示するコマンドが用意されている。それがページャーと呼ばれるmore、lessだ。この使い方を解説。
-
Linuxのファイル表示・結合catの逆処理のtac、revコマンドの解説
Linuxにtac、revというコマンドがある。catの逆の処理なのだが、tacは最終行から逆に表示し、revは行末の文字から逆に表示をすることを解説しつつその使い方について詳しく解説をする。
-
Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説
Linuxでコマンドを設置するパスの設定情報である環境変数「PATH」の確認方法と環境変数「PATH」に新しいパスを追加する方法の解説。Linuxのシェルでの変数の扱い方についての解説も。