シェル変数/環境変数

May 14, 2018

シェル変数と環境変数

シェル変数: 変数を定義したシェルプロセスのみで利用可能
環境変数: 変数を定義したシェル上及びそのシェルで実行されるプログラム (シェルの子プロセス) にも引き継がれる

  • よく利用される環境変数 -
環境変数 説明
PATH コマンドやプログラムを検索するディレクトリリスト
PWD カレントディレクトリ
HOSTNAME ホスト名
USER 現在のユーザー
LANG ロケール
HOME カレントユーザーのホームディレクトリ
LOGNAME ログインシェルのユーザー名
PS1 プロンプトの表示文字列
PS2 複数行にわたる入力時のプロンプト
HISTSIZE コマンド履歴の最大値
HISTFILE コマンド履歴を格納するファイル
HISTFILESIZE HISTFILE に保存する履歴数
TERM 端末の種類
$ echo $TERM  
xterm-256color  
$ echo $HISTFILESIZE  
1000  
$ echo $HISTFILE  
/home/ec2-user/.bash_history  
$ echo $LANG  
en_US.UTF-8  
$ echo $USER  
ec2-user  
$ echo $HOSTNAME  
ip-10-1-11-92  
$ echo $PWD  
/home/ec2-user  
$ echo $PATH  
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin  

変数を削除するのは unset コマンド。

$ test='THis is a test'  
$ echo $test  
THis is a test  
$ unset test  
$ echo $test  

環境変数 PATH

プロンプトが表示されている状態でコマンドを入力すると、シェルはそのコマンドを実行する。
コマンドには内部コマンドと外部コマンドがある。

内部コマンド: シェル自体に組み込まれているもの
外部コマンド: 独立したプログラムとして存在するもの

外部コマンドの場合は、シェルはそのコマンドがどこにあるかを、環境変数 PATH に指定されたディレクトリから探す。

$ echo $PATH  
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin  
$ PATH=$PATH:/opt/bin  
$ echo $PATH  
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/opt/bin  

 © 2023, Dealing with Ambiguity