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のnlは行番号を付与してファイルの内容を表示するコマンド
Linuxでファイルを表示する際に行番号を付与するにはcatコマンドにnオプションを使うことでも可能。しかし、行番号を付与する専門のnlコマンドがある。ここではその使い方を詳細に解説。
-
cat、less、head、tail、split、sedなどLinuxでファイル、文字列を操作するコマンド
Linuxでファイル、テキストを操作するコマンドのまとめ。cat、less、head、tail、split、tr、sedなど、ファイルを表示、置換、連結、分割などの各コマンドの使い方の紹介と詳細ページの紹介。
-
Linuxのファイル表示・結合catの逆処理のtac、revコマンドの解説
Linuxにtac、revというコマンドがある。catの逆の処理なのだが、tacは最終行から逆に表示し、revは行末の文字から逆に表示をすることを解説しつつその使い方について詳しく解説をする。
-
Linuxのマニュアルページ表示コマンドmanの解説
Linuxにはコマンド操作のオンラインマニュアルが用意されています。そのマニュアルを表示するコマンドが「man」です。「man」コマンドの使い方について解説します。
-
Linuxの wcコマンドでファイルの行数、単語数、バイト数、文字数をカウントする
Linuxの行数、単語数、文字数、バイト数をカウントする「wc」コマンドの使い方の解説。find、lsと組み合わせてファイル数のカウント方法などを解説。
-
UNIX・Linuxの sedコマンドで特定の文字列を置換する方法
UNIX・Linuxのコマンドで特定の文字列を置換する sedコマンドの使い方と、perlコマンドを使っての方法を解説しています。
-
makewhatis、mandbコマンドでLinuxのオンラインマニュアル索引情報を更新
Linuxコマンドのオンラインマニュアルを検索するwhatis、aproposなどのコマンドはwhatisデータベースを対象に検索する。このデータベースを更新するmandb、makewhatisコマンドを解説。
-
Linuxのsplitコマンドは指定したサイズにファイルを分割する
Linuxのsplitコマンドはファイルを分割する機能を有する。分割するサイズ、行数、ファイル数を指定するオプションや、分割後のファイルの接尾辞を指定するオプションなどがある。
-
Linux findコマンドを使ってn日前のファイルを削除する 3つの記述方法
作成からn日経ったファイルを削除したい、そんなときにはfindコマンドを使う。コマンドの記述の方法は3種類あり、それぞれを解説。書き易さもあるがスピードに大きく差がある記述方法もある。
-
Linuxのコマンドの情報を調べるwhich、whereis、whatis、apropos、man
Linuxのコマンドの実行ファイルやマニュアルの情報を確認するコマンドwhich、whereis、whatis、apropos、manの機能と使い方、似たところと違うところの紹介。