第2回 | ファイル構成を見て入口を見つける | ls find cat でプロジェクトを歩く|UNIX Cafe

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第2回 | ファイル構成を見て入口を見つける | ls find cat でプロジェクトを歩く|UNIX Cafe

CLIで開発する | 第2回

知らないプロジェクトを開いたときは、まずファイル構成を見て、どこに何があるかを確認します。

今回は pwd ls cat find を使い、Python製CLIアプリの中を歩きます。コードを読む前に地図を見る回です。YouTubeから来た方も手元で同じ操作を試せるように、最初に練習用ファイルを作ります。

この記事で学べること

  • pwdls で足元を見る方法
  • README.md を最初に読む理由
  • find で浅い階層のファイルを一覧にする方法
  • コード、データ、ログ、テストの置き場所
目次

練習を始める前の準備

最初に今回の練習に必要な、ディレクトリとファイルを、ターミナルと vi を使って作成します。

作業用ディレクトリの作成

ターミナルを開いたら、練習用のファイルを格納する unix_cafe_order ディレクトリを作成します。mkdir はディレクトリを作るコマンドです。ディレクトリを作成したら、ls で確認します。

mkdir unix_cafe_order
ls

ls を実行すると、作成したディレクトリが確認できます。

unix_cafe_order

次にcd コマンドを使って、いま作成したディレクトリへ移動します。

cd unix_cafe_order

新たに src data logs tests ディレクトリを作成します。ディレクトリを作成したら、ls で確認します。

mkdir src data logs tests
ls

ls を実行すると、作成したディレクトリが確認できます。

data  logs  src   tests

作業用ファイルの作成

続けて、プロジェクトの説明を書く README.md を作ります。

vi README.md

vi が開いたら、i キーを押して入力モードにします。次の内容を入力してください。

# UNIX Cafe Order

UNIX Cafe の注文金額を合計する、学習用の小さな Python アプリです。

## 実行方法

python3 src/app.py

## テスト方法

python3 -m unittest discover -s tests

入力できたら、Esc キーを押します。続けて :wq と入力し、Enter キーを押してください。:wq は、ファイルを保存して vi を終了する操作です。

次に、アプリのコードを3ファイル作ります。どのファイルも、vi を開いた後の操作は同じです。i キーを押して入力し、最後に Esc:wqEnter の順に操作します。

まず、アプリの入口になる src/app.py を作ります。

vi src/app.py
from calculator import calculate_total
from message import format_total

orders = [500, 600, 700]
total = calculate_total(orders)

print(format_total(total))

注文金額を足し算する src/calculator.py を作ります。

vi src/calculator.py
def calculate_total(orders):
    return sum(orders)

表示する文章を作る src/message.py を作ります。

vi src/message.py
def format_total(total):
    return f"Cafe order total: {total} yen"

最後に、コード以外のファイルも作ります。注文データを書く data/orders.csv を作ってください。

vi data/orders.csv
item,price
coffee,500
sandwich,600
cake,700

実行ログの例として logs/app.log を作ります。

vi logs/app.log
2026-01-01 10:00:00 INFO sample log for UNIX Cafe Order

確認用のテストファイル tests/test_calculator.py も作ります。Pythonの内容は今すぐ理解できなくても問題ありません。今回は、テストを置く場所が tests だと分かれば十分です。

vi tests/test_calculator.py
import sys
import unittest
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent.parent / "src"))

from calculator import calculate_total

class CalculatorTest(unittest.TestCase):
    def test_calculate_total(self):
        self.assertEqual(calculate_total([500, 600, 700]), 1800)

if __name__ == "__main__":
    unittest.main()

これで準備は完了です。途中で入力を間違えた場合は、もう一度 vi ファイル名 を実行すると修正できます。

最初に足元を見る

プロジェクトへ移動したら、最初に現在地と中身を確認します。

pwd
ls

pwd は、今いる場所を表示します。末尾が unix_cafe_order になっていれば準備完了です。ls は、その場所にあるファイルとディレクトリを表示します。

今回のサンプルでは、次のようなファイルとディレクトリが見えます。

README.md
data
logs
src
tests

src にはアプリのコード、data には注文データ、logs には実行ログ、tests には確認用のテストが入っています。

README.md を読む

README.md があれば、最初に読んでおくと見通しがよくなります。アプリの目的や実行方法が書かれていることが多いファイルです。

cat README.md

今回のサンプルでは、アプリの目的、実行方法、テスト方法が書かれています。コードを開く前に、まず説明を読む方が効率的です。この回ではまだ実行しませんが、次回使うコマンドが python3 src/app.py だと分かります。

find でファイルを一覧にする

浅い階層にあるファイルを一覧にすると、プロジェクトの形が見えてきます。

find . -maxdepth 2 -type f

-maxdepth 2 は、深く潜りすぎずに2階層までを見る指定です。-type f は、ディレクトリではなくファイルだけに絞る指定です。

今回のサンプルでは、次のように表示されます。表示される順番が違っていても問題ありません。

./README.md
./data/orders.csv
./logs/app.log
./src/app.py
./src/calculator.py
./src/message.py
./tests/test_calculator.py

コードだけを見たいなら、探す場所を src に絞れます。

find ./src -type f

今回のサンプルでは、次の3ファイルが見つかります。

./src/app.py
./src/calculator.py
./src/message.py

入口になりそうなファイルを見つける

app.py という名前から、アプリを動かす入口になりそうだと考えられます。calculator.py は計算処理、message.py は表示メッセージに関係しそうです。

この段階では、まだ全部を詳しく読む必要はありません。ファイル名と配置から、おおまかな役割を把握できれば十分です。

  • src: アプリのコード
  • data: アプリが扱うデータ
  • logs: 実行時の記録
  • tests: 計算などが正しいか確認するテスト

初心者がつまずきやすいところ

find . だけで広い場所を探すと、結果が多くなりすぎることがあります。最初は -maxdepth で深さを制限したり、./src のように場所を狭めたりすると読みやすくなります。

手を動かすミニ練習

  1. find ./tests -type f を実行し、テストファイルを確認する
  2. find ./data -type f を実行し、注文データを確認する
  3. cat README.md を実行し、アプリの実行コマンドを見つける

余裕があれば、cat data/orders.csv も実行してください。コーヒー、サンドイッチ、ケーキの注文データが表示されます。今回はファイルを書き換えないため、失敗してもサンプルが壊れることはありません。

練習を終えた後の片付け

練習が終わったら、ターミナルで1つ上のディレクトリへ戻ります。

cd ..
pwd

次回も同じサンプルを使うので、作成した unix_cafe_order ディレクトリは残しておいてください。

次回予告

次回は、アプリを実際に動かします。画面の表示だけでなく、終了状態とログも確認します。

さらに学びたいあなたへ

用途ごとに選ぶ Linux のおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次