makoto_blog

パパさん_blog

プログラミング勉強メモや雑記など。

Linux シェル(3) シェル変数・環境変数

シェル変数

mhaya@mhaya-V5-131:~$ echo $home

mhaya@mhaya-V5-131:~$ echo $HOME
/home/mhaya

大文字小文字は区別される。

シェルが利用する主な変数

  • HOME ホームディレクト
  • HOSTNAME ホスト名(コンピュータ名)
  • LANG ユーザーの言語処理方式
  • PATH コマンドを検索するディレクトリリス
  • PS1 プロンプトの書式
  • PWD カレントディレクトリのパス
  • UID ユーザーID
  • USER ユーザー名

変数への設定

変数名=値  

=の前後にスペースを入れないよ。

確認は

echo $変数名

環境変数

変数をエクスポートすると定義したシェルから起動したシェルや実行したコマンドから変数の内容を参照できる。
これが環境変数で、一方、1つのシェルの中だけで使える変数をシェル変数という。

環境変数の設定

export 変数名=値  
mhaya@mhaya-V5-131:~$ local=Local
mhaya@mhaya-V5-131:~$ var=a
mhaya@mhaya-V5-131:~$ export var
mhaya@mhaya-V5-131:~$ bash
mhaya@mhaya-V5-131:~$ echo $local

mhaya@mhaya-V5-131:~$ echo $var
a
mhaya@mhaya-V5-131:~$ var=b
mhaya@mhaya-V5-131:~$ exit
exit
mhaya@mhaya-V5-131:~$ echo $var
a
mhaya@mhaya-V5-131:~$ echo $local
Local
mhaya@mhaya-V5-131:~$ 

環境変数は新しいシェルやコマンドを起動した時にその値がコピーされ、デフォルトで利用できるようになる変数。
いわゆるグローバル変数とは違う。

変数を表示

環境変数を表示

printenv

または

env

シェル変数と環境変数をすべて表示

set

変数一覧を検索したい

検索したいと思ったらどうするのでしょう。テキストエディタに貼り付けるの?
やってみた。

  1. vim を起動
  2. :r!env を実行
  3. /でnで普通に検索

vim でコマンドを実行するのは、:!コマンド で出来、
vim でコマンドの結果を挿入するには、:!rコマンド です。