Unix / Linux-ファイル管理

この章では、Unixでのファイル管理について詳しく説明します。Unixのすべてのデータはファイルに編成されています。すべてのファイルはディレクトリに編成されています。これらのディレクトリは、ファイルシステムと呼ばれるツリーのような構造に編成されています。

Unixを何らかの方法で使用する場合、ほとんどの時間をファイルの操作に費やします。このチュートリアルは、ファイルの作成と削除、ファイルのコピーと名前の変更、ファイルへのリンクの作成などの方法を理解するのに役立ちます。

Unixには、3つの基本的なタイプのファイルがあります-

  • Ordinary Files−通常のファイルは、データ、テキスト、またはプログラム命令を含むシステム上のファイルです。このチュートリアルでは、通常のファイルの操作について説明します。

  • Directories−ディレクトリは特別なファイルと通常のファイルの両方を保存します。WindowsまたはMacOSに精通しているユーザーにとって、Unixディレクトリはフォルダに相当します。

  • Special Files−一部の特別なファイルは、ハードドライブ、CD-ROMドライブ、モデム、イーサネットアダプタなどのハードウェアへのアクセスを提供します。その他の特殊ファイルはエイリアスやショートカットに似ており、異なる名前を使用して単一のファイルにアクセスできます。

ファイルの一覧表示

現在のディレクトリに保存されているファイルとディレクトリを一覧表示するには、次のコマンドを使用します-

$ls

上記のコマンドの出力例は次のとおりです-

$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
$

リストされているすべての列に関する情報は次のとおりです-

  • First Column−ファイルタイプとファイルに与えられた権限を表します。以下は、すべてのタイプのファイルの説明です。

  • Second Column −ファイルまたはディレクトリが使用するメモリブロックの数を表します。

  • Third Column−ファイルの所有者を表します。これは、このファイルを作成したUnixユーザーです。

  • Fourth Column−所有者のグループを表します。すべてのUnixユーザーには、関連付けられたグループがあります。

  • Fifth Column −ファイルサイズをバイト単位で表します。

  • Sixth Column −このファイルが最後に作成または変更された日付と時刻を表します。

  • Seventh Column −ファイルまたはディレクトリ名を表します。

の中に ls -l リストの例では、すべてのファイル行は d-、または l。これらの文字は、リストされているファイルのタイプを示します。

シニア番号 プレフィックスと説明
1

-

ASCIIテキストファイル、バイナリ実行可能ファイル、ハードリンクなどの通常のファイル。

2

b

特殊ファイルをブロックします。物理ハードドライブなどの入出力デバイスファイルをブロックします。

3

c

キャラクタースペシャルファイル。物理ハードドライブなどの生の入出力デバイスファイル。

4

d

他のファイルとディレクトリのリストを含むディレクトリファイル。

5

l

シンボリックリンクファイル。通常のファイルへのリンク。

6

p

名前付きパイプ。プロセス間通信のメカニズム。

7

s

プロセス間通信に使用されるソケット。

メタ文字

Unixではメタ文字には特別な意味があります。例えば、* そして ?メタ文字です。を使用しております* 0文字以上に一致する場合は、疑問符(?)単一の文字と一致します。

例-

$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 −リモートシェル構成ファイル

非表示のファイルを一覧表示するには、 -a オプション ls

$ 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
$
  • Single dot (.) −これは現在のディレクトリを表します。

  • Double dot (..) −これは親ディレクトリを表します。

ファイルの作成

あなたは使用することができます vi任意のUnixシステムで通常のファイルを作成するためのエディタ。次のコマンドを実行するだけです-

$ vi 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....I created it for the first time.....
I'm going to save this content in this file.
$

を使用して行番号を表示できます -b オプションと一緒に cat 次のようにコマンド-

$ cat -b filename
1   This is unix file....I created it for the first time.....
2   I'm going to save this content in this file.
$

ファイル内の単語を数える

あなたは使用することができます wcファイルに含まれる行、単語、および文字の総数を取得するコマンド。以下は、上記で作成されたファイルに関する情報を確認するための簡単な例です。

$ wc filename
2  19 103 filename
$

これが4つの列すべての詳細です-

  • First Column −ファイル内の合計行数を表します。

  • Second Column −ファイル内の単語の総数を表します。

  • Third Column−ファイル内の合計バイト数を表します。これはファイルの実際のサイズです。

  • Fourth Column −ファイル名を表します。

複数のファイルを指定して、一度にそれらのファイルに関する情報を取得できます。以下は単純な構文です-

$ wc filename1 filename2 filename3

ファイルのコピー

ファイルのコピーを作成するには、 cpコマンド。コマンドの基本的な構文は次のとおりです。

$ cp source_file destination_file

以下は、既存のファイルのコピーを作成する例です filename

$ cp filename copyfile
$

これで、もう1つのファイルが見つかります copyfile現在のディレクトリにあります。このファイルは元のファイルとまったく同じになりますfilename

ファイルの名前変更

ファイルの名前を変更するには、 mvコマンド。以下は基本的な構文です-

$ mv old_file new_file

次のプログラムは、既存のファイルの名前を変更します filenamenewfile

$ mv filename newfile
$

ザ・ mvコマンドは、既存のファイルを完全に新しいファイルに移動します。この場合、あなただけが見つかりますnewfile 現在のディレクトリにあります。

ファイルの削除

既存のファイルを削除するには、 rmコマンド。以下は基本的な構文です-

$ rm filename

Caution−ファイルには有用な情報が含まれている場合があります。これを使用するときは常に注意することをお勧めしますDeleteコマンド。を使用することをお勧めします-i オプションと一緒に rm コマンド。

以下は、既存のファイルを完全に削除する方法を示す例です filename

$ rm filename
$

以下のコマンドを使用して、一度に複数のファイルを削除できます-

$ rm filename1 filename2 filename3
$

標準のUnixストリーム

通常の状況では、すべてのUnixプログラムは、起動時に3つのストリーム(ファイル)が開かれます。

  • stdin−これは標準入力と呼ばれ、関連するファイル記述子は0です。これはSTDINとしても表されます。Unixプログラムは、STDINからデフォルトの入力を読み取ります。

  • stdout−これは標準出力と呼ばれ、関連するファイル記述子は1です。これはSTDOUTとしても表されます。Unixプログラムは、STDOUTにデフォルトの出力を書き込みます

  • stderr−これは標準エラーと呼ばれ、関連するファイル記述子は2です。これはSTDERRとしても表されます。Unixプログラムは、すべてのエラーメッセージをSTDERRに書き込みます。