Lesson9 シェルを理解する


STEP 1 シェルとは
STEP 2 Bシェル(bashも同様)
2-1 シェル変数
2-2 シェル変数を定義する
2-3 シェル変数はシェルごとに定義される
2-4 環境設定
課題

STEP 1 シェルとは

 

注意:
bashはBシェルとほぼ同じ使用感
ですので、教科書ではSTEP2のBシェルの記述を参考にしてください。”STEP3 Cシェル”につ いて の説明と実習は 省略します。

 なお、STEP2に現れる .profileという環境ファイルは bashの場合は.basrcという名前になっていますので、すべて.profile → .bashrc に読み替えてください


honda@eurus$ ps (現在実行されているプロセス(コマンド)を表示す)
  PID  TT  STAT      TIME COMMAND
 1423  p0  Ss     0:00.04 -bash (最初はbashのみ)
honda@eurus$ sh(Bシェルが始まり次の行からプロンプトが変わります) 
sh-2.05b$ ps
  PID  TT  STAT      TIME COMMAND
 1423  p0  Ss     0:00.05 -bash
 1456  p0  S      0:00.02 sh(Bシェルが動いています)
^Dを入力(Bシェル終了、、)
sh-2.05b$ exit
honda@eurus$ csh (C シェル始まり)
[eurus:‾] honda% ps
  PID  TT  STAT      TIME COMMAND
 1423  p0  Ss     0:00.05 -bash
 1458  p0  S      0:00.03 -sh
^Dを入力(Cシェル終了、、)
[eurus:‾] honda% exit
honda@eurus$ tcsh (tcsh 始まり)
[eurus:‾] honda% ps
  PID  TT  STAT      TIME COMMAND
 1423  p0  Ss     0:00.05 -bash
 1460  p0  S      0:00.03 -csh
^Dを入力tcsh終了、、)
[eurus:‾] honda% exit
honda@eurus$



STEP 2 Bシェル(bashも同様)

2-1 シェル変数

        set
            代表的な変数

2-2 シェル変数を定義する

$ echo $KIGEN
   (空白)
$ KIGEN=good
$ echo $KIGEN
good
$ unset KIGEN
$ echo $KIGEN
   (空白)

2-3 シェル変数はシェルごとに定義される

       export 変数名
$KIGEN=GOOD
$echo $KIGEN
$GOOD
bash
bash$ echo $KIGEN
   (空白。変数が継承されていない)
bash$ exit
$export KIGEN
bash
bash$ echo $KIGEN
GOOD           (変数が継承された)
bash$ exit
$

2-4 環境設定

(教科書内の、この章の.profile は .bashrcに読み替えてください)

       env
 練 習
  • 下記のようにして .bashrcファイルの最後に  cal  と入力してみましょう。
  • 新しいシェル(bash)を起動してみましょう。なにがおこりましたか。
%cat >>  .bashrc  (.bashrcファイルの末尾にcalを追加)
cal              
^Dを入力

%cat .bashrc

%bash
  • 確認したら vi で .bashrcを開いて、 変更を元に戻しておきましょう。

STEP 3

こちらはとばします。各自教科書に目を通しておいてください。


課題

以下の問いの答えをサブジェクト名"lesson9 kadai"として、honda@is.kochi-u.ac.jp あてにe-mailで送信してください。
締め切り 11/24(木) 17:00
1.  bashを使って、以下の作業を行い、コマンドと実行結果を答えてください。なお、変数の設定が必要な 場合も、 環境ファイルは使用せず、端末からコマンドを入力して設定していくものとします。
    1. 現在のシェル変数を表示する。
    2. 新しいシェル変数 weather を定義し、その値を clearとする。
    3. 現在のシェル変数を確認する。
    4. シェル変数 weather を削除する。
    5. 現在のシェル変数を確認する。
    6. シェル変数の中で、PS1 は何を設定する変数か。また、現在の値はどうなっているか答えよ。
    7. 現在使用しているシェルのプロンプトの文字を  MyPrompt$:   に変更する。(プロンプトがかわったことを確認した結果も答えに含めてください)
    8. PS1の値を最初の値に戻す。
    9. 新しいシェル変数 friend を定義し、その値を tomo として、現在 の friend の値を次のシェルに引き継ぐ
    10. 新しい bash のシェルを起動して、シェル変数 friend の値が tomo であることを確認する。
    11. 新しい bash のシェルを終了する
2.   環境ファイルに関して下記の問いに答えなさい。
  1. bashの環境ファイルの名前は何か。またその内容の先頭5行を表示しなさい(ヒント head)。
  2. シェルが起動する度に(ターミナルをあける度に)、現在の日付と時刻を表示し、その後 "Hello! How are you?" というメッセージを表示するにはどうすればよいか。実際に行って動作確認しなさい。実行結果もレポートに入れること。なお、課題終了後は、変更箇所は元 に戻してくだ さい。
    2.2のヒント:
    コマンド echo "メッセージ"("は半角英数字)で画面にメッセージを表示することができる。
    echo "Hello!"と端末から入力してみよう。
  起動時に実行させたいコマンドは環境ファイルの末尾に入れると起動の度に実行される。。