シェル

シェルとは

シェルはコマンドインタプリタで、標準入力またはファイルから読み込んだコマンド実行すします。

シェルの変数

シェルには環境を調整する変数としてシェル変数と環境変数があります。

変数説明
シェル変数現在のシェル内のみ有効。子プロセスに引き継がれない。
環境変数設定されたシェルとそのシェルで起動したプログラムが使用する変数。シェル変数をエクスポート宣言することで作成する。

環境変数

主な環境変数

変数名説明
PWDカレントディレクトリの絶対パス
PATHコマンド検索パス
HOMEユーザーのホームディレクトリ
PS1プロンプトを定義
HISTFILEコマンド履歴を格納するファイルを定義
LANG言語情報

環境変数の設定、削除

環境変数を確認

以下のコマンドで現在の環境変数を表示します。

printenv

環境変数を設定(現在のシェルセッションのみ)

  1. 環境変数を一時的に変更
export VAR_NAME=”new_value”

  1. 環境変数が設定されていることを確認。「env」コマンドでも環境変数を確認できます。
env | grep VAR_NAME

環境変数の変更(現在のシェルセッションのみ)

  1. 先ほどの環境変数「VAR_NAME」の値を変更します。
export VAR_NAME=”new_value_01″

  1. 環境変数の値が変更されていることを確認。
env | grep VAR_NAME

環境変数の削除

  1. 現在のシェルセッションから環境変数を削除します。
unset VAR_NAME

  1. 環境変数が削除されていることを確認。
env | grep VAR_NAME

環境変数を恒久的に設定

以下のように環境変数が設定している状態でも新しいログインシェルが作成され、環境変数は消えてしまいます。


ログインシェルで環境変数を使用する場合「~/.bash_profile」や「.bashrc」に設定します。

echo ‘export VAR_NAME=”new_value”‘ >> ~/.bash_profile

以下のように新しいログインシェルを起動してもVAR_NAMEは設定されています。su – testuserでログインすると新しいログインシェルが起動します。


よく設定する環境変数

以下のようにPATHに新しいパスを追加する際はこのように書きます。Add_pathを任意で変更。

export PATH=$PATH:Add_path

PATHにAdd_pathが追加されていることを確認できます。

.bash_profile と .bashrc の違い
ファイル読み込まれるタイミング用途
~/.bash_profileログインシェル(SSH ログイン、su - user、bash --login)環境変数 (export PATH=… など) の設定
~/.bashrc非ログインシェル(ターミナルを開いたとき、bash を実行したとき)エイリアス (alias ll=’ls -la’ など) やプロンプト設定

.bash_profileは以下のように.bashrcを読み込む設定がされている。

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

シェル変数

シェル変数の確認

set

シェル変数の設定

  1. シェル変数は = を使って設定できます。
VAR_NAME=”Hello, VAR”

  1. 設定後、echo で確認できます。
echo $VAR_NAME

コメント

タイトルとURLをコピーしました