- 第 5 回 UNIX入門(3) ... シェル/応用プログラム

シェル(shell)とカーネル(kernel)


シェルの操作

教科書p85-102


リダイレクト

入力を受け付けて、結果を出力する一般的なコマンドの場合、入力元は標準入力、出力先は標準出力になっている。一般に標準入力はキーボード、標準出力はディスプレイが割り当てられている。

リダイレクトの例

簡単な計算をするコマンド bc

[07fi999@dynamic139 07fi999]$ bc -l                                   ← "-l"オプションを付けて起動
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2                                                                   ←キーボードから計算式を入力
3                                                                     ←結果が出力される
256*256                                                               ←キーボードから計算式を入力
65536                                                                 ←結果が出力される
sqrt(2)                                                               ←キーボードから計算式を入力
1.41421356237309504880                                                ←結果が出力される
[07fi999@dynamic139 07fi999]$                                         ^Dでbcを終了

このコマンドのイメージ

標準入力から式の入力
通常はキーボード
"<"でファイルに切替
bcコマンド
標準出力へ結果の出力
通常はディスプレイ
">"または">>"でファイルに切替

リダイレクト処理の練習

emacsやvi等で、次のような内容のテキストファイルを作ります。

ファイル名 shiki1.txt shiki2.txt
内容 1+2
256*256
sqrt(2)
5-2
10/3
s(3.14159/2)

以下の各コマンドを実行して、結果を確認してください。

この結果生成されたテキストファイルkekka1.txt 〜 kekka4.txtの内容を確認し、なぜそのような結果になるか考察しなさい。

パイプ処理

フィルタ処理の練習

以下の内容のテキストファイル"list.txt"を作成しなさい。

H20FI001,鬼怒川浩
H20FI002,鬼怒川浩
H20FI003,鬼怒川浩
H20FI004,鬼怒川浩
H20FI005,鬼怒川浩
H20FI006,鬼怒川浩
H20FI007,鬼怒川浩
H20FI008,鬼怒川浩
H20FI009,鬼怒川浩
H20FI010,鬼怒川浩
H20FI011,高梁鴇一郎
H20FI012,高梁鴇一郎
H20FI013,高梁鴇一郎
H20FI014,高梁鴇一郎
H20FI015,高梁鴇一郎
H20FI016,高梁鴇一郎
H20FI017,高梁鴇一郎
H20FI018,高梁鴇一郎
H20FI019,高梁鴇一郎
H20FI020,高梁鴇一郎
H20FI021,尾坂直利
H20FI022,尾坂直利
H20FI023,尾坂直利
H20FI024,尾坂直利
H20FI025,尾坂直利
H20FI026,尾坂直利
H20FI027,尾坂直利
H20FI028,尾坂直利
H20FI029,尾坂直利
H20FI030,尾坂直利
H20FI031,西東強
H20FI032,西東強
H20FI033,西東強
H20FI034,西東強
H20FI035,西東強
H20FI036,西東強
H20FI037,西東強
H20FI038,西東強
H20FI039,西東強
H20FI040,西東強
H20FI041,砥部夜使徒
H20FI042,砥部夜使徒
H20FI043,砥部夜使徒
H20FI044,砥部夜使徒
H20FI045,砥部夜使徒
H20FI046,砥部夜使徒
H20FI047,砥部夜使徒
H20FI048,砥部夜使徒
H20FI049,砥部夜使徒
H20FI050,砥部夜使徒
H20FI051,良成雄市郎
H20FI052,良成雄市郎
H20FI053,良成雄市郎
H20FI054,良成雄市郎
H20FI055,良成雄市郎
H20FI056,良成雄市郎
H20FI057,良成雄市郎
H20FI058,良成雄市郎
H20FI059,良成雄市郎
H20FI060,良成雄市郎
H20FI061,桝田秀隆
H20FI062,桝田秀隆
H20FI063,桝田秀隆
H20FI064,桝田秀隆
H20FI065,桝田秀隆
H20FI066,桝田秀隆
H20FI067,桝田秀隆
H20FI068,桝田秀隆
H20FI069,桝田秀隆
H20FI070,桝田秀隆
H20FI071,哲渓新字
H20FI072,哲渓新字
H20FI073,哲渓新字
H20FI074,哲渓新字
H20FI075,哲渓新字
H20FI076,哲渓新字
H20FI077,哲渓新字
H20FI078,哲渓新字
H20FI079,哲渓新字
H20FI080,哲渓新字
H20FI081,児山博則
H20FI082,児山博則
H20FI083,児山博則
H20FI084,児山博則
H20FI085,児山博則
H20FI086,児山博則
H20FI087,児山博則
H20FI088,児山博則
H20FI089,児山博則
H20FI090,児山博則
H20FI091,鍬多高安
H20FI092,鍬多高安
H20FI093,鍬多高安
H20FI094,鍬多高安
H20FI095,鍬多高安
H20FI096,鍬多高安
H20FI097,鍬多高安
H20FI098,鍬多高安
H20FI099,鍬多高安
H20FI100,鍬多高安
H20FI101,保田博嗣
H20FI102,保田博嗣
H20FI103,保田博嗣
H20FI104,保田博嗣
H20FI105,保田博嗣
H20FI106,保田博嗣
H20FI107,保田博嗣
H20FI108,保田博嗣
H20FI109,保田博嗣
H20FI110,保田博嗣
H20FI111,仲縞活戸
H20FI112,仲縞活戸
H20FI113,仲縞活戸
H20FI114,仲縞活戸
H20FI115,仲縞活戸
H20FI116,仲縞活戸
H20FI117,仲縞活戸
H20FI118,仲縞活戸
H20FI119,仲縞活戸
H20FI120,仲縞活戸
H20FI121,河墨匡
H20FI122,河墨匡
H20FI123,河墨匡
H20FI124,河墨匡
H20FI125,河墨匡
H20FI126,河墨匡
H20FI127,河墨匡
H20FI128,河墨匡
H20FI129,河墨匡
H20FI130,河墨匡
H20FI131,屋島寛
H20FI132,屋島寛
H20FI133,屋島寛
H20FI134,屋島寛
H20FI135,屋島寛
H20FI136,屋島寛
H20FI137,屋島寛
H20FI138,屋島寛
H20FI139,屋島寛

