2013年06月25日
情報科学類 コンピュータリテラシ
筑波大学 システム情報系 情報工学域
新城 靖
<yas@cs.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2013/2013-06-25
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
- Unix Super Text
「第33章 検索と置換」、
「第28章 World Wide Web」参考。
- 次回 6月28日金曜日 は、講義室 3A312 に集合。試験。
- 来週 7月2日火曜日 は、
授業評価アンケート、補足、宿題一掃、
欠席届の受領等を行う。
講義室 3A312 に集合。
- 検索エンジンよりも、人(TA、教員、隣人)に聞いた方が早い
特に、プログラミングでは。
- 他人をうまく使う方法(相互なので、他人からうまく使われる方法)を鍛
えたい。
- ヒット率
- 欲しかった情報のうち、どのくらい見つかったか。
- 選択率
- 見つかった情報のうち、どのくらいが本当に欲しかったものか。

図? ヒット率と選択率
あちらを立てればこちらが立たず。
トレードオフ。
- AND、両方)、(&)
- OR、どちらか、または (|)
- NOT、否定、ふくまない (!)
外枠は、全体(たとえば、インターネット上の膨大な数のWWWページ)を表す。
色が付いている所が、見つかったデータを表す。
「keyword1」で検索。

図? キーワードを1つ与えた時
keyword1 AND keyword2 AND keyword3

図? キーワードを3つ与えた時(AND)
keyword1 OR keyword2 OR keyword3

図? キーワードを3つ与えた時(OR)
NOT keyword1

図? キーワードを1つ与えた時(NOT)
キーワードを1つ与えた時の NOT は使えない。
NOT keyword1 AND keyword2 AND keyword3

図? キーワードを3つ与えた時(AND,NOT)
NOT は、AND といっしょにつかう。
NOT 単独では、使えない。
絞込検索(しぼりこみけんさく)のイメージ

図? キーワードを1つ与えた時

図? キーワードを2つ与えた時

図? キーワードを3つ与えた時
絞込検索は、基本的には、AND と同じ(注意: キーワードの順番に反応する検
索エンジンもある。AND では順番は関係ない。)。
keyword1 AND keyword2 AND keyword3

