Linux Essentials for Web Developers
第3話:ファイルシステムの理解: ディレクトリ構造と基本的なファイル操作
(最終更新日:2023.12.23)
(絵が小さい場合はスマホを横に)
「ディレクトリ構造と役割を知ろう」
前回までで、Linuxのシステムの概要とアークテクチャについて学んだ。
今回からは、個々のシステムの詳細について学んでいく。
まずLinuxのファイルシステムである、ディレクトリ構造とその役割について学んでいこう。
各ディレクトリに割り当てられた意味が分かると、Linuxの仕組みが少し理解できるはずだ。
1.標準的なディレクトリ構造とその役割
Linuxにおけるファイルシステムの理解には、標準的なディレクトリ構造とその役割について知ることが重要だ。
Linuxは階層的なファイルシステム構造を採用しており、各ディレクトリには特定の種類のファイルやデータが格納される。
以下に、ルートディレクトリ直下にある主要なディレクトリとその役割を説明する。
■bin
重要なバイナリ実行ファイルやプログラム(例: ls、cp、mvなど)が格納されている。
これらはシステムの起動やユーザーの基本的な操作に必要なコマンドになる。
■boot
システム起動に必要なファイル(例: Linuxカーネル、ブートローダーの設定ファイルなど)が格納されている。
■dev
デバイスファイルが格納されている。
Linuxでは、ハードウェアデバイス(例: ハードドライブ、USBデバイスなど)をファイルとして扱う。
■etc
システム全体の設定ファイルが格納されている。
システムの起動スクリプト、サービスの設定ファイル、アプリケーションの設定ファイルなどが含まれる。
■home
通常のユーザーの個人ディレクトリが格納されている。
ユーザーの個人データや設定ファイルなどがこの下に置かれる。
■lib
システムの基本的なライブラリファイルとカーネルモジュールが格納されている。
これらのライブラリは、多くのアプリケーションが使用する共有コードを提供する。
■mediaとmnt
外部ストレージデバイス(CD、DVD、USBドライブなど)がマウントされる場所になる。
mediaは通常、自動的なマウントに使用され、mntは手動でのマウントに使用されることが多い。
■opt
追加のアプリケーションソフトウェアパッケージが格納される場所である。
特に、サードパーティ製のソフトウェアがここにインストールされることがある。
■proc
システム情報とプロセス情報を表す仮想的なファイルシステムになる。
実際のファイルではなく、システムとプロセスの状態を表すためのインターフェースとして機能する。
■tmp
一時ファイルが格納される場所になる。システムやアプリケーションは、一時的なデータをここに保存する。
■usr
ユーザーレベルのアプリケーションとデータが格納される。
/usr/binには追加のユーザーコマンド、/usr/libには追加のライブラリ、
/usr/localにはユーザーによってコンパイルまたはインストールされたソフトウェアが含まれる。
■var
可変データが格納される場所である。ログファイル、メールスプール、プリントキューなどが含まれる。
これらのディレクトリはLinuxシステムの機能の基礎を形成し、
システム管理者やユーザーがファイルとプロセスを効果的に管理するため仕組みを提供している。
各ディレクトリごとに役割が異なる
2.基本的なファイル操作コマンド
Linuxにおける基本的なファイル操作コマンドには、ファイルやディレクトリの作成、閲覧、コピー、移動、削除などの操作が含まれる。
これらのコマンドはLinuxの基本的な操作の核となるもので、日常的なファイル管理に広く使われる。
以下に主要なコマンドとその機能を説明する。
■ls
機能: 現在のディレクトリ内のファイルとディレクトリを一覧表示する。
例: ls -l (詳細リストを表示)
■cd
機能: カレントディレクトリ(現在作業中のディレクトリ)を変更する。
例: cd /home (/home ディレクトリに移動)
■mkdir
機能: 新しいディレクトリを作成する。
例: mkdir new_directory (new_directory という名前の新しいディレクトリを作成)
■rmdir
機能: ディレクトリを削除する(ディレクトリは空である必要がある)。
例: rmdir old_directory (old_directory という名前のディレクトリを削除)
■touch
Linuxは複数のファイルシステムをサポートし、これらをシームレスに統合する。
例えば、ext4(第4拡張ファイルシステム)、btrfs(B-treeファイルシステム)、XFSなどがある。
Linuxは仮想ファイルシステム(VFS)を使用して、異なるファイルシステム間で一貫したインターフェースを提供する。
現在はどのシステムも成熟しており、どれを選んでも大きな違いはないだろう。ちなみに、RedhatはXFS、Ubuntuはext4になる。
■cp
機能: ファイルやディレクトリのコピーを作成する。
例: cp source.txt destination.txt (source.txt を destination.txt にコピー)
■mv
機能: ファイルやディレクトリを移動または名前を変更する。
例: mv old_name.txt new_name.txt (old_name.txt の名前を new_name.txt に変更)
■rm
機能: ファイルやディレクトリを削除します(ディレクトリの削除には -r オプションが必要)。
例: rm file.txt (file.txt を削除)
■cat
機能: ファイルの内容を表示する。
例: cat file.txt (file.txt の内容を表示)
■chmod
機能: ファイルまたはディレクトリのアクセス権限を変更する。
例: chmod 755 file.txt (file.txt に実行、読み書きの権限を設定)
■chown
機能: ファイルまたはディレクトリの所有者とグループを変更する。
例: chown user:group file.txt (file.txt の所有者を user、グループを group に変更)
これらのコマンドは、Linuxのコマンドラインインターフェースで広く使用され、
基本的なファイルとディレクトリの管理を行うための重要なツールである。
これらを理解し、適切に使いこなすことで、Linuxシステム上で効率的に作業を進めることができる。
コマンドでファイル操作
3.まとめ
今回はLinuxのディレクトリ構造と基本的なファイル操作について説明した。
どのディレクトリに、どんなファイルが入っているかを理解するだけでも、Linuxの仕組みを想像することができるはずだ。
また、後半のファイル操作コマンドはよく使うものだけに絞った。
まずは、これだけ覚えておけば、実際にLinuxを使うときでも、そこまで困らないだろう。
基本的な部分を学んだら、ぜひ、積極的にLinuxを使っていこう。
▼参考図書、サイト
「スーパーユーザーなら知っておくべきLinuxシステムの仕組み」 インプレス Brian Ward, 柴田 芳樹
「Linux再入門―カーネル、シェル、ファイルといった基本概念を理解してトラブルシューティング力を高めよう」 Udemy しま