Unix-file-management
Unix/Linux-ファイル管理
この章では、Unixでのファイル管理について詳しく説明します。 Unixのすべてのデータはファイルに編成されます。 すべてのファイルはディレクトリに編成されます。 これらのディレクトリは、ファイルシステムと呼ばれるツリー状の構造に編成されています。
何らかの方法でUnixを使用する場合、ほとんどの時間をファイルの処理に費やします。 このチュートリアルは、ファイルの作成と削除、コピーと名前の変更、ファイルへのリンクの作成などを理解するのに役立ちます。
Unixでは、ファイルの3つの基本的なタイプがあります-
- 通常のファイル-通常のファイルは、データ、テキスト、またはプログラムの命令を含むシステム上のファイルです。 このチュートリアルでは、通常のファイルの操作について説明します。
- ディレクトリ-ディレクトリには、特別なファイルと通常のファイルの両方が保存されます。 WindowsまたはMac OSに精通しているユーザーにとって、Unixディレクトリはフォルダーと同等です。
- 特殊ファイル-一部の特殊ファイルは、ハードドライブ、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
$
ここにリストされているすべての列に関する情報があります-
最初の列-ファイルタイプとファイルに与えられた許可を表します。 以下は、すべての種類のファイルの説明です。
* 2番目の列*-ファイルまたはディレクトリが使用するメモリブロックの数を表します。
第3列-ファイルの所有者を表します。 これは、このファイルを作成したUnixユーザーです。
第4列-所有者のグループを表します。 すべてのUnixユーザーには、関連するグループがあります。
第5列-バイト単位でファイルサイズを表します。
第6列-このファイルが最後に作成または変更された日付と時刻を表します。
第7列-ファイルまたはディレクトリ名を表します。
*ls -l* リストの例では、すべてのファイル行は *d* 、*-*、または *l* で始まります。 これらの文字は、リストされているファイルのタイプを示します。
Sr.No. | Prefix & Description |
---|---|
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
隠しファイル
不可視ファイルとは、最初の文字がドットまたはピリオド文字(。)であるファイルです。 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
上記のコマンドは、指定されたファイル名でファイルを開きます。 ここで、キー 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 -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つの列すべての詳細があります-
- 最初の列-ファイル内の行の総数を表します。
- 第2列-ファイル内の単語の総数を表します。
- 第3列-ファイル内の合計バイト数を表します。 これはファイルの実際のサイズです。
- 第4列-ファイル名を表します。
複数のファイルを指定して、それらのファイルに関する情報を一度に取得できます。 以下は簡単な構文です-
$ wc filename1 filename2 filename3
ファイルをコピーする
ファイルのコピーを作成するには、 cp コマンドを使用します。 コマンドの基本的な構文は次のとおりです-
$ cp source_file destination_file
以下は、既存のファイル filename のコピーを作成する例です。
$ cp filename copyfile
$
これで、現在のディレクトリにもう1つの copyfile ファイルが見つかります。 このファイルは、元のファイル filename とまったく同じです。
ファイル名を変更する
ファイルの名前を変更するには、 mv コマンドを使用します。 以下は、基本的な構文です-
$ mv old_file new_file
次のプログラムは、既存のファイル filename の名前を newfile に変更します。
$ mv filename newfile
$
*mv* コマンドは、既存のファイルを新しいファイルに完全に移動します。 この場合、現在のディレクトリには *newfile* のみが見つかります。
ファイルを削除する
既存のファイルを削除するには、 rm コマンドを使用します。 以下は、基本的な構文です-
$ rm filename
注意-ファイルには有用な情報が含まれている場合があります。 この Delete コマンドを使用するときは、常に注意することをお勧めします。 rm コマンドとともに -i オプションを使用することをお勧めします。
以下は、既存のファイル 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に書き込みます。