【第1回】Linuxエンジニアへの第一歩!ファイル・ディレクトリ管理と基本操作の極意

こんにちは!「LINUX工房」管理人の「リナックス先生」です。
今日から全8回にわたる新連載「Linuxエンジニアになるための基礎」がスタートします。本連載では、エンタープライズ領域で圧倒的なシェアを誇るRHEL(Red Hat Enterprise Linux)のクローンである AlmaLinux 9 および AlmaLinux 10 を対象環境とし、プロのインフラエンジニアとして現場で即戦力になるための技術を徹底的に解説していきます。

記念すべき第1回のテーマは、「ファイル・ディレクトリ管理と基本操作の極意」です。Linuxの世界では「すべてがファイルである」という哲学があります。つまり、ファイル操作を制する者は、Linuxシステム全体を制すると言っても過言ではありません。

コウ君

先生、よろしくお願いします!今までWindowsのGUI操作しかやってこなかったので、黒い画面(ターミナル)でコマンドを打つのがすごく怖いです……。間違えてシステムを壊してしまわないか不安で。

リナックス先生

コウ君、その「怖い」という感覚はインフラエンジニアにとって非常に大切な防衛本能よ!コマンド一つで数万人のユーザーが使うシステムを停止させてしまうリスクがあるからね。
でも安心して。本質的な仕組み(OSが裏で何をしているか)を理解すれば、恐怖は「確信」に変わるわ。今回は、ただのコマンドの丸暗記ではなく、プロが現場で意識しているパフォーマンスやセキュリティの観点から深く学んでいきましょう!

📚 本連載のカリキュラム(全8回)

  • 【第1回】ファイル・ディレクトリ管理と基本操作の極意
  • 【第2回】テキスト処理と検索の魔法(grep / find / sed / awk)
  • 【第3回】パッケージ管理の完全理解(apt / dnf / yum)
  • 【第4回】ユーザー・グループ管理とアクセス制御の鉄則
  • 【第5回】プロセス管理とリソース監視(ps / top / kill)
  • 【第6回】サービス管理とデーモン(systemctl)
  • 【第7回】システムログの確認とトラブルシューティング(journalctl)
  • 【第8回】アーカイブとバックアップ戦略(tar / gzip)

第1章:Linuxファイルシステムの絶対原則とFHS

Linuxにおけるファイル管理を学ぶ前に、まず知っておくべきは「FHS(Filesystem Hierarchy Standard:ファイルシステム階層標準)」です。
Windowsでは「Cドライブ」「Dドライブ」という概念がありますが、Linuxはディレクトリの頂点である /(ルートディレクトリ)からすべてがツリー状に派生します。

1-1. 主要ディレクトリの役割(AlmaLinux 9/10環境)

プロのエンジニアは、「どの設定ファイルがどこにあるか」「ログがどこに出力されるか」を直感的に把握しています。以下は絶対に暗記すべきディレクトリです。

ディレクトリ 役割とプロの視点
/etc システム全体の設定ファイルが配置される最重要ディレクトリ。バックアップ必須。
/var ログファイル(/var/log)やWebコンテンツ(/var/www)など、頻繁に更新・変動するデータが置かれる。ディスク枯渇の原因になりやすい。
/usr ユーザー向けアプリケーションやライブラリが格納される。AlmaLinux 9以降では /bin や /sbin はここへのシンボリックリンク。
/home 一般ユーザーのホームディレクトリ。ユーザー個別の設定ファイル(.bashrcなど)が存在する。
/tmp 一時ファイルを置く場所。定期的にOSによって自動削除されるため、永続化したいデータは絶対に置かないこと。

⚠️ 絶対パスと相対パスの概念
Linuxのディレクトリ指定には、ルート(/)から階層を全て記述する「絶対パス(例: /var/log/messages)」と、現在の自分の位置(カレントディレクトリ)を基準にする「相対パス(例: ../log/messages)」があります。スクリプトやCronで自動化する際は、環境依存を防ぐために必ず「絶対パス」を使用するのが現場のベストプラクティスです。


第2章:ディレクトリ・ファイル操作の極意(ls / cd / cp / mv / rm)

日常的に最も叩くことになる基本コマンド群です。単なる使い方ではなく、インシデントを防ぐための安全な運用方法にフォーカスします。

