【Linux】シェルと変数について
シェルの概要や変数について解説していきます。
シェルとは
Linux上でコマンドを入力すると入力したコマンドに対応したプログラムが実行され結果が表示されます。ユーザーからのコマンドを受け付け、OSを介してLinuxとの仲立ちをするユーザーインターフェースがシェルです。
コマンド解釈と実行
ユーザーから入力されたコマンドはインタプリタで解釈・実行され、ユーザーはシェルを通じてOSを扱えます。
以下にシェルとコマンドの関係を記載します。
- bashシェルがプロンプトを表示
- bashシェルがコマンドを解析
- プロセスの表示
- 処理を実行
- プロセスの終了をbashに通知
- ユーザーに結果を表示
変数
シェルがユーザー、Linuxとの仲立ちをするためには、ユーザーに関する情報を保持する必要があります。Linuxではこの情報を格納する入れ物のことを変数と呼びます。
変数は、利用できる範囲(スコープと言います)によって「シェル変数」と「環境変数」の2種類に分けられます。
シェル変数
設定されたシェルだけが使用する変数。スコープは設定したシェル内でのみ有効。
環境変数
設定されたもしくはそのシェルで起動したプログラムで使用できる変数。スコープは設定したシェル内と起動したプログラムにも有効。
主な環境変数を以下の表に記載します。
環境変数名 | 説明 |
---|---|
PATH | コマンドやプログラムを検索するためのパスリスト |
PWD | カレントディレクトリの絶対パス |
HOME | ユーザーのホームディレクトリ |
USER | 現在のユーザー |
HOSTNAME | ホスト名 |
PS1 | プロンプトの表示文字列 |
PS2 | 複数行にわたる入力時のプロンプト |
HISTFILE | コマンド履歴を格納するファイルの定義 |
HISTSIZE | コマンド履歴の最大値 |
HISTFILESIZE | HISTFILEに保存する履歴数 |
変数の使い方
- set
- 現在のシェルで設定されているシェル変数の一覧を表示する
[root@hostname /]#set
BASH=/bin/bash
BASH_ARGC()
BASH_ARGV()
(以下省略)
- シェル変数名 = 値
- シェル変数の値を定義
[root@hostname /]#TEST=Hello
TEST変数にHelloを定義
- echo
- 変数の値を表示する
[root@hostname /]#echo $TEST
Hello
- unset
- 変数の削除
[root@hostname /]#unset TEST
TEST変数を削除
- export
- シェル変数に環境変数を設定
[root@hostname /]#export TEST 環境変数設定 [root@hostname /]#bash 新しいシェルを起動 [root@hostname /]#echo $TEST Hello [root@hostname /]#exit 新しいシェルを終了
- declare
- シェル内の変数と関数を全て表示
-
書式
declare [オプション] [シェル変数名]
主なオプション
オプション 説明 -x 環境変数としてエクスポート -f 定義されている関数を表示 -f [シェル変数名] 関数を格納する変数を定義 -i 整数を格納する変数を表示 -i [シェル変数名] 整数を格納する変数を定義 -p 全ての変数とその属性情報を表示
[root@hostname /]#TEST2=world [root@hostname /]#declare -x TEST2 環境変数設定
ディスカッション
コメント一覧
まだ、コメントがありません