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の wcコマンドでファイルの行数、単語数、バイト数、文字数をカウントする
Linuxの行数、単語数、文字数、バイト数をカウントする「wc」コマンドの使い方の解説。find、lsと組み合わせてファイル数のカウント方法などを解説。
-
Linuxのマニュアルページ表示コマンドmanの解説
Linuxにはコマンド操作のオンラインマニュアルが用意されています。そのマニュアルを表示するコマンドが「man」です。「man」コマンドの使い方について解説します。
-
Linuxのbashのコマンドの履歴をhistoryで確認し!、↓、↑で実行する
Linuxで実行したコマンドの履歴を確認するコマンド「history」。「history」の使い方、設定の変更、設定ファイルの設置場所について解説。「!番号」「!文字列」「!?文字列」など。
-
UNIX・Linuxの sedコマンドで特定の文字列を置換する方法
UNIX・Linuxのコマンドで特定の文字列を置換する sedコマンドの使い方と、perlコマンドを使っての方法を解説しています。
-
Linuxの環境変数でパスの設定をする方法とシェル変数の扱い方を解説
Linuxでコマンドを設置するパスの設定情報である環境変数「PATH」の確認方法と環境変数「PATH」に新しいパスを追加する方法の解説。Linuxのシェルでの変数の扱い方についての解説も。
-
Linuxのbashで変数に値を追加する方法を多数紹介。+=や””を使う方法など
Linuxのbashで変数に値を代入する方法を解説。bashの変数の処理は柔軟で様々な方法を採れる。デリミタなしで値を追加する方法などを解説。
-
Linuxのnlは行番号を付与してファイルの内容を表示するコマンド
Linuxでファイルを表示する際に行番号を付与するにはcatコマンドにnオプションを使うことでも可能。しかし、行番号を付与する専門のnlコマンドがある。ここではその使い方を詳細に解説。
-
Linux findコマンドを使ってn日前のファイルを削除する 3つの記述方法
作成からn日経ったファイルを削除したい、そんなときにはfindコマンドを使う。コマンドの記述の方法は3種類あり、それぞれを解説。書き易さもあるがスピードに大きく差がある記述方法もある。
-
Linuxのタイムスタンプはmtime、ctime、atimeの3種類。touchコマンドで更新する方法
Linuxのファイルのタイムスタンプにはmtime、ctime、atimeの3種類がある。その違いを詳細に解説しつつ、lsで表示するオプション、touchで更新するオプションを解説。
-
Linuxのheadコマンドは先頭行から、tailコマンドは最終行から指定した行を表示する
Linuxのhead、tailコマンドはファイルの先頭の一部、もしくは、末行の一部を表示するコマンド。行数や文字数で指定をする。tailはログを監視するためのオプションがある。