日本語・日本語文化学類2班,1996年10月07日
電子・情報工学系 新城 靖 <yas@is.tsukuba.ac.jp>
このページは、次の URL にあります(1行で打つこと)。
http://www.hlla.is.tsukuba.ac.jp/~yas/classes/ipe/nitiniti2-enshu-1996/1996-09-30/
file-dir.html
http://www.hlla.is.tsukuba.ac.jp/~yas/classes/ipe
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html
http://www.ipe.tsukuba.ac.jp/~yshinjo
計算機(コンピュータ)には、2種類の記憶するためのハードウェアが使われて います。
計算機(コンピュータ)で ファイル (file)とは、情報を保存しておくためにソ フトウェア的に作られた箱のことです。計算機で扱える情報は、2進数で表現 されているのですが、それらを保存するために、様々な記憶媒体(ハードウェ ア)に保存されます。記憶媒体としては、ハードディスク、CD-ROM、光磁気ディ スクがあります。それらの記憶媒体は、日常的に扱う情報を保存するためには 大きすぎますし、扱い型がそれぞれのメディアごとに違っていては困ります。 このような問題を解決するための仕掛がファイルです。ファイルは、ソフトウェ アの働きで、大きな記憶媒体を扱いやすい大きさで、かつ、記憶媒体が変わっ ても同じように扱えるようにしたものです。
ファイルには、情報を保存する役割に加えてもう1つ大事な機能があります。 それは、情報に名前を付けることができるという機能です。この機能は、あた りまえすぎてすぐに有難みがわかないかもしれません。しかし、もし全ての自 分の情報をフロッピ・ディスク1枚1枚に入れてフロッピのラベルに書かれた 情報の名前を自分で読んで操作しなければならないことを想像すれば、情報の 名前を計算機が管理してくれる有難みを実感できるかと思います。
ファイルに名前を付ける働きを持っているソフトウェア的な仕掛けは、ディレ クトリ(directory)と呼ばれています。ディレクトリは、フォルダ(folder) と呼ばれることもあります。計算機の中では、ディレクトリは、ファイルの名 前を保存している特殊なファイルとして扱われています。
ディレクトリは、全体では
木構造(tree structure)
になっています。階層化ディレクトリ(hierarchical directory)ということ
もあります。
図1-1 ファイルとディレクトリの木
/
」で表します。
たとえば、新城のホーム・ディレクトリは、/home1/yshinjo/
です。
これは、次のような意味です。
/
)から出発する。
home1
という名前の節に進む。
yshinjo
という名前の節に進む。
pwd
-- print working directory
cd
-- change directory
ls
-- list the contents of a directory
---------------------------------------------------------------------- % コマンド名 オプション1 オプション2 ... 引数1 引数2 ..----------------------------------------------------------------------
コマンド名は、必須です。オプション(option)とは、コマンドの動きを少し変 えるためのものです。引数(ひきすう、argument,parameter)は、コマンドの 種類によっては、必ず必要とするものです。オプションと引数の区別は、必ず しも厳密ではなく、混同して使われることもあります。
たとえば、次の行は、「mnewsいう名前のコマンドを、オプションも引数も無 しで実行する」という意味です。
---------------------------------------------------------------------- % mnews----------------------------------------------------------------------
たとえば、次のようになります。
---------------------------------------------------------------------- % pwd/home1/yshinjo/ % ls
bin mbox % cd /
% pwd
/ % ls
bin home1 mnt tftpboot vmunix boot home2 net tmp dev kadb pcfs tmp_mnt etc lib sbin usr export lost+found sys var % cd usr
% pwd
/usr % ls
5bin demo kvm openware test 5include diag lddrv openwin tmp 5lib dict lib pub ucb ASCII-JTeX etc local sccs ucbinclude TeX export local.tmp share ucblib X11R5 games lost+found spool xpg2bin adm hosts man src xpg2include bin include mdec stand xpg2lib boot jman old sys %
----------------------------------------------------------------------
★練習問題(1)
..
と.
親ディレクトリは、特殊な名前「..
」がついています。また、カレン
ト・ワーキング・ディレクトリも特殊な名前「.
」で参照することが
できます。
★練習問題(2)
cd ..
」とした時に、カレント・ワーキング・
ディレクトリがどのように変るか調べなさい。
cd .
」とした時に、カレント・ワーキング・
ディレクトリがどのように変るか調べなさい。
less
コマンドは、長いファイルをゆっくりと眺めるためのプロ
グラムです。less では、長いファイルを1ページを表示するごとに、ユーザ
からのスペース・キーの打込みを待ちます。less コマンドの使い方は、mnews
の「ページャ・モード」とよく似ていてます。(歴史的には、less が先にあ
り、mnews ページャ・モードが less コマンドに似せて作られました。)
less コマンドは、次のようにして使います。すなわち、less というコマンド 名に続いて、引数としてファイル名を与えます。
less コマンドでは、次のようなキーが使えます。---------------------------------------------------------------------- % less ファイル名----------------------------------------------------------------------
---------------------------------------------------------------------- キー 動き | キー 動き ---------------------------------------------------------------------- SPACE 1ページ進める | b 1ページ戻す j 1行進める | k 1行戻す q 終了する | h ヘルプの表示 ----------------------------------------------------------------------
★練習問題(3)
(3.1) /etc/hosts
というファイルを、次の2つの方法で表示しなさい。
/var/spool
というディレクトリ、次の2つの方法で表示しなさい。
/var/spool/mail/ログイン名
と
いうファイルの内容を調べなさい。そういう名前のファイルが無い時や、中味
がない時には、自分あてに電子メールを送って見て、mnewsで読む前に同じよ
うに試してみなさい。
「~」は、ユーザのホーム・ディレクトリを表すために使われます。 たとえば、「cd ~」で、ホーム・ディレクトリに移動できます。 また、「less ~/mbox」で、ホーム・ディレクトリにある mboxという名前のファイルを表示させることができます。
「~」には、他のユーザのホーム・ディレクトリを示す機能もあります。たと えば、次のように打つと、ユーザ名 yshinjo のホーム・ディレクトリの内容 を表示することができます。
---------------------------------------------------------------------- % ls ~yshinjo----------------------------------------------------------------------
なお、~は、画面、キーボード、プリンタで形が違う事があります。 〜とあったり、 ̄となっていたりします。Macintosh では、 1 の左の 「〜/`」のキーで打てます。「~」は、上段なので、シフ トを押しながら打ちます。
それから、Macintosh の telnet を使っていて、シフトを押さずに単に「〜/`」 を打つと、「`」ではなく、ESC が入ることがあります。これは、ng (emacs) を使っていると、ESC をよく使うので、通信プログラム(telnet)がそ れを打ちやすくしているのです。
★練習問題(4)
ls コマンドは、普通、---------------------------------------------------------------------- % lsbin mbox % ls -l
total 5 drwxr-xr-x 2 yas 512 Oct 6 18:55 bin -rw------- 1 yas 3380 Oct 6 20:07 mbox %
----------------------------------------------------------------------
.
から始まるファイル名を表示しません。しか
し、-a (all) オプションを付けると、.
から始まるファイル名も表示
します。
★練習問題(5)---------------------------------------------------------------------- % lsbin mbox % ls -a
. .. .cshrc .login .newsrc bin mbox %
----------------------------------------------------------------------
ls -l
」で表示
しなさい。
ls -a
」で表示
しなさい。
ls -la
」で表
示しなさい。「ls -la
」の代わりに「ls -l -a
」
でもよい。
これで、新しいファイルが作られ、古いファイルの内容が新しいファイルの内 容にコピーされます。注意することは、既に「新しいファイルの名前」があっ た時には、そのファイルが消されるということです。---------------------------------------------------------------------- % cp 古いファイルの名前 新しいファイルの名前----------------------------------------------------------------------
★練習問題(6)
次のようにして、cp コマンドの動きを確かめなさい。
% cd%
![]()
ls -a ![[←]](http://www.hlla.is.tsukuba.ac.jp/~yas/yhm/icons/screen-return.gif)
と打ち、.cshrc
という名前の
ファイルが存在すること、および、dot.cshrc
という名前のファイル
が「存在しない」ことを確認する。
% ls -a. .. .cshrc .login .newsrc bin mbox %
![]()
cp
コマンドを使って、.cshrc
という名前のファ
イルを、dot.cshrc
という名前のファイルにコピーする。
% cp .cshrc dot.cshrc%
![]()
% lsbin dot.cshrc mbox %
![]()
.cshrc
という名前のファイルと、
dot.cshrc
という名前のファイルの大きさが同じことを確認しなさい。
% ls -l dot.cshrc .cshrc-rw-r--r-- 1 yas 3380 Oct 6 20:11 .cshrc -rw-r--r-- 1 yas 3380 Oct 6 22:38 dot.cshrc %
![]()
dot.cshrc
という名前のファイルは、以下の練習問題
mv
コマンドや rm
コマンドの練習に使うとよい。
これで、「古いファイルの名前」いうファイルの名前が「新しいファイルの名 前」になります。ファイルの内容は、変りません。ファイルの名前だけが変り ます。注意することは、既に「新しいファイルの名前」があった時には、その ファイルが消されるということです。---------------------------------------------------------------------- % mv 古いファイルの名前 新しいファイルの名前----------------------------------------------------------------------
★練習問題(7)
次のようにして、mv
コマンドの動きを確認しなさい。
cp
コマンドを使って、なにかファイルを作る。
ls
コマンドを使って、ファイルが作られたことを確認する。
less
コマンドを使って、ファイルの内容を確認する。
mv
コマンドを使ってファイル名を変える。
ls
コマンドを使って、ファイル名が変ったことを確認する。
less
コマンドを使って、ファイルの内容が変っていない
ことを確認する。
ファイルを削除するには、rm (remove) コマンドを使います。 rm は、次の形式で使います
これで、---------------------------------------------------------------------- % rm ファイル1 ファイル2 ファイル3----------------------------------------------------------------------
ファイル1
,ファイル2
,ファイル3
が削除さ
れます。
★練習問題(8)
次のようにして、rm
コマンドの動きを確認しなさい。
cp
コマンドを使って、なにかファイルを作る。
ls
コマンドを使って、ファイルが作られたことを確認する。
rm
コマンドを使って、ファイルを削除する。
ls
コマンドを使って、ファイル名が変ったことを確認する。
これで、ディレクトリが作成されます。---------------------------------------------------------------------- % mkdir ディレクトリ名----------------------------------------------------------------------
ディレクトリを削除するには、rmdir コマンドを使います。rmdir は、次の形 式で使います
これで、ディレクトリが削除されます。ただし、ディレクトリの中が空の時に しかディレクトリを削除することができません。本当にそのディレクトリを削 除したい時には、まず、中のファイルを rm で削除するか、mv コマンドで他 のディレクトリに移します。---------------------------------------------------------------------- % rmdir ディレクトリ名----------------------------------------------------------------------
★練習問題(9)
次のようにして、mkdir
コマンドとrmdir
コマン
ドの動きを確認しなさい。
% cd% pwd
/home1/yshinjo/ %
![]()
% lsmbox %
![]()
% mkdir dir1%
![]()
% lsdir1 mbox % ls -l
total 5 drwxr-xr-x 2 yas 512 Oct 6 23:25 dir1 -rw------- 1 yas 3380 Oct 6 20:07 mbox %
![]()
% cd dir1% pwd
/home1/yshinjo/dir1 %
![]()
% cd ..% pwd
/home1/yshinjo % ls
dir1 mbox %
![]()
% rmdir dir1% ls
mbox %
![]()
このように、「*」は、任意の文字と対応します。「*」は、いろいろ所に使う ことができます。---------------------------------------------------------------------- % cd /usr/bin% ls a*
acctcom adjacentscreens align_equals as atq adb adv ar at atrm addbib aedplot arch atoplot awk %
----------------------------------------------------------------------
a*
a
から始まるファイル名
abc*
abc
から始まるファイル名
*a
a
で終わるファイル名
*a*
a
を含むファイル名
*a*a*
a
を2文字含むファイル名
*a*a*a*
a
を3文字含むファイル名
a*b
a
で始まりb
で終わるファイル名
*
と似た ものに、?
があります。?
は、任意の1文
字と対応します。また、[a-c]
のように打つ方法もあります。これは、
a,b,c のいずれかに対応します。[a-z]
と打つと、アルファベットの
小文字、[A-Z]
では、アルファベットの大文字、[0-9]
では、
数字に対応します。
*
, ?
, [...]
によるファイル名の検索機能は、普通、
コマンドといっしょに使われます。しかし、他のコマンドでも、同じような機
能が働いています。たとえば、lsコマンドの代わりに、echo コマンドを使う
こともできます。echo コマンドは、引数をそのまま画面に表示するコマンド
です。
echo と---------------------------------------------------------------------- % echo hellohello %
----------------------------------------------------------------------
*
, ?
, [...]
を組み合わせることができま
す。
---------------------------------------------------------------------- % cd /usr/bin% echo a*b
adb addbib %
----------------------------------------------------------------------
★練習問題(10) ディレクトリ /usr/bin/ には、いろいろな名前のプログラム(コマンド) が、ファイルとして保存されている。ここにある、次のような名前のプログラ ムを検索してみなさい。
l
から始まるもの
m
で終わるもの
q
を含むもの
rm
から始まるもの
dir
を含むもの
a
から始まり、2文字の
cd ディレクトリ名
cd (引数なし)
cp 古 新
less ファイル名
ls
ls ディレクトリ名
ls -l {ディレクトリ名}
ls -a {ディレクトリ名}
.
」ら始まる名前も含めてファイル名の一覧を表示する。
mkdir ディレクトリ名
mv 古 新
pwd
rm ファイル名
rmdir ディレクトリ名