図? キーワードを3つ与えた時(AND)
The Unix Super Text 28.5節,34章 参照。
インターネット上にある膨大な情報から、必要な情報を見つけ出すためには、
次のような方法がある。
- 興味のあるWWWページに埋め込まれているリンクを次々と手繰っていく。
- 特定の分野についてのFAQやリンク集を参考にする。
- 雑誌やテレビなど、一般のメディアに掲載されたURLを打ち込む。
- 人間によってよく整理されたメニュー(ディレクトリ)を次々に選択していく。
- キーワードを打ち込んで探す(キーワード検索)。
検索対象のデータ(今の場合、WWWページ)にも、キーワードが与えられて
いる。キーワード検索とは、利用者から与えられたキーワードを持つ対象デー
タを利用者に返すことである。
リンク集
とは、他のページへのリンクを集めたWWWページ。
なにかWWWページを探したい時には、すぐに「キーワード検索」を思い浮か
べるかもしれないが、実際には、
FAQ
FAQやリンク集の方が速いことがある。
- 検索エンジン(サーチエンジン)
-
WWWで検索機能を使う時、実際に検索を行うプログラム。
インターネット上のあるWWWサーバで動いていてる。
検索結果は、手元のWWWブラウザの画面に表示される。
検索対象のデータにキーワードを与える方法
- 内容すべてをキーワードと考える(全文検索)
- 特定のキーワードを与える
- WWWページを作った人がキーワードを与える
- 検索エンジンの提供者(人間)がキーワードを与える
- プログラムでキーワードを自動抽出する
自動抽出したものは、ヒット率はよいが選択率が悪い。
人間が整理したものは、選択率はよいがヒット率が悪い。
- WWWロボット。
- WWWページからプログラムでキーワードを自動抽出するプログラム。
WWWロボットの動き
- ロボットは、あるURLが与えられると、そのページ
を訪れる(ページの内容を得る)。
- 得たページの内容を解析して、キーワードを抽出する。
- そのページにリンクが含まれていたら、1 に戻って繰り返す。
このような繰り返しの方法を、コンピュータ・サイエンスの用語では
再帰(recursion)
とう。ロボットは、世界中の WWWページを歩き回り、キーワードを抽出する。
ただし、一度訪れたことがあるページは記録しておいて、2度訪れないようす
る。
インターネット上の重要な情報源に FAQ がある。
FAQ は、もともとは、
Frequently Asked Questions
の略で、「よくある質問」という意味である。
実際には質問だけでなく
て答えもいっしょに書かれている。しかも、実用的で非常に品質がよい情報
が集まっていることが多いので、質問したいことがなくても、自分の興味がある
分野の FAQ を探して読むことはよい勉強になる。
FAQ を作る活動は、ネットワーク・ニュースでよく行なわれている。というの
も、繰り返しなされる質問をまとめて定期的に投稿することで、記事の質を高
めることができる。インターネットで流通するようなフリー・ソフトウェアで
も、マニュアルとは別に FAQ が作られることもよくある。
多くの検索エンジン(Google、Yahoo!Japan、Microsoft Bing 等)では、
次の方法で、AND、OR、NOT を用いた検索が可能。
- AND
- 空白で区切り、キーワードを並べる。「AND」と書かない。
- OR
- OR と大文字書く。
- NOT
- マイナス「
-
」を使う。単独では使えない。「keyword1
-keyword2」のように使う。
参考
- 特定の Web サーバ内で検索する。site:ドメイン名
- フレーズで探せる。単に AND ではなく、その順番で出てくる。
"word1 word2" (ダブルクォートで括る)
- 英語、日本語等等の言語を指定する。
- 地域を指定する。
- 更新された日時を指定する(例:過去1週間以内)
- ファイルの型(テキスト、PDF、等)を指定する。
Unix では、次のようなコマンドでファイルの検索ができる。
- シェル
-
ファイル名置換
(
*,?,[]
) のパタンを使って、ファイル名で検索できる。
- find コマンド
- ファイル名、属性(所有者、グループ、日付、モード)等で検索できる。
外部のコマンドも実行できる。
The Unix Super Text 33.1.5 参照
- grep コマンド
- ファイルの内容で検索できる。
The Unix Super Text 33.1.5 参照。
The Unix Super Text 第32章 正規表現 参照。
lv コマンドは、less コマンドと同様に、表示しているファイルを検索する機
能がある。次のようなキーが使える。
キー | 説明 |
/パタン | 順方向検索 |
n | 順方向検索次候補 |
/![[←]](../icons/screen-return.gif) | 順方向検索次候補 |
?パタン | 逆方向検索 |
?![[←]](../icons/screen-return.gif) | 逆方向検索次候補 |
手引き 2.3.14 参照。
The Unix Super Text 33.1.4 参照。
MacOSX の Finder には、ファイルを検索する機能がある。
「ファイル」メニューから「検索」(Command+F)。
右上の虫眼鏡のアイコンも使える(Spotlight)。
- 正規表現とは、文字列の集合を表す方法の一種。
対象となる文字列と適合するかしないか(マッチング)を行い、
適合するものだけを取り出す/適合しないものだけを取り出す。
- 検索や置換えで使う。
- オートマトン理論や言語理論に基づいた高速な実現方法がある。
- 単なる「ワイルドカード」よりも、高い表現能力を持つ。
- grep コマンド、Emacs、less (lv) での検索で使える。
単純な検索。
- 完全一致/部分一致/前方一致/後方一致
- 単なるワイルドカード(*)。1カ所だけにに使える。複数箇所にはつかえない。
たとえば、「a*b*c」とは書けない。
正規表現の例:「^a.*tion$
」。「aで始まり、tionで終わるもの」。
「^
」、「.
」、「*
」、「$
」 は、
メタキャラクタ。特別の意味を持つ。
メタキャラクタを含まない文字列も、正規表現として意味を持つ。
grep コマンド、egrep コマンド、Emacs での正規表現の使い方。
Emacs には、通常の検索とインクリメンタルな検索の2種類の検索がある。
The Unix Super Text 12.4.6 参照
- インクリメンタル: 文字を1文字入力する度に、カーソルを移動する。
C-s (下方向)、C-r (上方向) で開始。RET (Return キー、Enter キー、
) で終了。
- 非インクリメンタル: 検索したい文字列を全て打ち終えてから検索を開始する。
C-s (下方向)、C-r (上方向) 直後に、RET と打つ。
インクリメンタル・サーチの途中で、検索する文字を打つ代わりに、C-s, C-r
を打つと次に見つかった場所にカーソルが移動する。
The Unix Super Text 12.4.6 参照。
M-x query-replace (M-%, Esc %) が便利。
M-% と打つと、ミニバッファで次のように聞かれる。
Query replace: 置き換え前の文字列
Query replace 置き換え前の文字列 with: 置き換え後の文字列
キー | 意味 |
y (または SPC) | 置き換え |
n | 次の候補に移動 |
q | 終了 |
! | 以降すべて置換 |
その他に、次のような置換え機能がある。
The Unix Super Text 33.2 参照。
- replace-string: y/n を聞かないで一気に置換える
- replace-regexp: 「正規表現」というパタンを使って置換える。
- query-replace-regexp: 「正規表現」というパタンを使って置換える。y/n を聞いて来る。
- A AND B。2項演算。両方 1 なら、1。その他は 0。
AND演算
| | B |
| | 0 | 1 |
A | 0 | 0 | 0 |
1 | 0 | 1 |
- A OR B。2項演算。どちらか 1 なら、1。その他は 0。
OR演算の結果
| | B |
| | 0 | 1 |
A | 0 | 0 | 1 |
1 | 1 | 1 |
- NOT A。単項演算。1 なら、0、0 なら、1。
2進数、8進数、16進数で書くのが普通。各桁毎に考える。例。
0101
AND 1100
--------
0100
0101
OR 1100
--------
1101
NOT 0101
--------
1010
0x829e5601
AND 0xfffffe00
--------------
0x829e5600
- 130.158.0.0 - 130.158.255.255
- 133.51.0.0 - 133.51.255.255
- 192.50.17.0 - 192.50.17.255
- 130.158.0.0/16
- 133.51.0.0/16
- 192.50.17.0/24
「/16」、IPアドレスのうち、上位16ビット、
が一致するものを意味する。
- 255.255.0.0 と AND を取ると 130.158.0.0
- 255.255.0.0 と AND を取ると 133.51.0.0
- 255.255.255.0 と AND を取ると 192.50.17.0
10進数255 は、16進数で 0xff、2進数で、11111111。
130.158. 86. 1
AND 255.255. 0. 0
-------------------
130.158. 0. 0
IPアドレスと AND を取るための数をネットマスクと言う。
ネットマスクは、2進数で 111<中略>11000<中略>00 となる。
上位は、1だけ並び、下位は 0 だけ並ぶ。
ls -l のモードの部分(rw-r--r--等)は、ビットの並びを表している。chmod コ
マンドでモードを指定する時には、8 進数も使える。
$ chmod 644 file.txt
The Unix Super Text 21.5 モードとマスク 参照。
新しく作成されるファイルのモードは、umask により決まる。
The Unix Super Text 21.5.3 マスクの影響 参照。
システムプログラム(2006年)/umaskの影響
次のものと合わせて考えたい。
- 毎秒何ビット、bps、bit per second、bit/second
- 1秒間に何ビット送れるか
- Byte/second、毎秒何バイト
- 1秒間に何バイトビット送れるか。
1 Byte/sec == 8 bps。
ややこしいことに、データ量はバイトで言うことが多く、通信速度は、「ビッ
ト/秒」が使われることが多い。(1本の線で1ビットずつ送る感覚。)
情報量の単位と同様に、通信速度にも次のような係数がことがある。
- k (キロ、ケイ)
- 1024 か 1000
- M (メガ)
- k の 1024 倍か 1000 倍。1,000,000 くらい。
- G (ギガ)
- M の 1024 倍か 1000 倍。1,000,000,000 くらい。
- T (テラ)
- G の 1024 倍か 1000 倍。1,000,000,000,000 くらい。
- 10 k bps
- よく普及している携帯電話で得られる速度
- 32 k bps - 56 k bps
- 電話回線経由で接続した時に得られる速度。
- 32 k bps または 64 k bps
- PHS (Personal Handy Phone) で得られる速度
- 64 k bps
- ISDN (電話回線と同じ電線で直接ディジタル信号を流す時)
- 100 k bps
- MP3 などで圧縮した音楽を流す時に必要な速度。
- 128 k bps
- ISDN で2回線同時に使った時。
- 1500 k bps (1.5 M bps)
- ISDN (光ファイバでディジタル信号を流す時)
- 1500 k bps (1.5 M bps)
- 音楽用 CD を圧縮しないでまま流す時に必要な速度。
(1倍速のCDの速度。)
- 1500 k bps (1.5 M bps)
- ケーブルテレビや ADSL という方式でインターネット接続を
した時に得られる速度。
- 5000 k bps (5 M bps)
- DVD-Video を再生している時にディスクから読み出されている
データの速度。
- 10 M bps, 100 M bps, 1000 M bps (1 G bps), 10 G bps
- イーサネット(LANでよく使われている)
実習室のパソコンは、1G bps で学内LANに接続されている。
学内LANの基幹部分は、1G bps - 16G bps で接続されている。
学内LANは、
SINET4 (2007年-)へ 10Gbps、
Tsukuba WAN (2007年-)へ 10Gbps、
で繋がっている。
ただし、2Gbps+2Gbpsの制約がある。
人間が書いたプログラムを実行する方法には、大きく2種類ある。
- コンパイラ(compiler, 翻訳系)を使う
-
人間が書いたプログラム(ソース・プログラム) を、一度、機械語に変換する。
機械語に変換するプログラムを、「コンパイラ」という。
実行時には、コンパイラは不要。
- インタプリタ(interpreter, 通訳系)を使う
- 人間が書いたプログラムを(機械語に変換することなく)直接実行する。
このプログラムを実行するプログラムを、インタプリタという。
実行時にも、インタプリタが必要。