2-1. ls(ファイルの一覧表示)と inode の概念

ディレクトリ内のファイルを表示する ls コマンドですが、プロは常に詳細情報(パーミッション、所有者、サイズなど)を確認するために -l オプションを付けます。また、隠しファイル(.で始まるファイル)を表示する -a も頻出です。さらに -h をつけるとファイルサイズが人間にとって読みやすい形式(K, M, G)になります。

ls -lah /var/log

さらに、インフラエンジニアとして意識すべきは inode(アイノード) です。Linuxのファイルシステムでは、ファイル名と実際のデータ(ブロック)は分離して管理されており、その橋渡しをするのがinodeです。
ls -i を実行するとinode番号が確認できます。ディスク容量(ブロック)が余っていても、大量の極小ファイルが作成されてinodeを使い果たすと「No space left on device」エラーになりシステムがダウンします。この観点を持つことがプロへの第一歩です。

2-2. cd(ディレクトリ移動)のショートカット

ディレクトリを移動する cd コマンド。現場で素早く作業するための小技を紹介します。

# ホームディレクトリへ一瞬で戻る
cd ~

# 1つ前のディレクトリ(直前にいた場所)へ戻る
cd -

2-3. cp(コピー)と mv(移動・リネーム)

設定ファイルを編集する前には、必ず cp でバックアップを取るのが鉄則です。

# オリジナルのタイムスタンプや権限を保持したままバックアップ
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak_20260822

-p オプションを忘れると、コピーしたファイルの所有者がrootになり、意図しない権限エラーを引き起こす原因になります。また、mv はファイルの移動だけでなく、ファイル名の変更(リネーム)にも使われます。

2-4. rm(削除)の恐怖とインシデント対策

rm コマンドはLinuxで最も危険なコマンドです。Windowsのような「ゴミ箱」機能はなく、一度削除したファイルは基本的に二度と元に戻りません。

コウ君

先輩が「rm -rf は絶対に気をつけて使え」って言ってたんですが、そんなにヤバいんですか?

リナックス先生

超絶ヤバいわよ。-r はディレクトリごと再帰的に削除、-f は警告なしで強制削除。もしカレントディレクトリを間違えて rm -rf * なんて打とうものなら、システムファイルが吹き飛んでOSが起動しなくなるわ。プロの現場では、削除前に必ず ls で対象を確認してから、安全に削除する習慣をつけるのよ。

⚠️ プロのrmコマンド安全策
重要な環境でワイルドカード(*)を使って削除を行う場合、まずは ls -l 削除したいパターン* を実行し、削除対象のリストが本当に正しいか目視確認します。その後、シェルの履歴(上矢印キー)を呼び出し、先頭の ls -l を rm -f に書き換えて実行することで、誤爆を100%防ぐことができます。


第3章:ファイル内容の安全な確認とページャー(cat / less / tail)

サーバーにログインして設定ファイルやログを確認する際、絶対にやってはいけないことがあります。それは「vi(vim)などのエディタで閲覧だけを目的として開くこと」です。誤ってキーボードに触れてファイルが書き換わる事故を防ぐため、閲覧専用のコマンドを使い分けます。

3-1. cat(全内容の出力)の使いどころ

cat コマンドはファイルの中身を一気に標準出力(画面)へ流し込みます。短い設定ファイル(数十行程度)を見るのに適しています。

cat /etc/resolv.conf

ただし、数GBあるログファイルに対して cat を実行してしまうと、画面が大量の文字で埋め尽くされ、ターミナルがフリーズしたような状態に陥るため注意が必要です。

3-2. less(ページャー)による巨大ファイルの快適な閲覧

大容量のファイルやログを安全かつ快適に閲覧するなら、迷わず less コマンドを使用します。

less /var/log/secure

less はファイル全体を一度にメモリに読み込まないため、数GBのファイルでも一瞬で開くことができます。起動後は以下のキー操作でナビゲーションします。

  • Spaceキー:1画面下にスクロール
  • b:1画面上にスクロール
  • /(スラッシュ):文字列を前方検索(例: /Error)
  • q:lessを終了

3-3. tail(末尾の表示)とリアルタイム監視

