
新Linux入門|Linuxで扱うファイルの種類とその役割
Linuxの大きな特徴のひとつに、「すべてはファイル(Everything is a file)」という設計思想があります。
これは、テキストファイルやプログラムだけでなく、ディレクトリやデバイスまでもファイルとして扱うという考え方です。
この仕組みにより、Linuxは非常に柔軟で一貫した操作体系を実現しています。
ここでは、AlmaLinux 9.6 を例に、Linuxで扱われる4種類の主要ファイルタイプと、その役割・使われ方をわかりやすく解説します。
📘ファイルの基本分類
| 種類 | 主な内容 | 例 |
|---|---|---|
| 通常ファイル (Regular File) | テキストやバイナリなど、実際のデータを保持する一般的なファイル | /etc/passwd, /bin/ls |
| ディレクトリ (Directory) | ファイルや他のディレクトリを格納する「入れ物」 | /home, /var/log |
| リンクファイル (Link File) | 他のファイルを参照するためのファイル(ハードリンク・シンボリックリンク) | /lib64/libc.so.6 |
| 特殊ファイル (Special File) | デバイスやカーネルと通信するための仮想ファイル | /dev/null, /dev/sda |
💡 ポイント
Linuxでは「拡張子」ではなく、属性情報(ファイルタイプ) でファイルの種類を識別します。
拡張子は単なる目印であり、実際の動作とは関係ありません。