図? コンパイラ方式でのプログラムの実行

図? インタプリタ方式でのプログラムの実行
その中間的な方法もある。
- コンパイラは、中間的な機械語
(抽象計算機、仮想計算機の機械語)に変換する。
- インタプリタが、中間的な機械語を実行する。

図? コンパイラとインタプリタの併用によるプログラムの実行
シェルは、インタプリタ方式で動作する言語処理系とも言える。
sh (/bin/sh
) は、Bourne SHell と呼ばれる。対話的な利用では、csh
や bash を使う人でも、シェル・スクリプトを作成する時には、sh を使う人も多
い。
実際には、Unix オリジナルの sh ではなく、bash (GNU Bourne-Again SHell)
という高機能のプログラムが広く使われている。bash が sh という名前で実行
された時に sh のごとく振舞う。多くの sh の機能は、bash ではそのまま利用
できる。
coins では、ホーム・ディレクトリ以下で個人がファイルを保存するために利
用できるディスクの上限が決まっている。上限や現在の利用量を表示するため
には、quota コマンドを使う。
手引き 2.3.9 参照。
$ quota
Disk quotas for user s12234567 (uid 1231):
Filesystem 1K blocks quota limit grace files quota limit grace
/home 778476 3145728 3670016 10857 -1 -1
$
coins の標準は、上限 3 GB (3*1024*1024==3,145,728 KB)。
3.5 GB (3670016 KB) を超えると、ファイルを保存できなくなる。
3 GB を超えた時に、~/.forward を設定していれば、それに警告のメールが飛ぶ仕組みがあるが、
メールが飛ばないこともあるので、各自自分で気をつける。
手引き 10.8 参照。
上のユーザは、778,476 KB 使っている。
ファイル数は、10857 個。ファイル数の上限は、ない。
quota の limit を超えた時には、
不要なファイルを消す。
ホーム・ディレクトリ全体ではなく、個々のディレクトリごとに
ディスク使用量を調べたい時には、
du コマンド
を使う。引数に調べたいディレクトリ名を与える。ディレクトリ名としては、
「.」や「~」も可。du は、ファイルの数が多い時に表示までに時間がかかる。
途中でやめたくなった時には、^C
(Control+C) で強制終了する。
$ du ~
(ホーム・ディレクトリ以下のファイルの容量を表示)
$ du .
(カレントワーキング・ディレクトリ以下のファイルの容量を表示)
$ du -s .
(-s で合計だけ表示)
$ du -s -k .
(-k で KB 単位で表示)
$ du -s -k *
(指定されたディレクトリ(*なのでそこにあるもの全部)単位で合計の表示)
$ du -s -k * | sort -nr | head
(合計を大きい順にソートし、その先頭 10 行を表示)
man du、
手引き 2.3.10 参照、
手引き 10.8 参照。
印刷参照。
印刷枚数の上限もある。
手引き 1.8.2 参照。
https://www.coins.tsukuba.ac.jp/ce/printer/quota.cgi
実習時間中には、
以下の課題をできるだけ多く行いなさい。全部を行う必要はない。
quota コマンドを実行して、自分が保持しているファイルが、ディスク上でど
の程度の領域を占めているのか(1K blocks の下)を調べなさい。また、上限
(quota limit) がいくつかを調べなさい。
$ quota
この結果と、
du コマンド
の結果を比較しなさい。
$ du -s -k ~
(表示までに時間がかかる。強制終了したければ、^C)
du コマンドのオプションの動きを確認しなさい。
sort コマンドや head コマンドと組み合わせて使ってみなさい。
du コマンドの説明を参照。
Emacs のインクリメンタルサーチ機能を使ってみなさい。
- Emacs を実行する
- C-x C-f で大きなファイル(1画面に入らないくらい)を開く
- C-s と打ち、インクリメンタルサーチを開始する。
- ファイルの下の方に存在するであろう文字列のうち、先頭の何文字かを打つ。
たとえば、abc123 を検索したい場合、abc 程度で止める。
- 見つかれば、RET で終了する
- 見つかななければ、C-s で次に進むか、さらに追加の文字を打つ
C-s (上から下方向の検索)の代わりに、C-r (下から上方向の検索)を利用してみなさい。
- Emacs を実行する
- C-x C-f で大きなファイル(1画面に入らないくらい)を開く
- Esc > (M->) で、ファイルの末尾に移動する。
- C-r と打ち、インクリメンタルサーチを開始する。
- ファイルの「上の方」に存在するであろう文字列のうち、先頭の何文字かを打つ。
たとえば、abc123 を検索したい場合、abc 程度で止める。
- 見つかれば、RET で終了する
- 見つかななければ、C-r で次に進むか、さらに追加の文字を打つ
インクリメンタル・サーチとカーソル移動(矢印キー、C-v, M-v)とを比較して、
インクリメンタル・サーチの利点を考えなさい。
Emacs で非インクリメンタルな検索機能を使ってみなさい。
- インクリメンタル・サーチで、文字を打つ前に RET (
) を打つ
- 文字を打ち、RET
Emacs で query-replace を利用してみなさい。
- 内容を変更してもよいファイルを用意する。
たとえば、過去に提出したレポートをコピーする。
- そのファイルを開く
- M-% (Esc %)と打つ
- 以後、Emacsの検索と文字列の置換え参照。
手引き 2.3.14 参照。
ページャ lv には、検索機能がある。
表
にあるキーの動きを確かめなさい。
- lv を実行する。lv でファイルを表示したり、
man コマンドでマニュアルを表示する。
$ man ls
- 「/文字列
」で検索。例「/-l
」
- 「n」 で次を検索
- 「/
」 で次を探す
- 「G」でファイルの末尾に移動
- 「?文字列
」で逆方向に検索
- 「?
」で逆方向に次を検索
Firefox には、表示しているページ内の文字列を検索する機能がある。
この機能を確認しなさい。
- 「編集」メニューから「検索」を選ぶ(Command+F)。
すると、左下に、キーワードを打ち込むための箱が現れる。
- キーワードを1文字打つ度に、
Emacs と同様にインクリメンタル・サーチが行われる。
- 「編集」メニューから「次を検索(Command+G)」を選ぶと、次の候補に移動する。
ページ内検索
参照。
Thunderbirdには次のような検索機能がある。
- 現在のメッセージ内のテキストを検索(Command+F)
- 現在のメッセージ内で再検索(Command+G)
- 現在のメッセージ内で前を再検索(Command+Shift+G)
- クイックフィルタバー。現在表示中のフォルダを検索。
- すべてのメッセージを検索 (グローバル検索)。
これらの機能を確認しなさい。
詳しくは、「ヘルプ」メニューから「Thunderbird ヘルプ」を選びなさい。
オフィース・ツール(MS Word, Excel等)の検索機能を利用してみなさい。
置換え機能もある。
自分が普段つかっているWWW検索エンジンで次の演算を実行するためには、どの
ように記述すべきかを調べなさい。そして、その方法がうまく動作することを
確認しなさい。
http://www.tulips.tsukuba.ac.jp/,筑波大学付属図書館
で図
書の検索を行いなさい。3つの演算(AND, OR, NOT)をどのようにして利用する
かを調べなさい。
検索エンジンに与えるべきよいキーワードについて考えなさい。
たとえば、次のようなものが考えられる。
これらの点を評価しなさい。また、他にどのようなキーワード、または、その
組み合わせ方法をよいか考えなさい。
The Unix Super Text 40.15 参照。
次の機能を確認しなさい。
-
if then else fi
-
for
-
while
-
case
-
exec
-
eval
-
exit
-
.
bash では $((式))
で簡単な計算ができる。
この機能を確認しなさい。
The Unix Super Text 41.3.8項 参照。
$ cat add
#!/bin/bash
a=$1
b=$2
x=$(($a + $b))
echo $x
$ ./add 10 20
30
$
platexを2回実行するシェル・スクリプト
で、
1回目の実行でエラーが出た時には、2回目は実行しないようにしなさい。
ヒント: if を使う。
「&&」を使う方法もある。
platex、dvipdfmx、Preview.appの連続実行
で、前のプログラムの
実行でエラーが出た時には、次のプログラムは実行しないようにしなさい。
与えられたディレクトリのC言語のソース・プログラムだけを表示するシェル・
スクリプトを作りなさい。
$ ls-c ~/syspro/file/
fd-print.c
file-copy.c
mmap-head.c
stdio-thru.c
utmp-print.c
wtmp-last10.c
ystat.c
ystat.h
ヒント:シェルの
ファイル名置換
で *.c や *.h といったファイル名のものだけを取り出す。
余裕があれば、-l などのオプションが付けられるようにしなさい。
バックアップ・ファイルとのdiff
で複数のファイルを引数に取れるよう
にしなさい。
$ diff-backup kadai10.txt kadai11.txt kadai12.txt
ヒント:for 文で、引数のファイルについて、"$file"~ のような名前のファイ
ルが存在するかを調べる。存在すれば、diff コマンドで表示する。
Windows 系のコンピュータから Unix へファイルをコピーすると大文字のファ
イル名になってしまうことがある。そのようなファイル名を全て小文字にする
ようなスクリプトを書きなさい。
% mv-lower [A-Z]*
ヒント:ファイル名を echo して、tr で小文字にして、それを
`` でシェル変数に入れる。元の名前から小文字
の名前に mv で変える。
余裕があれば、大文字と小文字を変換することで、ファイルが上書きされる時
には警告を出したり、ユーザに問い合わせたりするようにしなさい。
引数として2つの数 n, m 、および、ファイル名を取り、そのファイルの n
行めから m 行目までを表示するシェル・スクリプトを作りなさい。
たとえば、次の例では、ファイルの 10 行目から 20 行目までを表示する。
$ show-n-m 10 20 filename
余裕があれば、-n オプションを付けなさい。これは、ファイルに行番号を振
るものである。nl コマンドを使うとよい。(cat -n が使えるシステムもある。)
秒単位でカウント・ダウンをするようなシェル・スクリプトを作りなさい。
$ countdown 5
5
4
3
2
1
0
$
ヒント:sleep 1 で、1秒ごとに止める。
The Unix Super Text 22.3節 参照。
次の機能を確認しなさい。
- ^Z (Control+Z) キー
-
jobs
コマンド
-
fg
コマンド
-
bg
コマンド
-
%
によるジョブの指定方法
-
stop
コマンド (%
による指定)
-
kill
コマンド (%
による指定)
「ccコマンド」 の所で用いたhello.c をコピーし、コ
ンパイルし、実行しなさい。
「javac コマンドと java コマンド」で用いた
Hello.java をコピーし、コンパイルして実行しなさい。
iTerm の設定を変更して、文字コードとして UTF-8 を利用してみなさい。
端末の文字コードが EUC のものと、UTF-8 のもので、次のコマンドの実行結果
を比較しなさい。
$ locale
$ echo $LANG
漢字の名前をディレクトリを含むディレクトリで、次のコマンドの結果を比較
しなさい。
$ cd 漢字のディレクトリを含むディレクトリ
$ ls
$ ls -v
$ ls | cat
$ ls | nkf -e
$ ls | nkf -w
端末の中で Emacs を実行し、M-x set-keyboard-coding-system と M-x
set-terminal-coding-system やで、端末の入出力の文字コードて適合させなさ
い。
MacOSX の javac コマンドは、標準では、Shift_JIS でエラー・メッセージを
端末に表示する。
$ javac
(Shift_JISのエラー・メッセージ)
次のように打つと、EUC でエラー・メッセージが表示される。
$ javac -J-Dfile.encoding=eucJP
(EUCのエラー・メッセージ)
また、Java言語のソース・プログラムの文字コードとして EUC を利用するには、
次のようにする。
$ javac -encoding eucJP file.java
以上のことを確認しなさい。
回答をテキスト・ファイルに記述し、(レポート提出
ページ)から提出しなさい。
(1) 内部的にWWWロボットが利用されていると思われる検索エンジンを利用しな
さい。10件以下の Web ページがヒットするような、キーワード(できるだけ少
なく)の組み合わせを探しなさい。この時、AND演算、OR演算、NOT演算を利用し
てよい。レポートには、次の情報を含めなさい。
- 利用した検索エンジンの URL
- 検索エンジンに与えたもの
- AND、OR、NOTによる式
(2) quota コマンドを実行しなさい。大きなファイルを cp コマンド等でコピー
しなさい。その後、再び、quota コマンドを実行しなさい。コピーの前後で数
字が変化した部分と変化しなかった部分がある。変化した部分は、何を意味す
るのか説明しなさい。変化しなかった部分で、重要な数字を1つ選び、何を意
味するのか説明しなさい。
(3) Emacs の query-replace の機能を
使って、次の文書の Emacs の部分を自分の学籍番号に変えなさい。
GNU Emacs is a version of Emacs, written by the author of the original
(PDP-10) Emacs, Richard Stallman. The primary documentation of GNU
Emacs is in the GNU Emacs Manual, which you can read on line using
Info, a subsystem of Emacs. Please look there for complete and
up-to-date documentation. This man page is updated only when someone
volunteers to do so; the Emacs maintainers' priority goal is to
minimize the amount of time this man page takes away from other more
useful projects. The user functionality of GNU Emacs encompasses
everything other Emacs editors do, and it is easily extensible since
its editing commands are written in Lisp.
(4) 漢字2000文字からなる文書を考える。漢字1文字を2バイト(16ビット)で符
号化すると、何バイト(何ビット)必要か。この文書を、通信速度が1M bps
(bit / s)のネットワークで転送すると、何秒かかるか。ただし、ネットワーク
のすべての帯域は、このデータを送るため利用可能であるものとする。データ
圧縮は行われないものとする。計算過程も含めて示しなさい。
(5) 容量が 700Mバイト の CD がある。この CD に含まれている情報を、通信
速度が 2M bps (bit/s)のネットワークで送信した時に、何秒かかるか。ただし、
ネットワークのすべての帯域は、このデータを送るため利用可能であるものと
する。データ圧縮は行われないものとする。計算過程も含めて示しなさい。
(6) 次のプログラムから2つ選び、検索機能、または、文字列の置換え機能を利
用してみなさい。
- Firefox
- Thunderbird
- MS-Word
- Excel
- find コマンド
- lv コマンド
- Finder
次のことを報告しなさい。
- 用いたプログラム。
- 検索の目的。何を検索したいのか。
- 行ったキー操作。ショートカットを使ったどうか。
- 検索機能を使わなかった時に、同じ目的を達成するための方法。
(例: 全てのメールを目で読んで探す。)
- 検索機能を使うことの利点。
(7) [加点] 次のコマンドを1つ以上使うシェル・スクリプトを、合計2つ作成し
なさい。
- testコマンド、「[」コマンド
- 「&&」
- 「||」
- if コマンド
- for
- while
作成したシェル・スクリプトについて、それぞれ次のことを報告しなさい。
- コマンド名
- 目的(例:こういう操作を簡単に実行できるようにするため。)
- 使い方(引数の説明など)
- ls -l の結果
- シェル・スクリプトの内容(ファイルを emacs C-x i 等で挿入する)
作成するシェル・スクリプトとしては、このページにある
練習問題
練習問題(2015) から
練習問題(2021) まで
から選んでもよい。
(8) [加点] 正規表現の検索機能を用いて、次のファイルやコマンドの出力から
目的のもの検索して画面に表示しなさい。選択ではなく、全て実行しなさい。
なお、grepコマンドには、or の機能がない。orが必要な場合、grep コマンド
を複数回実行してもよい。egrep 機能を用いれば 1 回で終わることもある。
- ファイル:
Webサーバ・アクセスログ
。
目的: 自分が作成したWWWページのうち、HTMLファイルへのアクセス。
(ssh で www にログインして行う。)
- コマンドの出力: ps auxw。
目的: 自分のプロセスだけ表示。(この課題では、ps の -U オプションを使わないこと。)
- コマンドの出力: ls -l。目的: ディレクトリだけ表示。
- コマンドの出力: ls -l。目的: 普通のファイル「以外」表示。
- コマンドの出力: ls -l。目的: グループ、または、他人が読めるものだけ表示。
レポートには、コマンドラインと実行結果を含めなさい。実行結果が10行以上
に渡る時には、途中を省略しなさい。アクセス・ログに時分のページへのアク
セスがない場合には、Web ブラウザでアクセスしてログに含ませなさい。
Last updated: 2013/07/03 12:09:01
Yasushi Shinjo / <yas@cs.tsukuba.ac.jp>