Webサーバーのアクセスログや、アプリケーションのエラーログを「リアルタイムで監視」する際に最強の武器となるのが tail コマンドです。

# ファイルの末尾100行を表示
tail -n 100 /var/log/messages

# ログの追記をリアルタイムで監視し続ける(最も重要)
tail -f /var/log/messages

# ログローテーション(ファイルが新しく作り直される)に対応して監視を続ける
tail -F /var/log/messages

本番環境でシステムの挙動がおかしい場合、エンジニアは真っ先に tail -f でエラーログを監視しながら、別画面で問題の操作を再現させ、リアルタイムに出力されるエラー文言から原因を特定します。特に -F オプションは、ログローテーションが行われても継続して追跡するため非常に便利です。


第4章:セキュリティの要・権限管理と所有者(chmod / chown)

Linuxの堅牢なセキュリティを支えているのが、ファイルやディレクトリに対する「パーミッション(アクセス権)」の概念です。

4-1. パーミッションの基本構造

ls -l を実行した際、左端に表示される -rw-r--r-- のような文字列がパーミッションを表します。これは大きく3つのブロックに分かれています。

  1. 所有者 (Owner)の権限
  2. グループ (Group)の権限
  3. その他 (Others)の権限

それぞれの権限は、r (Read: 読み取り = 4)、w (Write: 書き込み = 2)、x (Execute: 実行 = 1) の数値の足し算で表現されます。例えば「rw-」は 4 + 2 + 0 = 6 となります。

4-2. chmod による権限の変更

SSHの秘密鍵(id_rsa)などは、他のユーザーから見えてしまうと致命的なセキュリティインシデントになります。そのため、所有者のみが読み書きできる権限(600)に絞る必要があります。

# 秘密鍵の権限を 600 (-rw-------) に厳格化
chmod 600 ~/.ssh/id_rsa

# シェルスクリプトに実行権限を付与 (755: -rwxr-xr-x)
chmod 755 backup_script.sh

⚠️ 絶対にやってはいけない chmod 777
アクセス拒否エラーが出たからといって、安易に chmod 777(全ユーザーにフルアクセス許可)を実行するのは三流の仕事です。悪意のあるプロセスからシステムを改ざんされる原因となります。プロは必ず「必要なユーザーに必要なだけの権限(最小特権の原則)」を付与します。

4-3. chown による所有者の変更

Webサーバー(ApacheやNginx)のドキュメントルート(/var/www/html など)にコンテンツを配置した場合、ファイルの所有者が root のままだと、Webサーバーのプロセスがファイルを読み込めず 403 Forbidden エラーになることがあります。
その場合、chown コマンドで所有者とグループを適切なユーザーに変更します。

# 所有者を nginx、グループを nginx に変更(-R でディレクトリ内を再帰的に適用)
chown -R nginx:nginx /var/www/html/

総まとめ:コマンドの裏側にある「仕組み」を意識する

第1回「ファイル・ディレクトリ管理と基本操作の極意」はいかがでしたでしょうか?

今回紹介した ls、cd、cp、rm、cat、chmod といったコマンドは、インフラエンジニアが息をするように毎日叩くコマンドです。しかし、ただコマンドの文字列を暗記するのではなく、以下のような「プロの視点」を持つことが重要です。

  • rm を打つ前に、必ず ls で対象を目視確認し、致命的なインシデントを防ぐ。
  • 巨大なログファイルは cat ではなく less や tail でメモリを節約しながら安全に扱う。
  • エラーが出たからといって chmod 777 で逃げず、FHSとパーミッションの原則に基づき正しい権限と chown による所有者設定を行う。

これらの基本が身体に染み付いていれば、将来的にシェルスクリプトやAnsibleを用いて高度な自動化を行う際にも、決して揺るがない強固な土台となります。

次回、第2回は「テキスト処理と検索の魔法(grep / find / sed / awk)」です。Linuxの真骨頂である強力なテキストストリーム処理を解説しますので、お楽しみに!リナックス先生でした!

▼ 【Linuxの実践環境を構築しよう】 ▼

【自分専用のAlmaLinux環境を構築】
「高コスパおすすめVPS」

VPSランキングを見る

【Linuxスキルを活かしてキャリアアップ】
「ITエンジニア専門転職」

転職エージェントを見る

コメント