Lubuntu シェル変数と環境変数

シェル変数

シェルでは、他のプログラム言語と同様に、変数を定義して使用することが出来ます。
つまり、プログラム言語としての側面を持ちあわせていると言えます。
シェル変数とは、シェル内で定義して、そのシェル内でしか参照出来ない変数です。
変数の命名には、アルファベット、数字、アンダーバーを使えますが、先頭を数字にすることは出来ません。また、大文字と小文字は区別されます。

シェル変数の定義

シェル変数の定義は

変数名=値

という形で行われます。イコールの前後にスペースがあってはいけません。また、代入する値にスペースがある場合は、ダブルクォーテーションでくくる必要があります。
シェル変数には、型がなくすべての値を文字列として扱います。

シェル変数の参照

シェル変数の参照には

$変数名 という形で、変数名の頭に$を付けます。

また、変数を中括弧{ }でくくって記述できます。

${変数名}

値を設定していない変数は空の値が設定されているものと解釈されます。

(例)
user@Dimension-2400C:~$ kakutyousi=opus
user@Dimension-2400C:~$ echo $kakutyousi
opus

また、シェル変数はファイルパスの一部としても使用出来ます。

ファイル名の色の謎.png

##余談#################################
ここで気になることが1つあります、2つだけ他のファイルと色が違います。
ls -l で詳細を確認してみます。
Delirioフォルダー詳細.png今まで、意図的にパーミッションを変えたことが無いのに、ほとんどのファイルのotherのアクセス権がゼロに変わっています。思い当たるふしは、音楽ファイルをファイルマネージャでスマホにコピーしようとドラッグした際に移動になってしまったので、コピーし戻したことがあります。
実際に、再現してみます。
すると、今回はちゃんと移動ではなくコピーされました。コピー先のパーミッションは、所有者のみアクセス可になっています。この辺の挙動がよく分かっていないので今後、勉強していきます。
################余談終わり################

環境変数

前述のように、シェル変数は、シェル内で定義してそのシェル内でしか使えない変数です。それに対して、シェルから他のプログラムを起動した時にも使える変数を環境変数と言います。環境変数の値は、各プログラムから参照することが出来ます。

シェル変数と環境変数

多くの環境変数がシェルの設定ファイルで予め設定されています。
環境変数だけを確認するためには、printenvコマンドを使用します。

printenv実行.png

ユーザーが環境変数を作成するには、exportコマンドを使います。最初から環境変数として作成する方法と、シェル変数として作成してあとから格上げする方法があります。

export 変数名=値

または

変数名=値
export 変数名

デフォルトで設定されている環境変数は、安易な変更・削除は行わないようにしましょう。

それでは、よく使われる環境変数について少し見てみます。

PATH

コマンドサーチパスを設定しています。プロンプトから例えばgeditコマンドを入力してgeditが起動されるのは、PATH環境変数に/usr/binが設定されていて、/usr/bin/geditを見に行くからです。下に現在、私の環境で設定されているPATH環境変数の中身を表示しましたが、これはprintenvを実行してインライン検索でPATHを検索したものです。このようにパスが:(コロン)で区切って設定されています。もちろんユーザー側で、必要なパスを追記することもよく行われます。

PATH=/home/user/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

LANG

ロケール (自然言語、通貨単位、日付の書式等の組み合わせ) を設定ししています。非常に多くのアプリケーションがこの環境変数を参照しています。この変数には ja_JP.UTF-8 を設定することがほとんどです。かつては ja_JP.eucJP が主流でした。ja_JP の部分がロケールの名前です

現在の環境を見るとやはり

user@Dimension-2400C:~$ echo $LANG
ja_JP.UTF-8

となっています。

投稿者: linux32bit

2017/04よりlubuntuをDimension2400cにインストール。 Linuxの勉強を始める。覚書として学習記録をつづる。

コメントを残す