Contents
Unix / Linux 入門 ファイル管理
この章では、Unixでのファイル管理について詳しく説明します。Unixのすべてのデータはファイルにより編成されて、ディレクトリにて編成されています。これらのディレクトリは、ファイルシステムと呼ばれるツリー状の構造に編成されています。
あなたはUnixを使って作業するとき、ファイルを扱う(つまりファイルの中身を消したり、増やしたり移動したり、、)多くの時間を費やします。このチュートリアルでは、ファイルの作成と削除、ファイルのコピーと名前の変更、リンクの作成などを理解するのに役立ちます。
Unixには、3つの基本的な種類のファイルがあります。
-
通常ファイル - 通常のファイルとは、データ、テキスト、 またはプログラム命令を含むシステム上のファイルのことです。 このチュートリアルでは、通常のファイルを扱う方法を確認をしていきます。
-
ディレクトリ - ディレクトリは特別なファイルと普通のファイルの両方を格納すること ができます。WindowsまたはMac OSに精通しているユーザにとって、 Unixディレクトリはフォルダと同じ意味と考えましょう。
-
特殊ファイル - 一部の特殊ファイルは、ハードドライブ、CD-ROMドライブ、モデム、 イーサネットアダプタなどのハードウェアへのアクセスを提供します。 例えばCDならISOファイルなんてものもありますね。 特殊ファイルはショートカットに似ており、 異なる名前を使用して1つのファイルにアクセスすることを可能にします。
ファイルを一覧表示する
まずディレクトリをなんとなく絵で確認してみましょう
例えばhomeがあってそのしたの階層にファイルがあります。例えばWindowsではこれを右クリックしてファイルを作りますがLinuxではこれをコマンドを作ります
現在のディレクトリ(階層)に格納されているファイルとディレクトリを一覧表示するには、次のコマンドを使用します。
$ls
上記のコマンドの出力例を下に示します。
(あなたのLinux上でも同じコマンドを打ってみましょう)
$ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.02 work
lsコマンドは、-lオプションをサポートしています。これは、リストされたファイルに関する詳細情報を得るのに役立ちます。
$ls -l total 1962188 第一列 第二列 第三列 第四列 第五列 第六列 第七列 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3 $
列挙されたすべての列に関する内容は以下になります。
- 最1列 – ファイルの種類とそのファイルに与えられたアクセス許可を表します。以下は、すべてのタイプのファイルの説明です。
- 第2列 – ファイルまたはディレクトリが使用するメモリブロックの数を表します。
- 第3列 – ファイルの所有者を表します。これは、このファイルを作成したUnixユーザです。
- 第4列 – 所有者のグループを表します。すべてのUnixユーザには関連グループがあります。
- 第5列 – ファイルサイズをバイト単位で表します。
- 第6列 – このファイルが最後に作成または変更された日付と時刻を表します。
- 第7列 – ファイルまたはディレクトリ名を表します。
メタキャラクター
メタキャラクタはUnixでは特別な意味を持っています。ls はファイル検索、あとは名前を検索しているようなイメージ。
例 –
$ls ch*.doc
すべてのファイルでCHとDOCで終わるものを探しに行っているということです。
ch01-1.doc ch010.doc ch02.doc ch03-2.doc
ch04-1.doc ch040.doc ch05.doc ch06-2.doc
ch01-2.doc ch02-1.doc c
ここで*は、任意の文字と一致するメタ文字として機能します。単に.docで終わるすべてのファイルを表示する場合は、次のコマンドを使用できます。
$ls *.doc
隠しファイル
目に見えないファイルは1で、最初の文字はドットまたはピリオド(。)です。UNIXプログラム(シェルを含む)は、これらのファイルの大部分を使用して構成情報を格納します。
隠しファイルの一般的な例には、ファイル –
-
.profile - Bourneシェル(sh)初期化スクリプト
-
.kshrc - Kornシェル(ksh)初期化スクリプト
-
.cshrc - Cシェル(csh)初期化スクリプト
-
.rhosts - リモートシェル設定ファイル
不可視ファイルを一覧表示するにはls -a を選択してください
$ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03 $
- シングルドット(.) – 現在のディレクトリを表します。
- ダブルドット(..) – 親ディレクトリを表します。
ファイルの作成
viエディタを使って、Unixシステム上にファイルを作成することができます。次のコマンドを入力するだけです。
$ vi filename(filenameは任意のもの)
上記のコマンドは、指定されたファイル名でファイルを開きます。今度は、キーiを押して編集モードに入ります。編集モードに入ると、次のプログラムのようにファイルにコンテンツを書き込むことができます。
This is unix file....I created it for the first time..... I'm going to save this content in this file.
プログラムを終了したら、次の手順を実行します。
- 編集モードを終了するには、キーescを押します。
- 2つのキーShift + ZZを押してファイルから完全に抜け出す。
これで、現在のディレクトリにfilenameで作成されたファイルが作製されます。
ここでは簡単に触れておきます。
$ vi filename $
ファイルの編集
viエディタを使用して既存のファイルを編集できます。既存のファイルを開く方法を簡単に説明します。
$ vi filename
ファイルを開くと、キーiを押して編集モードに入り、ファイルを編集することができます。ファイル内を移動する場合は、まずEscキーを押して編集モードを終了する必要があります。その後、次のキーを使ってファイル内を移動することができます。
- 左に移動するにはlキーを押します。
- hキーを押すと左側に移動します。
- kキーを押してファイル内を上に移動します。
- jキーを押してファイルの下側に移動します。
したがって、上記のキーを使用して、編集する場所にカーソルを置くことができます。一度配置されると、iキーを使用して編集モードに入ります。ファイルの編集が終わったら、Escキーと最後に2つのShift + ZZキーを押してファイルから完全に抜け出します。
ファイルの内容を表示する
catコマンドを使用すると、ファイルの内容を見ることができます。以下は、上記で作成したファイルの内容を表示する簡単な例です。
$ cat filename This is unix file.... $
行番号を表示するには、-bオプションとcatコマンドを次のように使用します。
$ cat -b filename 1 This is unix file....
ファイル内の単語数をカウントする
wcコマンドを使用すると、ファイルに含まれる行、単語、および文字の総数を取得できます。以下は、上で作成したファイルに関する簡単な例です。
$ wc filename 2 19 103 filename $
ここに4つの列すべての詳細があります。
- First Column – ファイル内の行の総数を表します。
- 第2列 – ファイル内の単語の総数を表します。
- 第3列 – ファイル内の合計バイト数を表します。これはファイルの実際のサイズです。
- 第4列 – ファイル名を表します。
複数のファイルを指定して、それらのファイルに関する情報を一度に取得することができます。以下は単純な構文です –
$ wc filename1 filename2 filename3
ファイルのコピー
ファイルのコピーを作成するには、cpコマンドを使用します。コマンドの基本的な構文は次のとおりです。
$ cp source_file destination_file
次に、既存のファイルfilenameのコピーを作成する例を示します。
$ cp filename copyfile $
現在のディレクトリに1つ以上のファイルcopyfileがあります。このファイルは元のファイル名とまったく同じです。
ファイルの名前を変更する
ファイルの名前を変更するには、mvコマンドを使用します。以下は基本的な構文です –
$ mv old_file new_file 例えば、、、、 $ mv tokyo_file osaka_fileなんかに帰ることができます。
MVコマンドは、新しいファイルに完全に既存のファイルを移動します。この場合、現在のディレクトリにはnewfileしか見つかりません。
ファイルの削除
既存のファイルを削除するには、rmコマンドを使用します。以下は基本的な構文です –
$ rm filename
注意 – ファイルには有用な情報が含まれている場合があります。この削除コマンドを使用している間は、常に注意することをお勧めします。rmコマンドと一緒に-iオプションを使用する方が良いでしょう。
以下は、既存のファイルfilenameを完全に削除する方法を示す例です。
$ rm filename $
以下のコマンドで一度に複数のファイルを削除することができます –
$ rm filename1 filename2 filename3 $