2006年4月28日 コンピュータリテラシ 筑波大学 電子・情報工学系 コンピュータサイエンス専攻 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2006/2006-04-28
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
From: Shiro Yagi <shiro@is.tsukuba.ac.jp> To: i06012345@coins.tsukuba.ac.jp Subject: Re: [coins-computer-literacy-a] Assignment-3, e-mail reply (2006012345) Date: Tue, 25 Jan 2006 16:15:25 +0900 Message-Id: <200604251615.k0NEgPTw003900@azalea20.coins.tsukuba.ac.jp> コンピュータ・リテラシTAの○○さん こんにちは。コンピュータ・リテラシの授業を受けている白やぎです。 4月25日に出された課題の電子メールを提出します。 > この行と次の行だけを引用してください。返信には、このメールを > 書いた日付と時刻を入れてください。 2006年4月25日 16:10です。 よろしくお願いします。 白やぎ
ファイルとディレクトリは、ハード・ディスクを便利にしたもの。 「永続性」という性質が大事。
ファイル(file)は、コンピュータの中で「情報を保存する」ための仕組み。 ファイルは、ビット列を(バイト単位で)保存する。
記憶媒体
ファイルの大事な役目は、「情報に名前を付ける」という機能。
ディレクトリ(directory)は、ファイルに名前を付ける働きを持っている仕掛 けを提供するもの。フォルダ(folder)と呼ばれることもある。
ディレクトリは、ファイルの名前の一覧表として現れる。
ファイルの性質
ファイルには、名前(ファイル名(file name))がついている。 ファイルを操作するには、ファイル名を指定する。
/
以外の文字が使える。
次の文字は、問題が起きない。
-
(マイナス)、_
(下線)、.
(ドット、点)
Unixでは、ファイル名としてアルファベットの大文字と小文字の両方使え、か つ、両者は区別される。普通は小文字を使う。Makefile や README のように、 特に注目して欲しいファイルの名前に大文字を使う。
MacOSX では、大文字小文字の違いは保存されるが、
区別されないことがある。
abc
という名前は、Abc
でもABC
でも操作できることがある。
MacOSX の Finder は、ディレクトリの名前を加工して表示する。
ls コマンドを実行すると、存在するファイルの一覧を表示する。
% lsDesktop Movies Public backupfiles2006 Documents Music Sites public_html Library Pictures WinFiles %
![]()
% echo This is a pen. > file1%
![]()
>
は、シェルの入出力の切り替え(リダイレクション)の
指定で、詳しくは後日。
cat コマンドを使うと、数行のテキスト・ファイルを作ることができる。
% cat > file2終わりの印のGNU is Not Unix! Try Hurd. ^D %
![]()
^D
が来るまでキーボードから打ち込まれた文字を
テキスト・ファイル file2 にコピーしている。
本格的にテキスト・ファイルを作成するには、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
木構造(tree structure)というのは、コンピュータ・サイエン ス(情報学類で学ぶ学問)でよく使われる用語。 を階層構造(hierarchical structure)ともいう。
木構造の例を、大学の組織を使って説明する(図1)。
図1では、筑波大学と書いてある所が木の根にあたる。根からは、何本かの学 群の枝が出ている。このように、コンピュータ・サイエンスでは、木の根を上 に書く習慣がある。第三学群の節には、情報学類、社会工学類などの子の節が ある。第三学群の親は、筑波大学である。
A、B、2つの集合があると、一般には、次の4つに分割される。
図3 2つの集合の関係
筑波大学
筑波大学第三学群情報学類
コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。
筑波大学.第三学群.情報学類
筑波大学/第三学群/情報学類
情報学類.第三学群.筑波大学
区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木 の根に近いほうから書く流儀と遠い方から書く流儀がある。
コンピュータでは、次のような場所で木構造が使われている。
コンピュータ以外では、次のような場所で木構造が使われている。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2005-11-07/
ルート・ディレクトリの名前は、/
(スラッシュ 1 文字)。
ルートディレクトリから出発する方法で表記するパス名を、 絶対パス名(absolute path name)
絶対パス名は、ルートディレクトリを表す「/」の後に、 たどった枝の名前を並べ、間に区切りとして「/」をはさむ。
例:/usr/bin/ls
カレント・ワーキング・ディレクトリを表示するには、pwd (print working directory) コマンドを使う。
% pwd表示されている「/USA/California」が絶対パス名で表示されたカレント・ワー キング・ディレクトリの名前。/USA/California %
![]()
カレント・ワーキング・ディレクトリを変更するにはcd(change change) コマ ンドを使う。
% cd dirname「ディレクトリdirnameにいく」とも言う。![]()
% pwd/USA/California % cd /USA/Florida
% pwd
/USA/Florida % cd /USA/California/San-Francisco
% pwd
/USA/California/San-Francisco %
![]()
カレントワーキングディレクトリは、名前「.」で参照できる。
lsコマンドは引数にディレクトリを指定すると、そのディレクトリの中にある ファイルの一覧を表示するが、引数を与えないと、「.」が与えられたものとし て働く。
% lsLos-Angeles San-Francisco % pwd
/USA/California % ls /USA/California
Los-Angeles San-Francisco % ls .
Los-Angeles San-Francisco %
![]()
カレントワーキングディレクトリを起点としたパス名を 相対パス名(relative path name)という。 「/USA/California」の時、 「San-Francisco」は「/USA/California/San-Francisco」、 「San-Francisco/China-Town」は「/USA/California/San-Francisco/China-Town」の意味となります。
..
」で参照可能。
.
で始る名前のファイルやディレクトリは、
普通 ls コマンドは、表示しない。
表示させるには、lsコマンドに-aオプションをつける。
cd コマンドに引数を与えないと、ホーム・ディレクトリにもどる。
多くのシェル(csh,tcsh,bash,zsh
)
やEmacsなどでは、
ホームディレクトリを~で指定できる
(指定できないプログラムもある。)
〜
は、ASCIIの形。
JIS では、 ̄
となることがある。
% mkdir dirnameこの結果、![]()
![]()
dirname
という名前のディレクトリが作らる。
% ls dirnameこの結果、ディレクトリdirnameの中(下)にあるファイルと ディレクトリの名前が表示される。![]()
mvコマンドは、ディレクトリの名前を変更するために使える。
% mkdir dir1% ls
dir1 % mv dir1 dir2
% ls
dir2 %
![]()
% rmdir dirnameこの結果、 ディレクトリdirnameが削除される。![]()
![]()
空でないディレクトリは、rmdir()コマンドでは 「Directory not empty,directorynotempty」 というエラー・メッセージが表示され削除できない。 この場合は、子供のディレクトリやファイル を削除してからもう一度削除する。
ls -l コマンドを実行するとカレントディレクトリのファイルや ディレクトリの属性が表示される。
% ls -l行単位に次のようなファイルやディレクトリの属性が表示さる。total 27224 drwx------ 9 yas prof 306 Apr 27 20:12 Desktop drwx------ 14 yas prof 476 Apr 21 00:14 Documents drwx------ 30 yas prof 1020 Apr 25 15:30 Library -rw------- 1 yas prof 146 Apr 11 15:21 dead.letter drwxr-xr-x 54 yas prof 1836 Apr 13 13:36 public_html %
![]()
ls -lu
で表示される。
ls -lc
で表示される「時刻」。
モードの一番左1文字は、ファイルの型(type)を表わす。
-
d
モードからファイルの型を除いた部分はアクセスの可否を決めるための 情報。9文字ある。左から3文字の固まりが3組ある。
各3文字はアクセス毎にその許可・拒否を表します。
r 読込み可 w 書込み可 x 実行可(ディレクトリの場合は探索可)モードで該当する部分が「-」の場合は、その種類のアクセスが許可されてない ことを意味する。
「読込み可」とは、その内容を参照できること意味する。たとえば、cp コマン ドでコピーできる。読出し可能なディレクトリなら、ls コマンドでそのディレ クトリ中のファイル名の一覧を表示できる。
「書込み可」とは、その内容を変更することができることを意味する。たとえ ば、テキスト・ファイルなら、エディタで修正したものを書き込むことができ る。書込み可能なディレクトリなら、mv コマンドでそのディレクトリのなかに あるファイル名前を変更できる。
「実行可」というのは、ファイルの内容がプログラムの場合は、 そのプログラムを実行することができる。
ディレクトリに対する 「検索可」というのは、その下にあるファイルやディレクトリを たどっていけるという意味である。
ディレクトリが「読込み可」でも、「検索可」でないと、 ディレクトリに「読込み可」のファイルがあっても、 ディレクトリに入ってファイルを読むことができない。 逆に、「検索可」でも、ディレクトリが「読込み可」でないと、 ディレクトリにあるファイル名やディレクトリ名を表示させることが できない。
そのディレクトリにあるファイル名を知っていて、そのファイルが「読み込み 可」なら読むことができます。
アクセスするユーザによって異なったアクセスの許可・拒否がしたいことがあ る。そのために、rwxの指定は、ファイルの所有者、ファイルの属すグループ、 それ以外の人用に3セット用意されている。
例:モードが「rw-r--r--」のファイル
% man man% man ls
% man mkdir
% man -k keyword
![]()
---------------------------------------------------------------------- ls f1 f2 f3 ファイルの名前の一覧の表示 ls dir ディレクトリの内容の表示 ls カレント・ワーキング・ディレクトリの内容の表示 ls -d d1 d2 d3 ディレクトリの名前の一覧の表示 ls -a dir ディレクトリの内容の表示(.で始まる名前も表示) ls -l f1 f2 f3 ファイルの属性の表示 pwd カレント・ワーキング・ディレクトリの表示 cd dir カレント・ワーキング・ディレクトリの変更 cd ホーム・ディレクトリへ移動 cat f1 ファイルの内容の表示 cat > f1 ファイルの作成 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以下への移動) mkdir dir ディレクトリの作成 mkdir -p d1/d2/d3 ディレクトリの作成(親も自動的に作成) rmdir dir ディレクトリの削除(空のディレクトリの時) rm -r dir ディレクトリの削除(ディレクトリの内容も削除) ---------------------------------------------------------------------- f1, f2, f3 はファイル名、dir, d1, d2, ... は、ディレクトリ名 mode は、モードを表わす数字や記号。
追加課題:
(10) man コマンドで ls のマニュアルを読みなさい。そして、次の働きを行う オプションを探しなさい。 「.」で始まるファイルを表示する。 逆順に並べる(ソートする、sort) (ls -lと会わせて使う時に)ディレクトリの内容ではなく、普通のファイルと同 じようにディレクトリそのものを対象とする。