2007年04月24日 情報科学類 コンピュータリテラシ 筑波大学 システム情報工学研究科 コンピュータサイエンス専攻, 電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2007/2007-04-24
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/
ファイルとディレクトリは、ハード・ディスクを便利にしたもの。 「永続性」という性質が大事。
ファイル(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 > file2GNU 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
木構造(tree structure)というのは、コンピュータ・サイエン ス(情報科学類で学ぶ学問)でよく使われる用語。 を階層構造(hierarchical structure)ともいう。
木構造の例を、大学の組織を使って説明する(図1)。
筑波大学
コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。
区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木 の根に近いほうから書く流儀と遠い方から書く流儀がある。
コンピュータでは、次のような場所で木構造が使われている。
コンピュータ以外では、次のような場所で木構造が使われている。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2006-10-23/
ルート・ディレクトリの名前は、/
(スラッシュ 1 文字)。
ルートディレクトリから出発する方法で表記するパス名を、 絶対パス名(absolute path name)
絶対パス名は、ルートディレクトリを表す「/」の後に、 たどった枝の名前を並べ、間に区切りとして「/」をはさむ。
例:/usr/bin/ls
カレント・ワーキング・ディレクトリを表示するには、pwd (print working directory) コマンドを使う。
% pwd表示されている「/USA/California」が絶対パス名で表示されたカレント・ワー キング・ディレクトリの名前。/USA/California %
![]()
カレント・ワーキング・ディレクトリを変更するにはcd(change directory) コマ ンドを使う。
% 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 では、 ̄
となることがある。
他人のホーム・ディレクトリは、「~ユーザ名」で指定できるプログラムがある。 (指定できないもプログラムもある。)
「~xxx」と「~/xxx」のように 「~」直後に「/」の有無で意味が違う。
% lsDesktop Library Music Public WinFiles Documents Movies Pictures Sites public_html % ls -a
. .cshrc~ Movies .. .emacs Music .CFUserTextEncoding .emacs.d Pictures .DS_Store .login Public .Spotlight-V100 .profile Sites .Xauthority .ssh WinFiles .backupfiles2006 Desktop public_html .bashrc Documents .cshrc Library %
![]()
% cat /etc/csh.cshrc# System-wide .cshrc file for csh(1). if ($?prompt) then set promptchars = "%#" if ($?tcsh) then set prompt = "[%m:%c3] %n%# " else set prompt = "[%m:%c3] `id -nu`%# " endif endif %
![]()
% head /etc/services# # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # # The latest IANA port assignments can be gotten from # # http://www.iana.org/assignments/port-numbers %
![]()
よく使われるページャとしては、次のようなものがある。
標準的なページャの操作方法。
キー | 説明 |
スペース | 次のページ |
f | 1ページ進める(forward) |
b | 1ページもどる(back) |
q | 終了 |
j | 1行進める |
k | 1行もどす |
g | 先頭にもどる |
G | 末尾にもどる |
/str | 文字列 str をファイルの末尾に向かって探す |
?str | 文字列 str をファイルの先頭に向かって探す |
n | 直前の検索をファイルの末尾に向かって繰り返す(next) |
N | 直前の検索をファイルの先頭に向かって繰り返す(next) |
% cp file1 file2 dirこの場合、dir 以下に、(一番葉の部分だけ)同じ名前のファイルが作られる。 次の操作と概ね同じ動作をする。![]()
% cp file1 dir/file1% cp file2 dir/file2
![]()
ディレクトリを指定する時には、カレント・ワーキング・ディレクトリ 「.」 や ホーム・ディレクトリ「〜」も使える。
% cp /etc/group .% cp /etc/group ~
![]()
% 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--」のファイル
% ls -l /etc/passwdls コマンドにディレクトリ名を与えると、ディレクトリそのものではなく、そ の内容が表示される。-rw-r--r-- 1 root wheel 1932 Aug 22 2005 /etc/passwd %
![]()
% ls -l ~compsys1ディレクトリ自身を表示したい時には、ls -l -d (ls -ld) とする。total 40 drwx------ 3 compsys1 lecture 102 Feb 24 2006 Desktop drwx------ 3 compsys1 lecture 102 Feb 24 2006 Documents drwx------ 21 compsys1 lecture 714 May 9 2006 Library drwx------ 3 compsys1 lecture 102 Feb 24 2006 Movies drwx------ 3 compsys1 lecture 102 Feb 24 2006 Music drwx------ 4 compsys1 lecture 136 Feb 24 2006 Pictures drwxr-xr-x 4 compsys1 lecture 136 Feb 24 2006 Public drwxr-xr-x 11 compsys1 lecture 374 Feb 9 18:19 public_html %
![]()
% ls -ld ~compsys1drwxr-xr-x 25 compsys1 lecture 850 Feb 9 18:18 /home1/lecture/compsys1 %
![]()
% 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 ファイルの属性の表示 ls -ld d1 ls -l -d の組み合わせ pwd カレント・ワーキング・ディレクトリの表示 cd dir カレント・ワーキング・ディレクトリの変更 cd ホーム・ディレクトリへ移動 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以下への移動) mkdir dir ディレクトリの作成 mkdir -p d1/d2/d3 ディレクトリの作成(親も自動的に作成) rmdir dir ディレクトリの削除(空のディレクトリの時) rm -r dir ディレクトリの削除(ディレクトリの内容も削除) f1, f2, f3 はファイル名、dir, d1, d2, ... は、ディレクトリ名 mode は、モードを表わす数字や記号。
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- のまま。
カーソル移動には、矢印キー(←、→、↑、↓)も使えるが、 手がホームポジションから離れてしまうのでよくない。 Control キーを使う方法を使う。 The Unix Super Text 12.3.3項 参照, 手引き 3.2.2項 参照。
C-b backward-char C-f forward-char C-p previous-line C-n next-line
「削除リング」という考え方がある。
カーソルの左側を削除する方法とカーソルの右側(カーソルのある場所)を 削除する方法がある。
大量の削除には、カット&ペーストのカットだけを行うとよい。
マーク、ポイント(カーソルのある位置)、リージョン。
Emacs の得意技。インクリメンタル・サーチ。 C-s, C-r の後、RET で通常の検索になる。
M-% と打つと、ミニバッファで次のように聞かれる。
C-x i は、他のファイルをサーソルの位置に全て読み込む。
次のような言語が選択できる。
ASCII Brazilian Portuguese Bulgarian Chinese-BIG5 Chinese-GB Czech Dutch English French German Italian Japanese Korean Polish Romanian Russian Slovak Slovenian Spanish Swedish Thai
フォントの問題でうまくいかないかもしれない。
% cd ~% ls
% ls -a
% ls -l
% ls -la
![]()
% cd ディレクトリ名% ls
% ls -l
![]()
注意:F1 キーは、iTerm 等の端末の中で動作する Emacs では使えない。
加点課題を提出する時には、開始時刻と終了時刻が必要になるので、必ずメモ しなさい。
% emacs「%」はプロンプトなので打たなくてもよい。![]()
まず、X11 を実行する。Dock のアイコンをシングルクリック、 または、「ユーティリティの」の「X11.app」をダブルクリックする。
端末が一個開かれる。この中で次のように打つ。
% emacs![]()
次の方法と比較しなさい。
% emacs -nw![]()
M-x set-buffer-file-coding-systemEmacsと文字コードで説明したように、 文字コードとして、euc-jp-unix, iso-2022-jp-unix, shift_jis-unix を 切り替えて、保存(C-x C-s)しなさい。
作成したテキスト・ファイルを、Web ブラウザで表示しなさい。Web ブラウザ では、文字のエンコーディングを変えて、その通りになっているかを調べなさ い。
「テキストエディット.app」は、プログラムは、「アプリケーション」の中に ある。アプリケーションは、Finder で Shift+Command+A と打つか、「移動」 メニューから「アプリケーション」を選ぶ。次のように端末からコマンドを打っ てもよい。
% open /Applications/TextEdit.ap![]()
Emacs で保存したファイルを「テキストエディット.app」で開くとどうなるか 調べなさい。逆に、「テキストエディット.app」で保存したファイルをEmacs で開くとどうなるか調べなさい。
どの文字コードなら「テキストエディット.app」で開けるかしらべなさい。ま た、改行コードがどうなっているかを調べなさい。
% cp ~yas/public_html/coins/literacy-2007/2007-04-24/literacy-assignment-4.txt .最後の「.」が大事。
作成したファイルを、 レポート提出ページから提出しなさい。