1.1.2 ターミナルの基本操作

このページを終えたら、この evidence card を残します。
- コマンド
- 実行した正確なターミナルコマンド
- 作業ディレクトリ
- pwd/現在のフォルダと重要ファイルを列挙
- 出力
- コマンド出力または結果のスクリーンショットをコピーしたもの
- 失敗確認
- 間違ったパス、コマンド不足、権限の問題、またはシェル不一致
- 期待される成果
- コマンドと結果を並べて示す再現可能なターミナル操作
この節の位置づけ
Section titled “この節の位置づけ”この節から、いよいよ本格的にターミナルを使っていきます。まずは「今どのディレクトリにいるのか」を判断できるようになり、そのうえでよく使うファイル・ディレクトリ・パス・パイプ・環境変数の操作を身につけます。これは、後で Python を実行したり、依存関係を管理したり、Git を使ったりするための土台になります。
- 日常操作の 90% をカバーする 10+ 個の基本コマンドを身につける
- 絶対パスと相対パスを理解する
- パイプとリダイレクトの使い方を学ぶ
- 環境変数の考え方を理解する
ターミナルを開く
Section titled “ターミナルを開く”まず、ターミナルを見つけて開きましょう。
| オペレーティングシステム | 開き方 |
|---|---|
| Windows | ”PowerShell” または “Windows Terminal” を検索して開く |
| macOS | Command + 空格 で “Terminal” を検索し、Enter で開く |
| Linux | Ctrl + Alt + T |
ウィンドウが開き、点滅するカーソルが表示されていれば、そこがターミナルです。ここにコマンドを入力していきます。
第1部:パス——今どこにいる?
Section titled “第1部:パス——今どこにいる?”コマンドラインにはグラフィカルな画面がないので、「どのフォルダの中のものを操作するか」を文字で伝える必要があります。これがパスです。
今どこにいる?
Section titled “今どこにいる?”pwdpwd = Print Working Directory(現在の作業ディレクトリを表示)
出力は次のようになります。
/Users/zhangsan # macOS/home/zhangsan # LinuxC:\Users\zhangsan # Windows PowerShellこれが今いるフォルダで、作業ディレクトリと呼びます。
絶対パス vs 相対パス
Section titled “絶対パス vs 相対パス”/Users/zhangsan/projects/ai-course/data/train.csvこれは絶対パスです。ルートディレクトリ / から始まり、ファイルの場所を完全に表しています。現実の住所でいうと、「中国北京市海淀区中関村大街1号」のような、全部書いた住所です。
data/train.csvこれは相対パスです。今いるフォルダを基準にしたパスです。もし今 /Users/zhangsan/projects/ai-course/ にいるなら、data/train.csv は上の絶対パスと同じ場所を指します。現実でいえば「となりの建物の2階」のような言い方です。
パスの中の特別な記号
Section titled “パスの中の特別な記号”| 記号 | 意味 | 例 |
|---|---|---|
/ | ルートディレクトリ(すべてのファイルの起点) | cd / |
~ | 現在のユーザーのホームディレクトリ | cd ~ は cd /Users/zhangsan と同じ |
. | 現在のディレクトリ | ./run.py は現在のディレクトリにある run.py を表す |
.. | 1つ上のディレクトリ | cd .. で1つ上へ戻る |
理解を助ける練習です。
# もし /Users/zhangsan/projects/ai-course にいると仮定する
pwd # 出力: /Users/zhangsan/projects/ai-coursecd .. # 1つ上へ戻るpwd # 出力: /Users/zhangsan/projectscd ~ # Home ディレクトリへ戻るpwd # 出力: /Users/zhangsancd ~/projects/ai-course # 絶対パス風に戻るpwd # 出力: /Users/zhangsan/projects/ai-course第2部:基本コマンド
Section titled “第2部:基本コマンド”以下のコマンドは、毎日のように使います。まずは実際に入力してみましょう。暗記する必要はありません。何度も使ううちに自然と覚えられます。
移動コマンド
Section titled “移動コマンド”cd — ディレクトリを切り替える
Section titled “cd — ディレクトリを切り替える”cd projects # projects フォルダに入るcd .. # 1つ上へ戻るcd ~ # Home ディレクトリへ戻るcd ~/Desktop # デスクトップへ移動cd - # 直前にいたディレクトリへ戻る(とても便利!)ls — ファイルを一覧表示する
Section titled “ls — ファイルを一覧表示する”ls # 現在のディレクトリのファイルとフォルダを表示ls -l # 詳細表示(サイズ、日付、権限を表示)ls -a # 隠しファイル(. で始まるファイル)も表示ls -la # 2つを組み合わせるls projects/ # projects フォルダの中身を表示ファイルとフォルダの操作
Section titled “ファイルとフォルダの操作”mkdir — フォルダを作る
Section titled “mkdir — フォルダを作る”mkdir my-project # フォルダを1つ作成mkdir -p a/b/c # 複数階層のフォルダをまとめて作成touch — 空ファイルを作る
Section titled “touch — 空ファイルを作る”touch hello.py # 空の Python ファイルを作成touch README.md # 空の Markdown ファイルを作成cp — コピーする
Section titled “cp — コピーする”cp file.txt file_backup.txt # ファイルをコピーcp file.txt ~/Desktop/ # デスクトップへコピーcp -r my-folder/ my-folder-backup/ # フォルダ全体をコピー(-r は再帰的)mv — 移動 / 名前変更
Section titled “mv — 移動 / 名前変更”mv old_name.py new_name.py # ファイル名を変更mv file.txt ~/Desktop/ # デスクトップへ移動mv project/ ~/projects/ # フォルダを移動rm — 削除する
Section titled “rm — 削除する”rm file.txt # ファイルを削除rm -r my-folder/ # フォルダとその中身をすべて削除ファイルの中身を見る
Section titled “ファイルの中身を見る”cat file.txt # ファイル全体の内容を表示(小さいファイル向き)head file.txt # 最初の10行を表示head -20 file.txt # 最初の20行を表示tail file.txt # 最後の10行を表示tail -f log.txt # ファイル更新をリアルタイムで追う(ログ確認に便利)grep "error" log.txt # "error" を含む行を検索grep -r "import torch" ./ # 現在のディレクトリ配下のすべてのファイルから検索grep -n "def train" model.py # 行番号付きで検索結果を表示grep は、今後のデバッグでとても役立つ味方です。たくさんのファイルの中から、ある関数や変数がどこで使われているかをすばやく見つけられます。
そのほかの便利なコマンド
Section titled “そのほかの便利なコマンド”clear # 画面をきれいにする(または Ctrl + L)history # これまで実行したコマンドを表示which python # python コマンドの場所を確認(環境の問題調査でよく使う)echo "hello" # 文字を表示する第3部:パイプとリダイレクト
Section titled “第3部:パイプとリダイレクト”
この2つは、コマンドラインを本当に強力にする仕組みです。
パイプの意味は、「前のコマンドの出力を、次のコマンドの入力として渡す」ことです。
# すべてのファイルを一覧表示し、その中から .py ファイルを探すls -la | grep ".py"
# 履歴の中から使った git コマンドを探すhistory | grep "git"
# 現在のディレクトリにある Python ファイルの数を数えるls *.py | wc -lパイプは、工場の流れ作業のようなものだと考えるとわかりやすいです。ある工程の出力が、次の工程の材料になります。
リダイレクト > と >>
Section titled “リダイレクト > と >>”コマンドの出力を画面に表示する代わりに、ファイルに保存できます。
# ls の結果を filelist.txt に保存する(上書き)ls -la > filelist.txt
# 結果をファイルの末尾に追加する(上書きしない)echo "新しい1行" >> notes.txt
# Python スクリプトの出力をファイルに保存するpython train.py > training_log.txt> は上書き、>> は追記です。実務では、学習ログの保存によく使います。
組み合わせて使う
Section titled “組み合わせて使う”# スクリプトを実行し、通常出力とエラー出力の両方をログファイルに保存するpython train.py > log.txt 2>&1
# 1つの Python ファイルに何行コードがあるか数えるcat model.py | wc -l
# "TODO" を含むファイルを見つけ、その件数を数えるgrep -r "TODO" ./ | wc -l第4部:環境変数
Section titled “第4部:環境変数”環境変数は、システムに保存されている「全体設定」のようなものです。多くのプログラムは、これを読み取って動作を決めます。
環境変数を見る
Section titled “環境変数を見る”# すべての環境変数を表示env
# 特定の環境変数の値を見るecho $PATHecho $HOME最重要の環境変数:PATH
Section titled “最重要の環境変数:PATH”PATH は、ターミナルでコマンドを入力したとき、システムがどのディレクトリを見に行ってそのコマンドを探すかを決めます。
echo $PATHこれらのパスは : で区切られています。python と入力すると、システムはこれらのディレクトリを順に探し、最初に見つかった python を実行します。
command not found(コマンドが見つからない)というエラーが出たら、多くの場合、そのプログラムが PATH に含まれるどのディレクトリにもないことが原因です。
環境変数を設定する
Section titled “環境変数を設定する”# 一時的に設定する(今開いているターミナルウィンドウでのみ有効)export MY_API_KEY="your_api_key_here"echo $MY_API_KEY # 出力: your_api_key_here
# 確認:ターミナルを閉じて再度開くと MY_API_KEY は消える# 永続的に設定する(設定ファイルに書き込む)# macOS/Linux で zsh を使う場合:echo 'export MY_API_KEY="your_api_key_here"' >> ~/.zshrcsource ~/.zshrc # すぐに反映
# bash を使う場合:echo 'export MY_API_KEY="your_api_key_here"' >> ~/.bashrcsource ~/.bashrcターミナルを開いて、次の操作を順番に行ってみましょう。
# 1. 今どこにいるか確認pwd
# 2. Home ディレクトリへ移動cd ~
# 3. 学習用プロジェクトフォルダを作成mkdir -p ai-study/ch01-tools/terminal-practice
# 4. そのフォルダへ移動cd ai-study/ch01-tools/terminal-practice
# 5. いくつかファイルを作成touch hello.py notes.txt data.csv
# 6. 作成されたファイルを確認ls -la
# 7. ファイルに少し書き込むecho "print('Hello, AI!')" > hello.pyecho "1日目の学習メモ" > notes.txt
# 8. ファイルの内容を確認cat hello.pycat notes.txt
# 9. notes.txt をコピーしてバックアップを作るcp notes.txt notes_backup.txt
# 10. バックアップが成功したか確認ls
# 11. notes.txt に内容を追加echo "cd, ls, mkdir, touch, cp, cat コマンドを学んだ" >> notes.txtcat notes.txt
# 12. "AI" を含むファイルを検索grep -r "AI" ./
# 13. 1つ上のディレクトリへ戻るcd ..pwdすべての手順がうまくいけば、おめでとうございます。これでコマンドラインの最も重要な操作を身につけました。
操作例と確認ポイント
- 最後の
pwdは、ai-course-practiceの 1 つ上のフォルダを指しているはずです。 lsではhello.py、notes.txt、notes_backup.txtが確認できます。cat notes.txtには最初のメモと、>>で追記したコマンド一覧の両方が表示されます。>を使うと上書きされます。grep -r "AI" ./はhello.pyのHello, AI!を見つけるはずです。- うまくいかない場合は、まず
pwdとlsで今いる場所とファイル名を確認します。多くの失敗はコマンドではなく場所のずれです。
よく使うコマンド早見表
Section titled “よく使うコマンド早見表”| コマンド | 用途 | よく使う引数 |
|---|---|---|
pwd | 現在のディレクトリを表示 | |
cd | ディレクトリを切り替える | .. 上へ、~ Home、- 前回 |
ls | ファイルを一覧表示 | -l 詳細、-a 隠しファイル |
mkdir | フォルダを作る | -p 多階層作成 |
touch | 空ファイルを作る | |
cp | コピーする | -r フォルダをコピー |
mv | 移動/名前変更 | |
rm | 削除する | -r フォルダ削除 |
cat | ファイルを見る | |
head / tail | 先頭/末尾を見る | -n 数字 で行数指定 |
grep | テキスト検索 | -r 再帰的、-n 行番号 |
echo | 文字を表示 | |
clear | 画面を消去 | |
history | コマンド履歴 | |
which | コマンドの場所を確認 |