Z4 / コマ1SEMINAR MATERIALS

おまけ / 作業中に参照する早見表

よく使うコマンド

コマ2以降の開発では、Git で変更を管理し、Docker で実行環境を扱い、SSH で標的や開発環境に接続する。 ここでは、作業中によく使うコマンドだけを用途別にまとめる。

迷ったら、まず「今どこにいるか」「何を変更したか」「どの環境で実行しているか」を確認する。 その確認に使うコマンドを先に覚えると、トラブルの切り分けが速くなる。

A1Git — 変更を確認し、記録する

Git は、ファイルの変更履歴を管理する道具。開発中は「何を変えたか」「どこまで戻れるか」を常に確認できるようにする。

やりたいことコマンド見るところ
リポジトリを取得するgit clone <url>GitHub などから作業用ディレクトリを作る
今の状態を見るgit status変更済み・追加済み・未追跡のファイルを確認する
差分を見るgit diffまだステージしていない変更を見る
ステージ済みの差分を見るgit diff --staged次のコミットに入る内容を見る
変更をステージするgit add <file>コミットに含めるファイルを選ぶ
コミットするgit commit -m "message"変更を履歴として記録する
履歴を見るgit log --oneline --graph最近のコミットと分岐を見る
ブランチを見るgit branch今いるブランチに * が付く
ブランチを作って移動するgit switch -c <name>作業単位ごとにブランチを分ける
別ブランチへ移動するgit switch <name>未コミットの変更があると移動できないことがある
リモートへ送るgit pushGitHub などに自分のコミットを送る
リモートから取るgit pull他の人の変更を取り込む

基本の流れ

# 0. リポジトリを取得する
git clone https://github.com/example/repo.git
cd repo

# 1. 変更状況を見る
git status

# 2. 差分を確認する
git diff

# 3. コミットに含める
git add src/agent.py

# まとめてステージする場合
git add .

# 4. ステージ済みの差分を確認する
git diff --staged

# 5. 記録する
git commit -m "Improve recon prompt"

# 6. リモートへ送る
git push
注意

.env、API トークン、VPN プロファイル、秘密鍵はコミットしない。 git add . は便利だが、不要なファイルもまとめて入る。 git statusgit diff --staged を見てからコミットする。

A2Docker — 実行環境を起動し、確認する

Docker は、アプリケーションを決まった環境で動かすための道具。手元の OS に依存しない実行環境を作れる。 本ゼミでは、テンプレート実装や補助サービスを動かすときに使う。

やりたいことコマンド見るところ
起動中のコンテナを見るdocker psコンテナ名、ポート、状態を確認する
停止中も含めて見るdocker ps -a終了したコンテナや失敗した起動を確認する
イメージを見るdocker images手元にあるイメージ名とタグを見る
ログを見るdocker logs <container>起動エラーやアプリの出力を見る
コンテナの中に入るdocker exec -it <container> sh中でファイルや環境変数を確認する
コンテナを止めるdocker stop <container>実行中のコンテナを停止する
コンテナを削除するdocker rm <container>停止済みのコンテナを削除する
イメージを作るdocker build -t <name> .今のディレクトリの Dockerfile から作る
コンテナを起動するdocker run --rm -it <image>--rm は終了時にコンテナを削除する

docker compose を使う場合

# 起動する
docker compose up

# バックグラウンドで起動する
docker compose up -d

# ログを見る
docker compose logs -f

# 停止する
docker compose down

# イメージを作り直して起動する
docker compose up --build
切り分けの順番

まず docker ps で起動しているかを見る。起動していなければ docker ps -adocker logs を見る。ポートが合わない場合は、PORTS の列とアプリ側の設定を照合する。

A3SSH — リモート環境に接続する

SSH は、別のマシンへ安全にログインしてコマンドを実行するための道具。 標的へのログイン、踏み台環境、開発用サーバへの接続で使う。

やりたいことコマンド見るところ
ユーザ名を指定して接続するssh user@hostuser はログイン先のユーザ名
ポートを指定するssh -p 2222 user@host標準は 22 番。違う場合だけ指定する
秘密鍵を指定するssh -i key.pem user@host鍵ファイルの権限が緩いと拒否される
接続の詳細を見るssh -v user@host認証や鍵選択で詰まったときに使う
ファイルを送るscp file user@host:/tmp/ローカルからリモートへコピーする
ファイルを取るscp user@host:/tmp/file .リモートからローカルへコピーする
ポートフォワードするssh -L 8080:127.0.0.1:80 user@host手元の 8080 を接続先の 80 に転送する

鍵を使うときの基本

# 鍵ファイルの権限を絞る(Linux / macOS / WSL)
chmod 600 key.pem

# 鍵を指定して接続する
ssh -i key.pem user@172.30.0.24

# 接続できないときは詳細ログを見る
ssh -v -i key.pem user@172.30.0.24
よくある原因

Permission denied は、ユーザ名・鍵・パスワード・接続先のいずれかが違うときに出る。 まず ssh -v で、どの鍵を試しているか、どの認証方式で失敗しているかを見る。


最初に実行する確認コマンド

Git

git status
今どのファイルを変更しているかを見る。

Docker

docker ps
コンテナが動いているかを見る。

SSH

ssh -v user@host
接続できない理由を詳しく見る。