2010年04月20日 情報科学類 コンピュータリテラシ 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2010/2010-04-20
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
ファイルは、ハード・ディスクを便利にしたもの。 今日の講義では、「永続性」という性質に焦点を当てる。
同じコンピュータでも、どのプログラムが動いているかによって、上のどの方 法が使えるかが変化する。また同じプログラムでも、局面に応じて上のどの方 法が有効が違うことがある。初期のコンピュータと比較して、最近のコンピュー タは、マウスだけで操作できる部分が大きくなってきている。しかし、電子メー ルを打ったり、文書を書いたりする局面では、キーボードを中心に使う方が、 マウスとキーボードの間での手の移動が少なくなるので、効率がよい。
次のような状態の時に、2の状態になる。
図? メインフレームと端末
図? 端末とアプリケーション
図? 端末プログラムとアプリケーション
The Unix Super Text 3.2 参照。
例1: 「~」キー。JIS配列では、「0」キーの右の右。かなの「へ」。
キーボードからのデータを加工してアプリケーション・プログラムに 渡すプログラム。Input Method という考え方で呼ばれることもある。
図? キーボードとフロントエンドプロセッサ
使えるもの。
iMac のマウスは、ボタンがないように見えるが、それに相当する 場所(左右)を押すと反応する。真ん中ボタンは、丸いもの。
プログラムの「実行」と「起動」は、だいたい同じ意味。 実行したプログラムは、自動的に終了するものと自動的には終了しないものがある。 まれに、プログラムを強制終了させる必要が出てくる。
MacOSX の Finder は、次のような役割を持つ。
シェルとは、オペレーティング・システムの構成要素の1つである。シェルは、 オペレーティング・システムの中心部分を貝殻のように包みむプログラムであ る。シェルは、人間とコンピュータが対話(interaction)をする時に重要な 機能を果たす。
MacOSX では、Finder という名前のプログラムがシェルに相当する。
Unix (Linuxを含む) では、sh, csh, bash, tcsh, zsh などさまざまな種類の シェルを使うことができるようになっている。X ウインドウを使っている状態 (マウスが使える状態)では、ウインドウ・マネジャと呼ばれるプログラムも、 シェルとしての働きがある。
Windows では、Explorer という名前のプログラムがシェルに相当する。
coins での標準のシェルは、bash (2009年までtcsh)。
$ exit
bash が動いている時には、コンピュータの画面には、次のような表示がなされ る(コンピュータ、ユーザによって異なる)。
cosmos38:~ i1012345$
このような記号は、プロンプト(prompt)という。これは、シェルが人間に対し
て、コマンド(command、命令) の打込みをうながしている(prompt)ことを表す
印である。
この状態で、キーボードからコマンド名(命
令の名前)を打ち込み、最後にリターン・キー(Enter, 以下の説明では、プロンプトが「$ 」であるものとする。キーボードから 「$ 」を打つ必要はない。(プロンプトの記号は、設定で変更することもできる。)
$ exit
シェルを終了しても、端末プログラムが動いたままのことがある。
端末プログラムをもう利用しないなら、
端末プログラムも終了する。終了の方法は、プログラムによって異なる。
$ コマンド名 オプション1 オプション2 ... 引数1 引数2 ..
コマンド名に続く オプション(option)とは、コマンドの動きを少し変えるた めの文字列(文字の並び)である。オプションは、一般には付けても付けなく てもコマンドの働きとしては成り立つ。引数(ひきすう、argument,parameter) は、コマンドの種類によっては、必ず必要となるものである。ただし、オプショ ンと引数の区別は、必ずしも厳密ではなく、混同して使われることもある。 (例:必須のオプション)
コマンド名やオプションや引数は、空白で区切る。空白の有無で、まったく動 作が変る。
たとえば、次の行は、「whoという名前のコマンドを、オプションも引数も無 しで実行する」という意味する。
$ who
ファイル(file)は、コンピュータの中で「情報を保存する」ための仕組み。 ファイルは、ビット列を(バイト単位で)保存する。
記憶媒体
ファイルの大事な役目は、「情報に名前を付ける」という機能。
ディレクトリ(directory)は、ファイルに名前を付ける働きを持っている仕掛 けを提供するもの。フォルダ(folder)と呼ばれることもある。
ディレクトリは、ファイルの名前の一覧表として現れる。
ファイルの性質
ls
, ls -l
, ls -ld
pwd
cat
, head
, lv
mv
rm
ファイルには、名前(ファイル名(file name))がついている。 ファイルを操作するには、ファイル名を指定する。
/
」 は特別な意味があり、ディレク
トリの区切りを意味する。普通のファイル名は、「/
」 以外の次のよ
うな文字を使うと問題が起きない。
-
」(マイナス)、「_
」(下線)、「.
」(ドット、点)
Unixでは、ファイル名としてアルファベットの大文字と小文字の両方使え、か つ、両者は区別される。普通は小文字を使う。Makefile や README のように、 特に注目して欲しいファイルの名前に大文字を使う。
MacOSX では、大文字小文字の違いは保存されるが、
区別されないことがある。
abc
という名前は、Abc
でもABC
でも操作できることがある。
MacOSX の Finder は、ディレクトリの名前を加工して表示する。
ファイル名「~
」は、ホームディレクトリを表す特殊な名前。
シェルや Emacs で使える。ホームディレクトリとは、
個人個人のファイルを保存するための起点となるディレクトリ。
ls コマンドを実行すると、存在するファイルの一覧を表示する。
$ ls
Desktop Maildir coins public_html tmp
Documents WinFiles dot secure_html u
Downloads backupfiles2010 etc sie
Library bin lib syspro
$
$ echo This is a pen. > file1
$
>
は、シェルの入出力の切り替え(リダイレクション)の
指定で、詳しくは後日。
cat コマンドを使うと、数行のテキスト・ファイルを作ることができる。
$ cat > file2
GNU is Not Unix!
Try Hurd.
$
^D
(Control D)と表記することもある。この
例では、本格的にテキスト・ファイルを作成するには、Emacs などの テキストエディタを使う。
指定したファイルの内容と全く同じ内容を持つファイルを作ること
ファイルのコピーの目的
ファイルをコピーするには cp (copy) コマンドを使う。
$ cp file1 file2
この結果、ファイル file1 が ファイル file2にコピーされる。
コピー先のファイルfile2が存在しない時は新しくファイルfile2が作られる。
コピー先のファイルが既に存在していた場合、その内容は上書き(overwrite),うわがき)される。 (古い内容を消して新しい内容で埋める)。
ファイルを消すには、rm (remove) コマンドを用いる。
$ rm file1
このファイル file1 が削除される。
rm コマンドで消してしまったファイルは、一般的には2度と戻らない。 消す前に、本当に不要かどうかを確認すること。
ファイル名を変更するには mv (move) コマンドを使う。
$ mv oldname newname
この結果、ファイルoldfileのファイル名をnewnameに変更される。
ここで、newname のファイルが存在した場合、元の newname は消されてしまう。
No such file or directory
Permission denied
No space left on device
Disc quota exceeded
ls -l コマンドを実行するとカレントディレクトリのファイルや ディレクトリの属性が表示される。
$ ls -l
total 162
drwx------ 6 yas prof 4096 Apr 9 20:30 Desktop
drwx------ 4 yas prof 4096 Apr 2 14:14 Documents
drwx------ 17 yas prof 4096 Apr 7 13:35 Library
drwx------ 11 yas prof 4096 Apr 14 17:06 Maildir
drwxr-xr-x 3 yas prof 4096 Mar 9 12:10 WinFiles
drwxr-xr-x 3 yas prof 4096 Apr 15 13:35 bin
drwxr-xr-x 35 yas prof 4096 Apr 12 11:44 coins
-rw------- 1 yas prof 6 Apr 19 21:25 dead.letter
...
$
行単位に次のようなファイルやディレクトリの属性が表示さる。
drwx------,drwxr-xr-x,-rw-------
など)
6,4,17,... など
)
yas
)
prof
)
4096,6
など)
Apr 9
など)
Desktop
など)
ls -lu
で表示される。
ls -lc
で表示される「時刻」。
モードの一番左1文字は、ファイルの型(type)を表わす。
-
d
モードからファイルの型を除いた部分はアクセスの可否を決めるための 情報。9文字ある。左から3文字の固まりが3組ある。
各3文字はアクセス毎にその許可・拒否を表す。
r 読込み可 w 書込み可 x 実行可(ディレクトリの場合は探索可)モードで該当する部分が「
-
」の場合は、その種類のアクセスが許可さ
れてないことを意味する。
「読込み可」とは、その内容を参照できること意味する。たとえば、cp コマン ドでコピーできる。読出し可能なディレクトリなら、ls コマンドでそのディレ クトリ中のファイル名の一覧を表示できる。
「書込み可」とは、その内容を変更することができることを意味する。たとえ ば、テキスト・ファイルなら、エディタで修正したものを書き込むことができ る。書込み可能なディレクトリなら、mv コマンドでそのディレクトリのなかに あるファイル名前を変更できる。
「実行可」というのは、ファイルの内容がプログラムの場合は、 そのプログラムを実行することができる。
ディレクトリに対する 「検索可」というのは、その下にあるファイルやディレクトリを たどっていけるという意味である。
ディレクトリが「読込み可」でも、「検索可」でないと、 ディレクトリに「読込み可」のファイルがあっても、 ディレクトリに入ってファイルを読むことができない。 逆に、「検索可」でも、ディレクトリが「読込み可」でないと、 ディレクトリにあるファイル名やディレクトリ名を表示させることが できない。
そのディレクトリにあるファイル名を知っていて、そのファイルが「読み込み 可」なら読むことがでる。
アクセスするユーザによって異なったアクセスの許可・拒否がしたいことがあ る。そのために、rwxの指定は、ファイルの所有者、ファイルの属すグループ、 それ以外の人用に3セット用意されている。
例:モードが「rw-r--r--
」のファイル
rw-
」、
つまり「読み書きはできるが、実行はできない」
r--
」、つまり「読めるが書いたり実行したりはできない」
r--
」、つまり「読めるが書いたり実行したりはできない」
$ ls -l /etc/passwd
-rw-r--r-- 1 root wheel 1932 Aug 22 2005 /etc/passwd
$
ls コマンドにディレクトリ名を与えると、ディレクトリそのものではなく、そ
の内容が表示される。
$ ls -l /home/lecture/syspro
total 65
drwx------ 2 syspro lecture 4096 Apr 19 18:53 Desktop
drwx------ 8 syspro lecture 4096 Apr 19 18:53 Library
drwx------ 5 syspro lecture 4096 Mar 1 18:10 Maildir
drwxr-xr-x 3 syspro lecture 4096 Feb 22 19:56 backupfiles2010
-rw------- 1 syspro lecture 6 Apr 19 19:14 dead.letter
drwxr-xr-x 11 syspro lecture 4096 Apr 2 12:40 public_html
drwxr-xr-x 4 syspro lecture 4096 Apr 12 12:00 secure_html
drwxr-xr-x 11 syspro lecture 4096 Apr 12 12:00 syspro-2010
drwxr-xr-x 3 syspro lecture 4096 Apr 19 19:09 tmp
$
ディレクトリ自身を表示したい時には、ls -l -d (ls -ld) とする。
$ ls -ld /home/lecture/syspro
drwxr-xr-x 16 syspro lecture 4096 Apr 19 19:13 /home/lecture/syspro
$
$ man man
$ man ls
$ man mkdir
$ man -k keyword
引数として調べたいコマンドの名前を与える。-k に続いてキーワードを与える
ことで検索もできる。
GNU Emacs (ぐにゅー いーまっくす)。 Free Software Foundation開発。 Richard Stallman 原作。
3種類ある。
漢字コード | モードラインの表示 | Emacsの設定 |
EUC | E | euc-jp-unix |
JIS | J | iso-2022-jp-unix, junet |
Shift_JIS | S | shift_jis-unix |
UTF-8 | u | utf-8-unix |
emacs記号 | 制御コード(16進数) | 説明 | Controlキー | C言語表記 |
-unix | 0a | nl (new line) | Control+j | \n |
-mac | 0d | cr (carriage return) | Control+m | \r |
-dos | 0d 0a (2文字) | cr nl | Control+m Control+j | \r\n |
dos (Disk Operating System) は、MS-DOS (Microsoft DOS) の意味。 Microsoft Windows の前進。
Emacs では、主に次の3つを変更する。
表示 | 意味 |
** | 変更された(未保存) |
-- | 変更なし(保存済み) |
%% | 書き込み禁止 |
%* | 書き込み禁止バッファが変更された |
Meta キーがない時には、Esc キーを使う。 例えば、M-x と打ちたい時には、 例えば、まず、Escキーを打ち(離し)、その後、x キーを打つ。 (キーを2回に分けて打つ。) ただし、説明の表記は、M- のままなので注意する。
カーソル移動には、矢印キー(←、→、↑、↓)も使えるが、 手がホームポジションから離れてしまうのでよくない。 Control キーを使う方法を使う。 The Unix Super Text 12.3.3項 参照, 手引き 3.2.5項 参照、 手引き 表3.3 参照。
C-b backward-char C-f forward-char C-p previous-line C-n next-line
カーソルの左側を削除する方法とカーソルの右側(カーソルのある場所)を 削除する方法がある。
C-d delete-char DEL delete-backward-char
大量の削除には、カット&ペーストのカットだけを行うとよい。
C-SPC
または C-@
で設定する。
うまくいくと、ミニバッファに Mark set と表示される。
カーソルを動かしても移動しない。
次に新しいマークをセットするまで有効。
C-w
)
M-w
または Esc w)
indent-region
)
http://www.coins.tsukuba.ac.jp/
を
開く。
シェル
exit コマンドを使って、ウインドウの内部のシェルを終了しなさい。
$ exit
左上の「iTerm」 のメニューをクリックしなさい。メニューの一番したの 「iTerm を終了」をクリックする。
LANG="ja_JP.eucJP"
と表示されることを確認する。
iTerm、環境設定、プロファイル設定、ターミナル。(クリックで拡大)
ついでに、ウインドウの大きさを、標準の 80x24 から 80x40 程度に大きくし、 文字フォントを 14 ポイント程度に大きくするとよい。横幅は、普通、80 だが、必要に応じて広くする。「デフォルトを更新」を選ば なければ、そのウィンドウだけが変更され、設定は残らない。
なお、 EUC には、日本語以外(韓国語、中国語、その他)もある。iTerm で日本 語を表示するには、日本語EUCを選ぶ。
$ ls
$ ls -a
$ ls -l
$ ls -la
$ lv -help
次のキーの動作を確認しなさい。
キー | 説明 |
スペース | 次のページ |
f | 1ページ進める(forward) |
b | 1ページもどる(back) |
q | 終了 |
j | 1行進める |
k | 1行もどす |
g | 先頭にもどる |
G | 末尾にもどる |
/str | 文字列 str をファイルの末尾に向かって探す |
?str | 文字列 str をファイルの先頭に向かって探す |
n | 直前の検索をファイルの末尾に向かって繰り返す(next) |
N | 直前の検索をファイルの先頭に向かって繰り返す(next) |
ls f1 f2 f3 ファイルの名前の一覧の表示 ls dir ディレクトリの内容の表示 ls カレント・ワーキング・ディレクトリの内容の表示 ls -d d1 d2 d3 ディレクトリの名前の一覧の表示 ls -a dir ディレクトリの内容の表示(.で始まる名前も表示) ls -l f1 f2 f3 ファイルの属性の表示 ls -ld d1 ls -l -d の組み合わせ cat f1 ファイルの内容の表示 cat > f1 ファイルの作成 head f1 ファイルの内容の表示(最初の10行) cp f1 f2 ファイルのコピー cp f1 f2 f3 dir ファイルを指定されたディレクトリへコピー cp f1 f2 f3 . ファイルをカレント・ワーキング・ディレクトリへコピー rm f1 f2 f3 ファイルの削除 mv old new ファイルの名前を変える mv f1 f2 f3 dir ファイルの名前を変える(dir以下への移動) rm -r dir ディレクトリの削除(ディレクトリの内容も削除) f1, f2, f3 はファイル名、dir, d1, d2, ... は、ディレクトリ名
$ emacs file1.txt
「$」は、プロンプトなので打ち込まなくてもよい。
拡張子として、.txt
、または、.text
を付ける。
$ emacs
file2.txt
というファイルを作成している。
Find file: ~/file2.txt
$ emacs file1.txt
キー | 説明 |
---|---|
C-x C-s | バッファを保存。 |
C-x C-c | Emacsを終了。 |
C-x C-f | ファイルを探して編集、または、新規作成。 |
C-p | カーソルを移動(previous) |
C-n | カーソルを移動(next) |
C-f | カーソルを移動(forward) |
C-b | カーソルを移動(backward) |
Delete | 左の文字の削除 |
C-k | カーソルの位置から行末まで削除。行末の場合は、改行の削除。 |
C-g | 何か困った時には、何度か打つ。 |
C-_ または C-x u | 取り消し(undo) |
C-SPC または C-@ | 領域(region)の先頭を決める(マーク) |
C-w | リージョン(領域)をカット |
ESC w | リージョン(領域)をコピー |
C-y | リージョン(領域)をペースト |
M-x set-buffer-file-coding-system ![[←]](../icons/screen-return.gif)
Emacsと文字コードで説明したように、
文字コードとして、euc-jp-unix, iso-2022-jp-unix, shift_jis-unix を
切り替えて、保存(C-x C-s)しなさい。
作成したテキスト・ファイルを、Web ブラウザで表示しなさい。Web ブラウザ では、文字のエンコーディングを変えて、その通りになっているかを調べなさ い。
作成したテキスト・ファイルを、lv コマンドで表示しなさい。そして、 = キーを打ちなさい。すると、ファイル名、先頭からの位置(バイト 数)に続き、ファイルの文字コードが表示される。
M-x help ![[←]](../icons/screen-return.gif)
(M-x は、Esc x でもよい。)
C-u M-x help ![[←]](../icons/screen-return.gif)
t 言語 ![[←]](../icons/screen-return.gif)
言語
としては、次のようなものの中から選択できる。
ASCII Brazilian Portuguese Bulgarian Chinese-BIG5 Chinese-GB Czech Dutch English Esperanto French German Italian Japanese Korean Polish Romanian Russian Slovak Slovenian Spanish Swedish Thai
フォントの問題でうまくいかないかもしれない。
$ typist
そして、タイプ練習を行いなさい。
$ cp ~yas/public_html/coins/literacy-2010/2010-04-20/literacy-assignment-3.txt . ![[←]](../icons/screen-return.gif)
作成したファイルを、 レポート提出ページから提出しなさい。