catコマンドで内容を表示させなさい。

cat list.txt

自分の学籍番号が含まれる行のみを表示しなさい。(このリストでは、機密保持のため学籍番号の書式を変えてある。また、各アドバイザ名も架空の名前になっている)

grep 自分の学籍番号 list.txt

アドバイザの先生が自分と同じ人の一覧を表示させなさい。

grep 自分のアドバイザ list.txt

アドバイザの先生が自分以外の人の一覧を表示させなさい。

grep -v 自分のアドバイザ list.txt

パイプ処理の練習(教科書p95)

自分の学籍番号が含まれない行のみを表示しなさい。

grep -v 自分の学籍番号 list.txt

このままでは確認が難しいので、パイプ処理でlessに送ります。

grep -v 自分の学籍番号 list.txt | less

教科書p92の

ps -ef

を実行した結果を確認しなさい。続いて教科書p95の

ps -ef | less

の実行結果を考察しなさい。

エイリアス

教科書の内容を確認しなさい。

ジョブ制御

xeyes

xeyes &

の違いを確認しなさい。

xeyes

で起動した後、^Zで中断し、fgとbgの違いを確認しなさい。

kill で xeyes を止めてみなさい。

ヒストリ機能

教科書の内容を確認しなさい。

小テスト対策(その1)

教科書やman、jman等で以下のコマンドの働きについて調べておきなさい。また実際に使って試してみなさい。

cal
cd
chmod
chown
cp
file
find
jman
last
less
lha
logout
ls
man
mkdir
more
mv
passwd
pwd
rm
rmdir
shutdown
tail
tree
useradd
userdel
who
whoami

小テスト対策(その2)

以下のようなリダイレクトができるようにする。

ワイルドカードによるファイルの指定を理解しておく。

エイリアスの指定方法。

ジョブ制御について、フォアグラウンドとバックグラウンドの違い、サスペンドしたジョブの再開方法など。

教科書p101-102の問1〜問5をやっておく。