Let's start from here

Linuxのファイル

コンピュータで扱うデータはファイル単位でディスク上に保存されます。
WindowsではGUIの画面でフォルダやファイルのアイコンが表示されクリックすることでアクティブになる操作も可能になります。またダブルクリックする事で実行します。しかしCUIでは、アイコンの表示がなく名前だけの表示になるのでイメージがしにくいと思いますが実態は同じです。
ファイルにはファイル名がつけられており様々な属性をもっています。

ファイル名

UNIX / Linux では、ファイルにどのような名前をつけてもよいことになっており、その名前には殆ど全ての文字が利用できます。
しかし様々な理由から、ファイル名として利用する文字は注意しなければなりません。
例えば、「.」から始まるファイルは不可視ファイルとして扱われ通常は表示されません。これはシステムでの重要な意味をもつファイルに用いられます(容易に編集されてはこまるもの)。また「*」「!」「?」のような記号やも使ってはいけません。これらはメタキャラクタといって特殊な意味をもつ記号として扱われます。スペースを含んだファイル名も避けたほうが良いです。Linuxコマンドでスペースを空けてオプションや引数を渡すので正常に動作しない場合があります。
ファイル名は、アルファベットと数字と記号「-」「_」「.」に限定すべきです。あとファイル名の頭文字はアルファベットにしましょう。Linuxは、大文字と小文字を区別するので注意してください。

ファイルの種類

ファイルは、通常ファイル・ディレクトリ・リンクファイル・特殊ファイルの4つに分類されます。

通常ファイル

普通に何が書いているのか判別できるテキストファイルやプログラムファイルなどの実行するものもあります。またプログラムからでないと読み込めないバイナリファイルもあります。

ディレクトリ

ファイルを格納する箱でフォルダとも呼ばれてます。

リンクファイル

ファルダやファイルの実態を紐づけるリンクファイルのようなファイルでエイリアスとも呼ばれます。

特殊ファイル

Linuxではデバイスを抽象化してファイルとして扱います。ハードウェアを抽象化したデバイスファイルがありデバイスファイルと呼ばれます。

ファイルの所有者と権限

Linux や UNIX は、1 台のシステムに複数のユーザーが同時にログインして使用することができるマルチユーザー対応 OS です。そのために、ユーザーがファイルの読み込み、書き込み、あるいはコマンドを実行するには、そのファイルに対するアクセス権限を持っている必要があります。アクセス権限を持たないユーザーは、そのファイルの読み込みや書き込みを行うことはできません。このように、ファイルやディレクトリに対する許可属性(パーミッション)の設定は、システムのセキュリティを操作する最も基本的な機構を提供しています。ファイルやディレクトリは、他にも様々な属性を保持しています。それらの属性は、以下のように ls コマンドで確認することができます。
Linuxは、「CUI」なのでコマンドで操作します。


2つのファイルが表示されました。では、こんどは、lsコマンドオプションに-lを追加


すると今度は二つのファイルがリスト表示になって属性情報が表示されます。
表示の意味は左からファイルタイプ、パーミッション、リンク数、ファイルの所有者、ファイルの所有グループ、ファイルサイズ(byte)、最終更新日時、ファイル名です。

ファイルタイプ(一番左の1文字目)

-:通常ファイル
d:ディレクトリ
l:リンク
c:キャラクタ型デバイスファイル
b:ブロック型デバイスファイル
※デバイスファイルについてはこんなファイルがあるんだと記憶にとどめておく程度でよいです。

パーミッションの見方

ファイルタイプに続く残りの 9文字がそのファイルやディレクトリのパーミッションを表しています。パーミッションは以下のように最初の 3文字は所有者、次の 3文字はグループ、最後の 3文字はその他のユーザーのパーミッションを表します。

============
r:読込可能
w:書込可能
x:実行可能
-:権限なし
============

例)
「rwxrwxrwx」全ての所有者が読み書き実行ができます。
「rwx——」所有者のみ読み書き実行ができます。
「rw-r–r–」所有者は読み書き、グループと他のユーザは読込だけできます。
(パーミッションの変更はここでは説明しません)

ファイルの所有者/グループ

通常はファイルの作成者が所有者になり同時にグループになります。最初からあるファイルは、すでに所有者(グループ)がきまってます(所有者/グループの変更はここでは説明しません)。