📄 通常ファイル(Regular Files)
通常ファイルは、もっとも一般的なファイルの種類で、テキスト・画像・プログラムなど、実際のデータを格納します。
構成設定やログファイル、シェルスクリプトなど、ほとんどのファイルはこの「通常ファイル」です。
例:ファイルの作成と内容確認
[suzuki@AlmaLinux ~]$ echo "Welcome to AlmaLinux!" > hello.txt
[suzuki@AlmaLinux ~]$ cat hello.txt
Welcome to AlmaLinux!💬 解説
echoコマンドは指定した文字列を出力します。>はリダイレクト演算子で、出力をファイルに保存します。catコマンドで内容を確認できます。
| コマンド | 説明 | 主なオプション |
|---|---|---|
| cat ファイル名 | ファイルの内容を標準出力に表示 | -n:行番号を付ける |
| less ファイル名 | 長いファイルを1画面ずつ閲覧 | -N:行番号を表示 |
| head / tail | ファイルの先頭または末尾を表示 | -n 行数:指定した行数だけ表示 |
実行結果
[suzuki@AlmaLinux ~]$ head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin💬 ここがポイント!
- テキストファイル:中身が文字として読める(設定ファイルなど)
- バイナリファイル:実行プログラムなど、文字化けする内容
Linuxでは両者を区別せず「ファイル」として扱えます。
📁 ディレクトリ(Directory)
ディレクトリはファイルや他のディレクトリをまとめる「入れ物」です。
Windowsの「フォルダ」に相当しますが、Linuxではこれも特別な種類のファイルとして扱われます。
ディレクトリの作成と確認
[suzuki@AlmaLinux ~]$ mkdir projects
[suzuki@AlmaLinux ~]$ ls -ld projects
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 10:23 projects💬 出力の意味
- 先頭の d は「directory(ディレクトリ)」を表します。
rwxr-xr-xはアクセス権(読み・書き・実行)を示しています。- 所有者とグループが
suzukiであることが分かります。
| コマンド | 説明 | 主なオプション |
|---|---|---|
| mkdir ディレクトリ名 | 新しいディレクトリを作成 | -p:階層構造を一度に作成 |
| ls -ld ディレクトリ名 | ディレクトリの属性を確認 | なし |
| rmdir ディレクトリ名 | 空のディレクトリを削除 | なし |
出力例
[suzuki@AlmaLinux ~]$ mkdir -p work/src
[suzuki@AlmaLinux ~]$ ls -R work
work:
src💬 ここがポイント!
- Linuxでは「ディレクトリ=特別なファイル」として存在しています。
🔗 リンクファイル(Link Files)
リンクファイルは、他のファイルを参照するためのファイルです。
ファイルをコピーせずに共有したり、別名でアクセスするために使われます。
リンクには2種類あります。
| 種類 | 特徴 | 作成方法 | 削除しても元は残る? |
|---|---|---|---|
| ハードリンク | 元ファイルと同じinodeを共有。完全な複製。 | ln 元ファイル名 リンク名 | ✅ はい |
| シンボリックリンク(ソフトリンク) | 元のファイルへの参照情報を保持。ショートカットのようなもの。 | ln -s 元ファイル名 リンク名 | ❌ いいえ(元が消えるとリンク切れ) |
実例:シンボリックリンクの作成
[suzuki@AlmaLinux ~]$ ln -s /etc/passwd passwd_link
[suzuki@AlmaLinux ~]$ ls -l passwd_link
lrwxrwxrwx. 1 suzuki suzuki 11 Oct 28 01:10 passwd_link -> /etc/passwd💬 出力の見方
l(小文字のL)は「リンクファイル」を示します。→の右側にリンク先のファイルが表示されます。
ハードリンク例
[suzuki@AlmaLinux ~]$ ln hello.txt copy.txt
[suzuki@AlmaLinux ~]$ ls -li hello.txt copy.txt
123456 -rw-r--r--. 2 suzuki suzuki 22 Oct 28 hello.txt
123456 -rw-r--r--. 2 suzuki suzuki 22 Oct 28 copy.txt💬 inode番号(最初の数字)が同じであることから、両者は同一ファイルを参照していると分かります。
💽 特殊ファイル(Special Files)
特殊ファイルは、ハードウェアやシステムリソースと通信するために用意された仮想的なファイルです。
Linuxでは、キーボード・ハードディスク・端末などのデバイスもファイルとして扱います。
これにより、同じコマンドで統一的に操作できます。
主な特殊ファイルの種類
| 種類 | 概要 | 例 | ファイルタイプ記号 |
|---|---|---|---|
| キャラクタデバイス | 1文字単位でデータを読み書きする | /dev/tty, /dev/null | c |
| ブロックデバイス | データをブロック単位で読み書きする | /dev/sda, /dev/loop0 | b |
デバイスファイルを確認
[suzuki@AlmaLinux ~]$ ls -l /dev/sda
brw-rw----. 1 root disk 8, 0 Oct 28 00:55 /dev/sda💬 出力の意味
- 先頭の b は「ブロックデバイス」を示しています。
- 「8, 0」はメジャー番号とマイナー番号で、デバイスドライバを特定します。
キャラクタデバイスの例
[suzuki@AlmaLinux ~]$ ls -l /dev/null
crw-rw-rw-. 1 root root 1, 3 Oct 28 00:55 /dev/null💬 /dev/null は「データを捨てるための特殊な装置」で、どんな出力も受け取って消してしまいます。
これはテストやエラーログの無効化などによく使われます。
| コマンド例 | 説明 |
|---|---|
echo "test" > /dev/null | 出力をすべて破棄する(画面にもファイルにも表示されない) |
cat /dev/zero > test.bin | 無限のゼロデータを生成してファイルに書き出す |
🧾 ファイルタイプを調べる:fileコマンド
どの種類のファイルかを確認したいときは、file コマンドを使います。
コマンド書式
file ファイル名使用例
[suzuki@AlmaLinux ~]$ file /bin/ls
/bin/ls: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=215d223c8282b6787e65aed9bef550ece6da6d3c, for GNU/Linux 3.2.0, stripped💬 「ELF 64-bit executable」と表示されているため、これは実行可能なバイナリファイルだとわかります。
✅ まとめ:ファイルの種類を理解するとLinuxが見えてくる!

Linuxでは、データ・設定・ハードウェアすべてが「ファイル」として統一的に扱われます。
これにより、シンプルかつ強力な操作体系が実現されています。
💬 覚えておきたいポイント
- 通常ファイル:最も一般的なデータファイル
- ディレクトリ:ファイルを整理するための入れ物
- リンクファイル:他のファイルを参照する仕組み
- 特殊ファイル:デバイスやシステムと通信する仮想ファイル
これらを理解しておくことで、Linuxシステムの構造や管理がよりスムーズになります。
