Solaris や Linux, インターネットサーバに関するサイトです

シェル変数と環境変数の違い


シェル変数 (shell variable) : 現在利用しているシェル内でしか有効でない変数。他のプロセスには伝わらない。通常は小文字で書く。
環境変数 (environment variable) : 子シェルにも、その変数の内容を引き継ぐことができる変数。通常、大文字で書く。

通常、慣例として環境変数は大文字アルファベットから変数名を使用し、シェル変数は小文字アルファベットからなる文字列を使用する。しかし、機能的にはどちらの変数にどちらを使用しても構わない。また、アルファベット以外に _ を変数名に使うことができる。

C シェルの場合、シェル変数と環境変数が特別に対応しているものがある。
例えば、シェル変数 path を変更すると環境変数 PATH の内容も変更される。その他、user,term,home も同様。

シェル変数

シェル変数の表示


シェル変数をすべて表示する
$ set

指定したシェル変数を表示する
$ echo $<シェル変数名>

シェル変数の設定


シェルによって設定方法が異なる。
sh, ksh の場合

$ <シェル変数名>=<value> 
csh の場合

$ set <シェル変数名>=<value> 

シェル変数の削除


$ unset <シェル変数名>

環境変数

環境変数の表示


$ env

環境変数の設定


シェルによって環境変数の設定方法が異なる。
sh, ksh の場合

$ <シェル変数名>=<value>
$ export <シェル変数名> 
csh の場合

$ setenv <環境変数名> <value>

環境変数の削除

sh, ksh の場合

$ unset <環境変数名>
cshの場合

$ unsetenv <環境変数名>

PATH環境変数の設定


/usr/local/bin と /opt/sfw/bin を PATH 環境変数の先頭に追加する場合。
sh, ksh の場合

$ PATH=/usr/local/bin:/opt/sfw/bin:$PATH
$ export PATH 
※シェル変数 PATH を設定し、export コマンドで環境変数 PATH として再定義する。
csh の場合

$ set path=(/usr/local/bin /opt/sfw/bin $path)
※ csh の場合,シェル変数 path を変更すると環境変数 PATH も連動して変更される。

ユーザ環境設定ファイル

ユーザ環境設定ファイルの実行順序

sh,ksh の場合

/etc/profile
↓
~/.profile
csh の場合

/etc/.login
↓
~/.cshrc
↓
~/.login
bash の場合

/etc/profile
↓
~/.bash_profile
~/.bash_login
~/.profile
※´↓の順序で最初に検索されたファイルが実行される。
↓
~/.bashrc
tcsh の場合

/etc/.cshrc
↓
/etc/.login
↓
~/.tcshrc
~/.cshrc
※´△僚臀で最初に検索されたファイルが実行される。
↓
~/.login
↓
~/.cshdirs

ユーザ環境設定ファイルの作成


SMC でユーザを作成する場合と useradd コマンドでユーザを作成する場合で異なる。
SMC の場合

/etc/skel ディレクトリ下の
local.profile
local.cshrc
local.login
の 3 つのファイルがホームディレクトリ以下に
.profile
.cshrc
.login
としてコピーされる。
useradd の場合

/etc/skel ディレクトリ下のすべてのファイルがホームディレクトリ以下にコピーされる。
local.* ファイルが .* ファイルにリネームされてコピーされることはない。

よって予め、/etc/skel 下の local.* ファイルを .* ファイルにコピーしておく必要がある。

ユーザ環境設定ファイルを有効にする


.profile などのユーザ環境設定ファイルを変更した場合は、有効にする操作が必要。
sh, ksh の場合

$ . .profile
csh の場合

$ source .cshrc
$ rehash

このページへのコメント

Vnd7QW I loved your blog post.

0
Posted by awesome things! 2014年01月22日(水) 09:22:10 返信

ELOQ6X Im grateful for the blog post.

0
Posted by seo thing 2013年12月21日(土) 14:31:09 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

編集にはIDが必要です