1
コンピュータ工学演習ノート
田地@田村研 1.UNIX
1970頃AT&T社のBell研究所の研究員K. ThompsonとD. Ritchieらにより開発された.
その後,大学,研究所を中心に広く普及,発展した.
(無償提供された,ソースコードが公開されている,改変が自由である....)
現在は,多くのワークステーション,パーソナルコンピュータの基本OSとなっている.
BSD系(Berkley Software Distribution) FreeBSD,NetBSD など System V系 Solaris(Sun Microsystems)など
Linux,
現在使用している端末は turbo Linux で UNIX の仲間.
2.ターミナルの起動と終了(オンライン利用の手引きのkterm の項)
[起動その1]画面の中の のアイコンをクリックする.
[起動その2]画面左下の をクリックして ユーティリティー → 漢字ターミナル へ
[追加起動]上の起動方法1or2を繰り返す.
または,すでに開いているターミナル上で,kterm & とコマンド入力する.
[終了]exitとコマンド入力する.
またはControl-Dを入力する.
3.Shell(シェル)
ターミナル(kterm, xterm)の一つ一つの画面は,それぞれがコンピュータの一つの端末 に相当する.
コンピュータに作業をさせるには,コマンドを入力することによって行う.
Shellとは,コマンドを含む行を読み込み,解釈し,実行するプログラムであり,UNIXと
ユーザのインターフェイスとみなすことができる.
Shellは簡単なプログラミング言語(インタプリタ)として動作する.
UNIXを使う=Shellを実行する.
ターミナルを起動すると,Shellプロセスが起動する.
Shellの種類
・bourne shell系:sh, bash, zsh,......
・csh系:csh, tcsh,......
現在使用している端末では bash が動いている.
2
(例)
プロンプトの出力 開始
コマンド行の読み込み コマンド行の解析
終了
終了 yesyesyes yes
コマンドの実行 nonono
no
Shellの処理の流れ図
Linux 2.0.31 (aurora1) (ttyp0)
aurora1 login: taji Password:
Linux 2.0.31.
Last login: Thu Nov 11 13:34:28 on tty1.
No mail.
taji@aurora1% cal November 1999 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
taji@aurora1%
login操作(ユーザ名とパスワードの入力)
コマンド入力(カレンダーを表示する)
その結果(今月のカレンダーを表示)
プロンプト
3 4.コマンド
(書式)コマンド名 オプション 引数
[例]ls:ファイルの情報を表示するコマンド(list)
オプションとしては,-a, -l, -t, -F .... などがある(通常ハイフン - を付ける)
ls -al, ls -a -l のような書き方が可能(この2つは同じ意味)
(実行例)
taji@aurora1% ls
Mail misc public_html thesis RMAIL program texfile
taji@aurora1% ls -l total 1087
drwxr-xr-x 6 taji user 512 Mar 12 1999 Mail -rw-r--r-- 1 taji user 536084 Aug 27 11:28 RMAIL drwxr-xr-x 2 taji user 512 Mar 30 1998 misc drwxr--r-- 5 taji user 512 Nov 25 1998 program drwxr-xr-x 3 taji user 512 Sep 29 11:36 public_html drwxr--r-- 18 taji user 512 May 31 21:02 texfile drwxr-xr-x 2 taji user 512 Sep 28 19:50 thesis taji@aurora1% ls -al .logout
-rw-r--r-- 1 taji user 10 Apr 1 1998 .logout taji@aurora1%
よく使うコマンド
cat, cc, cd, chmod, cp, date, echo, find, grep, kill, less, more, man, mkdir, mv, ps, pwd, rm, rmdir, vi, which, who, ...
5.ターミナルでのコンパイルの実行(C言語の場合)
プログラム名は,abc.ccccのように .c(拡張子という)で終わるようにする.
cc -o def abc.c
と入力すると,abc.c をコンパイルし def という名の実行ファイルを作成する.
(def と入力すると,プログラム abc.c が実行される.)
-o defを省略すると,defの替わりにa.outという実行ファイルができる.
6.バックグラウンドでのジョブの実行 UNIXはマルチタスクOSである.
↓
複数のプロセスを同時に実行できる.
その方法
①複数のターミナルを立ち上げ,その中で実行する.
↓
複数のウィンドウを開くので,メモリを消費する.
オプション指定した場合
引数の例
4
②バックグラウンドでのプロセスの実行 コマン ド &
または
コマンドを入力した後 CTRL+z bg と入力する.
どのようなプロセスが実行されているかは,ps コマンドで調べられる.また,バックグ ラウンドで実行しているプロセスを中止するには kill コマンドを用いる.
演習問題
今後,この講義時間中の演習は,すべてターミナル上で行うこと.
1.よく使うコマンドのいくつかについて,そのコマンドの
用途,引数,オプション
について調べなさい.また,実際にターミナル上で 引数を変えた場合
オプションを変えた場合
について実行して,結果を比較しなさい.さらに,それぞれ一つ例を挙げて,ターミ ナル上での実行結果を書きなさい.
2.gedit や netscape などのソフトウェアを,(アイコンをクリックするのではなく)タ ーミナル上でのコマンド入力により起動させるにはどうすればよいか答えよ.
3.いろいろなコマンドを実行する際,フォアグラウンドで実行した場合と,バックグラ ウンドで実行した場合に,どのような違いが見られたか,書きなさい.
以上の3問をA4用紙1〜2枚程度にまとめ,TAの確認をもらってTAの確認をもらってTAの確認をもらってシステム事務室に提出TAの確認をもらって しなさい.〆切は10月5日(金)12時.
【時間の余った方へ】
4.標準入力(キーボード)からテキストデータ(例えば,アルファベットと数字からな るふつうの英文のようなもの)を読み込み,その中の単語を切り出してファイルに出 力するプログラムを作成しなさい.ただし一行に一つの単語を出力するものとし,大 文字はすべて小文字に変換すること.(単語とは,スペース,コンマ,ピリオドなどに よって一区切りにされている文字列のこと.getchar とか,putchar とかをつかうと よい.)