Claude Code をインストールする
はじめてcurl -fsSL https://claude.ai/install.sh | bashirm https://claude.ai/install.ps1 | iex自分のパソコンに合う方をコピーして、ターミナルに貼って Enter。数分で終わります。
Claude Code(クロード・コード)の使い方とコマンド一覧を、「やりたいこと」から探せる早見表です。インストール・起動・モデル変更・アップデートから、/model /clear などのスラッシュコマンド、Claude への頼み方の例文、作業中に必要になるターミナル操作まで。Mac と Windows のコマンドを並べて載せているので、自分のパソコンに合う方をコピーして貼り付けるだけです。
Claude Code はターミナル(黒い画面)で使うツールです。ターミナルを一度も開いたことがなくても大丈夫。
このページで使いたいコマンドを探し、黒い枠の「コピー」を押します。ターミナルで ⌘+V(Mac)/ Ctrl+V か右クリック(Windows)で貼り付け。
黄色い部分はファイル名などの「書き換える場所」です。クリックして書き換えてからコピーできます。途中で止めたいときは Ctrl+C。
ls(一覧を見る)のような短い英単語が多いです。~/Desktop/memo.txt なら「ホームの中のデスクトップの中の memo.txt」。~ はホームフォルダのこと。ls -la の -la のように、コマンドの動きを変える追加の指定。$ と PS>Claude Code は、ターミナルで AI に日本語で頼むと、ファイルの作成や修正まで手伝ってくれるツールです。インストールから起動・更新まで、この順番で進めれば使い始められます。
curl -fsSL https://claude.ai/install.sh | bashirm https://claude.ai/install.ps1 | iex自分のパソコンに合う方をコピーして、ターミナルに貼って Enter。数分で終わります。
winget install --id Git.Git -eWindows 版の Claude Code は、Git に付いてくる機能を使って動くため、先に入れておきます。
claude --version「2.1.xx (Claude Code)」のようにバージョンが出れば成功です。「見つかりません」「not found」と出たら、ターミナルを開き直してもう一度。
cd ~/Desktop/my-projectclaude
Claude Code は「起動したフォルダ」の中身を見ながら作業します。まず作業したいフォルダに移動し、claude と打てば起動。フォルダがなければ先に mkdir ~/Desktop/my-project で作ります。
claude -c同じフォルダで最後に使った会話を、そのまま再開します(c は continue の頭文字)。
claude -r会話の一覧が出るので、矢印キーで選んで Enter(r は resume の頭文字)。
claude --model sonnetopus(いちばん賢い)、sonnet(賢さと速さのバランス型)、haiku(速くて軽い)から選べます。起動したあとで変えるなら /model。
claude -p "このフォルダの中身を3行で説明して"会話にはせず、答えを表示したら終わります(p は print の頭文字)。
claude updateふだんは自動で更新されますが、新しい機能が使えないときや、手動で確かめたいときに。
claude doctorインストールや設定に問題がないかをチェックして、直し方を教えてくれます。
Claude Code を起動したあと、入力欄に打つコマンドです。/ で始まるものは「スラッシュコマンド」と呼ばれ、/ だけ打つと候補が一覧で出ます。
| Mac | Windows | できること |
|---|---|---|
| Esc | Esc | Claude の作業をその場で止める(会話は残る) |
| Esc を2回 | Esc を2回 | 少し前の時点に戻る画面を開く |
| Shift+Tab | Shift+Tab | 動き方を切り替える(毎回確認する/編集は自動で進める/計画だけ立てる) |
| \ のあと Enter | \ のあと Enter | 送信せずに改行する(長い頼みごとを書くとき) |
| ↑ | ↑ | 前に送ったメッセージを呼び出す |
| Ctrl+C を2回 | Ctrl+C を2回 | Claude Code を終了する |
/help迷ったらまずこれ。入力欄で / だけ打っても候補が出ます。
/model一覧から矢印キーで選んで Enter。むずかしい作業は Opus、ふだんの作業は Sonnet、ちょっとした質問は Haiku が目安です。
/clear前の話を忘れて、まっさらな状態から始めます。別の作業に移るときにおすすめ。動作も軽くなります。
/compactこれまでの流れを要約して覚えたまま、会話を軽くします。同じ作業を続けたいけれど、会話が長くなったときに。
/rewindClaude が加えた変更と会話を、選んだ時点まで巻き戻します。Esc を2回押しても開けます。
/resume起動したまま、前の会話を選んで開けます。
/statusどのモデルで動いているか、どのアカウントでログインしているかが分かります。
/login別のアカウントに切り替えたいときも /login。ログアウトは /logout。
/config画面の色(テーマ)などを変えられます。
/permissionsよく使う安全なコマンドを許可リストに入れておくと、確認の回数が減ります。
/initフォルダの中身を読んで、Claude が次から参考にする説明ファイルを自動で作ります。新しいプロジェクトで最初にやっておくと便利。
/memory「返事は日本語で」「このフォルダでは〇〇を使う」など、毎回伝えたいことを書いておけます。
/terminal-setup対応しているターミナル(VS Code・iTerm2 など)で、Shift+Enter で改行できるように設定します。
/mcpMCP という仕組みでつないだ外部ツール(ブラウザ操作など)の状態を確認します。
! ls先頭に ! を付けると、そのままターミナルのコマンドとして実行し、結果を会話に残せます。
@index.html の見出しをもっと分かりやすくして@ のあとにファイル名を打つと候補が出ます。どのファイルの話かがはっきりして、正確に作業してくれます。
/exitCtrl+C を2回押しても終了できます。
何を打てばいいか迷ったら、この例文をコピーして使ってください。黄色い部分を自分の内容に書き換えます。
このフォルダに何があるか、初心者にも分かるように説明してはじめて開いたフォルダや、人からもらったプロジェクトで最初に聞くと全体がつかめます。
自己紹介のWebページを作りたい。まず計画を立てて見せて。確認してから作業を始めていきなり作らせずに計画を先に出してもらうと、思っていたのと違う…を防げます。Shift+Tab でプランモードにしても同じことができます。
このエラーが出ました。原因と直し方を教えて:ここにエラー文を貼る
エラー文はそのまま全部貼るのがコツ。途中を省くと原因が分かりにくくなります。
このコマンドは何をするもの?実行しても安全?rm -rf node_modules
ネットで見つけたコマンドを実行する前の確認に。
今回の変更を見直して、問題やバグがないか確認して作業が終わったあとに頼むと、見落としに気づけます。
さっきの変更は取り消して、元の状態に戻して/rewind で自分で巻き戻すこともできます。
専門用語を使わずに、中学生にも分かるように説明して返事がむずかしいと感じたら、遠慮せずにこう頼めます。
まずはキー操作から。これを知っているだけで、打つ量がぐっと減ります。
| Mac | Windows | できること |
|---|---|---|
| ↑ ↓ | ↑ ↓ | 前に打ったコマンドを呼び出す |
| Tab | Tab | ファイル名・コマンド名の続きを自動で補う(2回押すと候補一覧) |
| Ctrl+C | Ctrl+C | 実行中のコマンドを止める(Mac でも ⌘ ではなく Ctrl) |
| ⌘+C / ⌘+V | Ctrl+V / 右クリック | コピー・貼り付け(Linux は Ctrl+Shift+C/V) |
| Ctrl+R | Ctrl+R | 過去のコマンドを文字で検索 |
| Ctrl+L | Ctrl+L | 画面をきれいにする |
| Ctrl+A / Ctrl+E | Home / End | 行の先頭・末尾へ移動 |
| Ctrl+U | Esc | 打ちかけの行を消す |
| q | q | 長い表示(ヘルプや履歴)の画面から抜ける |
clear表示を消すだけで、履歴や状態は残ります。Windows では cls も使えます。
man lsGet-Help Copy-Item -Examples多くのコマンドは --help でも説明が出ます(例:git --help)。man は q で閉じます。
historyPowerShell では Get-History の別名として動きます。
!!rsudo !! とすると「直前のコマンドを管理者で」実行できます(Mac・Linux)。
npm install && npm run build&& は前が成功したときだけ次を実行、; は失敗しても続けます。PowerShell 7 以降は && も使えます。
exitSSH 接続中なら接続が切れて手元に戻ります。
作る・コピー・移動・名前変更・削除。削除はゴミ箱に入らないので注意。
mkdir new-foldermkdir -p a/b/cmkdir a/b/c途中のフォルダがなくてもまとめて作ります。PowerShell の mkdir は最初からこの動きです。
touch memo.txtNew-Item memo.txttouch は既存ファイルなら更新日時だけ変わります。New-Item は同名があるとエラーで止まります。
echo "hello" > memo.txt"hello" | Set-Content memo.txt既にあるファイルは上書きされます。追記したいときは Mac・Linux が >>、Windows は Add-Content。
cp 元.txt 先.txtコピー先に同名ファイルがあると確認なしで上書きされます。
cp -r 元フォルダ 先フォルダCopy-Item 元フォルダ 先フォルダ -Recursemv 古い名前 新しい名前別のフォルダを指定すれば移動になります。
for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; doneGet-ChildItem *.jpeg | Rename-Item -NewName { $_.BaseName + ".jpg" }例は .jpeg を .jpg に。ファイル名に連番を付けたいときなどもこの形の応用です。
rm ファイル名ゴミ箱には入りません。
* を使うときは先に ls で対象を確認。rm -rf フォルダ名Remove-Item フォルダ名 -Recurse -Forcenode_modules の消し直しなどに。
pwd で場所を確かめ、フォルダ名を空欄のまま実行しないこと。rmdir フォルダ名中身があると Mac・Linux では失敗します(安全)。PowerShell では確認が出ます。
ln -s 元のパス リンク名New-Item -ItemType SymbolicLink -Path リンク名 -Target 元のパスWindows は管理者として実行するか、開発者モードを有効にする必要があります。
du -sh フォルダ名"{0:N1} MB" -f ((Get-ChildItem フォルダ名 -Recurse -File | Measure-Object Length -Sum).Sum / 1MB)du -sh * | sort -hGet-ChildItem -Directory | ForEach-Object { [pscustomobject]@{ MB = [math]::Round(((Get-ChildItem $_ -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB), 1); Name = $_.Name } } | Sort-Object MB今いるフォルダの中身を、小さい順に並べます(一番下が一番大きい)。
stat ファイル名Get-Item ファイル名 | Format-List *xattr -d com.apple.quarantine ファイル名Unblock-File ファイル名「開発元が未確認」などで開けないアプリやスクリプトに。信頼できる入手元のものだけに使ってください。
ファイルを開かずに中身を確認する。
cat ファイル名長いファイルは下の「ページ送り」で。
less ファイル名Get-Content ファイル名 | Out-Host -Pagingless は Space で次、/文字 で検索、q で終了。
head -n 20 ファイル名Get-Content ファイル名 -TotalCount 20tail -n 20 ファイル名Get-Content ファイル名 -Tail 20tail -f app.logGet-Content app.log -Wait -Tail 20止めるときは Ctrl+C。
wc -l ファイル名(Get-Content ファイル名 | Measure-Object -Line).LinesMac・Linux の wc は -w で単語数、-c でバイト数。
cat -n ファイル名$i = 1; Get-Content ファイル名 | ForEach-Object { "{0,5} {1}" -f $i++, $_ }nano ファイル名notepad ファイル名nano は Ctrl+O で保存、Ctrl+X で終了。vim に入ってしまったら Esc → :q! → Enter で抜けられます。
git diff --no-index a.txt b.txtgit が入っていればどこでも使え、色付きで見やすいです。git 以外なら Mac・Linux は diff a b、Windows は Compare-Object (Get-Content a) (Get-Content b)。
shasum -a 256 ファイル名Get-FileHash ファイル名 -Algorithm SHA256配布元が公開している値と一致すれば、正しくダウンロードできています。Linux は sha256sum。
file ファイル名拡張子に関係なく中身から判定します。Windows には標準の同等コマンドがないので、VS Code の右下で確認します。
ファイル名や、ファイルの中の文字を探す。
find . -name "*.txt"Get-ChildItem -Recurse -Filter "*.txt"* は「何でも」。. は今のフォルダ以下という意味です。
find . -iname "*report*"Get-ChildItem -Recurse -Filter "*report*"Windows はもともと大文字小文字を区別しません。
grep -rn "検索語" .Get-ChildItem -Recurse -File | Select-String "検索語"ファイル名・行番号・該当行が出ます。Mac・Linux で大文字小文字を無視するなら -i を足します(Select-String は最初から無視)。
grep -rl "検索語" .Get-ChildItem -Recurse -File | Select-String "検索語" -List | Select-Object Pathgit grep -n "検索語"node_modules など .gitignore の対象を自動で無視します。
find . -type f -mtime -7Get-ChildItem -Recurse -File | Where-Object LastWriteTime -gt (Get-Date).AddDays(-7)例は7日以内。
find . -type f -size +100MGet-ChildItem -Recurse -File | Where-Object Length -gt 100MBディスクが足りないときの犯人探しに。
which nodeGet-Command nodeどのバージョンのコマンドが使われているかの確認に。
並べ替え・置換・集計、結果をファイルやクリップボードへ。
ls > result.txt> は上書き、>> は追記。エラーも一緒に保存するなら > result.txt 2>&1。
npm run build | tee build.lognpm run build | Tee-Object build.logcat file.txt | pbcopyGet-Content file.txt | Set-ClipboardLinux は xclip -selection clipboard。エラー文を人に送るときに便利です。
pbpaste > memo.txtGet-Clipboard | Set-Content memo.txtcat app.log | grep "ERROR"Get-Content app.log | Select-String "ERROR"逆に「含まない行」は Mac・Linux が grep -v、Windows は Select-String -NotMatch。
sort ファイル名Get-Content ファイル名 | Sort-Object数値として並べるなら Mac・Linux は sort -n、逆順は -r。
sort ファイル名 | uniqGet-Content ファイル名 | Sort-Object -Uniquesort ファイル名 | uniq -c | sort -rn | headGet-Content ファイル名 | Group-Object | Sort-Object Count -Descending | Select-Object -First 10 Count, Nameアクセスログの多いIP、よく出るエラーの集計などに。
sed 's/old/new/g' ファイル名(Get-Content ファイル名) -replace 'old', 'new'表示するだけで、ファイルは変わりません。
sed -i '' 's/old/new/g' ファイル名(Get-Content ファイル名) -replace 'old', 'new' | Set-Content ファイル名Linux では sed -i 's/old/new/g' ファイル('' は不要)。
cut -d, -f2 data.csvImport-Csv data.csv | Select-Object 列名Mac・Linux 版は2列目を、Windows 版は見出しの名前で指定します。
python3 -m json.tool data.jsonGet-Content data.json -Raw | ConvertFrom-Json | ConvertTo-Json -Depth 20よく使うなら jq を入れると便利です(jq . data.json)。
cat a.txt b.txt > all.txtGet-Content a.txt, b.txt | Set-Content all.txtzip と tar.gz。Windows 10 以降は tar も標準で使えます。
zip -r out.zip フォルダ名Compress-Archive -Path フォルダ名 -DestinationPath out.zipWindows で既存の zip に上書きするなら -Force。Mac の zip は -x "*.DS_Store" で余計なファイルを除けます。
unzip file.zip -d 出力先Expand-Archive file.zip -DestinationPath 出力先unzip -l file.ziptar -tf file.zipWindows の tar は zip も読めます。
tar -czvf out.tar.gz フォルダ名c=作る、z=gzip、v=経過表示、f=ファイル名。Windows 10 以降も標準で使えます。
tar -xzvf file.tar.gzx=展開。場所を指定するなら -C 出力先。
「Permission denied」「アクセスが拒否されました」と出たときに。
sudo コマンドStart-Process pwsh -Verb RunAsWindows は管理者の PowerShell を別ウィンドウで開きます(PowerShell 5 なら powershell)。
chmod +x script.sh付けたら ./script.sh で実行できます。
chmod 644 ファイル名644=自分は読み書き・他は読むだけ(普通のファイル)、755=自分は全部・他は読む+実行(スクリプトやフォルダ)、600=自分だけ(秘密鍵)。
sudo chown -R ユーザー名 フォルダ名-R は中身も含めて。Windows は icacls で設定しますが、エクスプローラーのプロパティから行うほうが安全です。
ls -l ファイル名Get-Acl ファイル名 | Format-List-rw-r--r-- は「自分:読み書き/グループ:読み/他人:読み」。
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned「このシステムではスクリプトの実行が無効になっている」エラーの対処。自分のユーザーにだけ適用されます。
重いときに何が動いているか見る、止める、容量を確認する。
ps auxGet-Processps aux | grep nodeGet-Process nodetop -o cpuGet-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, Id, CPU, WSLinux は top(P で CPU 順)。htop を入れるとさらに見やすくなります。Windows はタスクマネージャー(taskmgr)も。
kill 1234Stop-Process -Id 1234止まらなければ Mac・Linux は kill -9、Windows は -Force。
pkill nodeStop-Process -Name node同じ名前のものが全部止まります。
df -hGet-PSDrive -PSProvider FileSystemfree -hGet-CimInstance Win32_OperatingSystem | Select-Object @{n="空きGB";e={[math]::Round($_.FreePhysicalMemory/1MB,1)}}, @{n="合計GB";e={[math]::Round($_.TotalVisibleMemorySize/1MB,1)}}free は Linux 用。Mac は vm_stat か、アクティビティモニタで確認します。
uname -aGet-ComputerInfo -Property OsName, OsVersionMac は sw_vers、Ubuntu は cat /etc/os-release でより詳しく出ます。
uptime(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTimetime npm run buildMeasure-Command { npm run build }npm run dev &Start-Job { npm run dev }Mac・Linux は jobs で一覧、fg で前に戻せます。Windows は Get-Job、Receive-Job で出力を確認。
nohup コマンド > out.log 2>&1 &サーバーで処理を流しっぱなしにするときに。本格的に常駐させるなら tmux や systemd を使います。
sleep 5Start-Sleep 5sudo shutdown -r nowRestart-Computer保存していない作業は失われます。
つながるか、IPアドレス、ダウンロード、ポート。
ping -c 4 example.comping example.comMac・Linux の ping は止めるまで続くので -c 4 で4回に。
ifconfigipconfigMac は ipconfig getifaddr en0 で数字だけ。Linux は ip addr。
curl ifconfig.meインターネット側から見えている自分のIPです。
curl -I https://example.com1行目が 200 なら正常。301/302/307/308 は転送、404 は見つからない、500 番台はサーバーのエラー。
curl -s -o /dev/null -w "%{http_code}\n" https://example.comcurl -s -o NUL -w "%{http_code}\n" https://example.com数字だけが出るので、スクリプトでの監視に向いています。
curl -LO https://example.com/file.zipInvoke-WebRequest https://example.com/file.zip -OutFile file.zip-L は転送先を追いかける、-O は元のファイル名で保存。
curl -X POST -H "Content-Type: application/json" -d '{"name":"test"}' https://example.com/apiInvoke-RestMethod -Method Post -Uri https://example.com/api -ContentType "application/json" -Body '{"name":"test"}'認証が要るなら -H "Authorization: Bearer トークン" を足します。
nslookup example.comCNAME を見るなら nslookup -type=CNAME ドメイン。Mac・Linux は dig example.com +short も便利。
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderipconfig /flushdnsドメインの設定を変えたのに古いサイトが出るときに。Mac 版です(Linux は sudo resolvectl flush-caches)。
traceroute example.comtracert example.comlsof -i :3000Get-NetTCPConnection -LocalPort 3000 | Select-Object LocalPort, State, OwningProcess「address already in use」の犯人探し。OwningProcess / PID がプロセス番号です。
kill $(lsof -t -i :3000)Get-NetTCPConnection -LocalPort 3000 -State Listen | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }閉じ忘れた開発サーバーなどを止めます。
lsof -i -P | grep LISTENGet-NetTCPConnection -State Listen | Sort-Object LocalPortLinux は ss -tlnp も。
nc -zv example.com 443Test-NetConnection example.com -Port 443succeeded / TcpTestSucceeded : True なら通ります。
python3 -m http.server 8000python -m http.server 8000ブラウザで http://localhost:8000 を開きます。Node があれば npx serve . でも。
サーバーに入る、鍵を作る、ファイルを送る。
ssh user@203.0.113.10ポートが22以外なら -p 2222。鍵ファイルを指定するなら -i ~/.ssh/鍵。
ssh-keygen -t ed25519 -C "you@example.com"Enter 連打で ~/.ssh/ に作られます。.pub の付いた方が相手に渡す公開鍵、付いていない方は絶対に渡さない秘密鍵。
cat ~/.ssh/id_ed25519.pub | pbcopyGet-Content ~/.ssh/id_ed25519.pub | Set-Clipboardクリップボードに入るので、そのまま GitHub の Settings → SSH keys に貼れます。
ssh-copy-id user@hostGet-Content ~/.ssh/id_ed25519.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"以後パスワードなしで入れるようになります。
ssh -T git@github.com「Hi ユーザー名!」と出れば成功です。
scp file.txt user@host:/home/user/フォルダなら scp -r。
scp user@host:/var/log/app.log .最後の . は「今のフォルダに」。
rsync -avz --delete dist/ user@host:/var/www/html/--delete は送り先にだけあるファイルを消します。初回は --dry-run を付けて確認を。Windows は WSL で使えます。
Host myserverHostName 203.0.113.10User ubuntuPort 22IdentityFile ~/.ssh/id_ed25519
これを ~/.ssh/config に書いておくと ssh myserver だけで接続できます(scp・rsync でも使える)。
「コマンドが見つからない」の多くは PATH の問題です。
echo $HOME$env:USERPROFILEMac・Linux は $名前、PowerShell は $env:名前。
envGet-ChildItem Env:export API_KEY="value"$env:API_KEY="value"ターミナルを閉じると消えます。
PORT=4000 npm run dev$env:PORT="4000"; npm run devWindows 版はこのウィンドウに設定が残ります。
echo 'export NAME="value"' >> ~/.zshrc[Environment]::SetEnvironmentVariable("NAME", "value", "User")新しく開いたターミナルから有効。Linux(bash)は ~/.bashrc。
echo $PATH | tr ':' '\n'$env:PATH -split ';'「command not found」のときは、そのコマンドのフォルダがここにあるか確認します。
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";C:\tools", "User")反映にはターミナルの開き直しが必要です。
nano ~/.zshrcif (!(Test-Path $PROFILE)) { New-Item $PROFILE -Force }; notepad $PROFILE起動時に毎回読まれるファイル。エイリアスや PATH をここに書きます。
source ~/.zshrc. $PROFILEalias ll='ls -la'function ll { Get-ChildItem -Force @args }設定ファイルに書いておけば毎回使えます。PowerShell の Set-Alias は引数付きのコマンドを登録できないので function を使います。
echo $SHELL$PSVersionTable.PSVersionパッケージマネージャーでソフトを入れる・更新する。
brew search 名前winget search 名前Ubuntu は apt search 名前。
brew install 名前winget install 名前Ubuntu は sudo apt install 名前。winget は --id 正確なID -e で確実に指定できます。
brew update && brew upgradewinget upgrade --allUbuntu は sudo apt update && sudo apt upgrade。
brew listwinget listUbuntu は apt list --installed。
brew uninstall 名前winget uninstall 名前Ubuntu は sudo apt remove 名前。
sudo apt update && sudo apt install -y 名前先に apt update で一覧を最新にしてから入れるのが基本です。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"終わったら、最後に表示される「Next steps」のコマンドも実行して PATH を通します。
変更の確認 → add → commit → push。
git config --global user.name "名前"git config --global user.email "you@example.com"
PCごとに一度だけ。コミットの作者として記録されます。
git status何かする前に毎回。変更ファイル・add 済みのファイル・今のブランチが分かります。
git diffadd 済みの差分は git diff --staged。
git add -A新規・変更・削除すべて。一部だけなら git add ファイル名。
.env が .gitignore に入っているか、先に git status で確認を。git commit -m "変更内容の説明"git push新しいブランチを初めて送るときは git push -u origin ブランチ名。
git pullgit clone https://github.com/user/repo.gitgit initgit add -Agit commit -m "first commit"git branch -M maingit remote add origin https://github.com/user/repo.gitgit push -u origin main
先に GitHub で空のリポジトリを作っておきます。
git log --oneline -20ブランチの分かれ方も見るなら git log --oneline --graph --all。q で閉じます。
git show コミットIDコミットIDは git log の左の英数字(先頭7文字でOK)。
git blame ファイル名git branch -a* が今のブランチ。-a はリモートも含む。
git switch -c feature-name古い書き方は git checkout -b。
git switch maingit merge feature-name取り込む側(例:main)に移ってから実行します。
git branch -d feature-nameマージ済みのものだけ消せます。未マージも消すなら -D(変更が失われます)。
git stashgit stash pop
急ぎで別のブランチに移るときに。
git tag v1.0.0git push origin v1.0.0
git remote -vURL を変えるなら git remote set-url origin 新しいURL。
間違えたときの戻し方。赤いものは消えた変更が戻りません。
git restore --staged ファイル名git restore ファイル名最後のコミットの状態に戻します。
git commit --amend -m "正しいメッセージ"入れ忘れたファイルを add してから実行すれば、直前のコミットに追加もできます。
git reset --soft HEAD~1コミットだけ無かったことにして、変更は add 済みで残ります。
git revert コミットID逆の変更を新しいコミットとして作るので、履歴を壊さず安全に戻せます。そのあと git push。
git restore --source=コミットID ファイル名git merge --abortrebase 中なら git rebase --abort。始める前の状態に戻ります。
git add 直したファイルgit commit
<<<<<<< ======= >>>>>>> の部分を手で直してから実行します。rebase 中なら2行目は git rebase --continue。
git pull --rebasegit push
リモートに手元にない変更があるとき。取り込んでから送り直します。
git reflogreset などで消えたように見えるコミットも、ここにしばらく残っています。
git reset --hard HEADgit stash。git clean -ngit clean -fd
1行目は「何が消えるか」の確認だけ。問題なければ2行目で削除。
git fetch origingit reset --hard origin/main
git rm -r --cached node_modulesgit commit -m "node_modules を追跡から外す"
一度コミットしたものは .gitignore だけでは外れません。--cached はファイル自体は消しません。
git branch -m 新しい名前今いるブランチの名前を変えます。
git cherry-pick コミットIDgit log -S "API_KEY" --oneline見つかったら、履歴を消すよりもまず鍵を無効化・再発行するのが先です。
git config --global core.autocrlf inputgit config --global core.autocrlf trueOS による改行の違いを git に吸収させます。
JavaScript のプロジェクトで使うコマンド。
node -v && npm -vnpm init -ynpm installclone した直後や package.json が変わったときに。
npm cinode_modules を消してから package-lock.json 通りに入れます。CI や「自分の環境だけ動かない」ときに。
npm install パッケージ名開発時だけ使うものは -D、PC全体で使うコマンドは -g。
npm uninstall パッケージ名npm run dev使えるスクリプトは package.json の scripts か、npm run だけ打つと一覧が出ます。
npx create-next-app@latest my-appnpm outdatedWanted は安全に上げられる版、Latest は最新版。
npm updatepackage.json で許可された範囲内でだけ上げます。
npm auditnpm audit fix --force は大きなバージョンアップまで勝手に行うので注意。
rm -rf node_modules package-lock.json && npm installRemove-Item -Recurse -Force node_modules, package-lock.json; npm install「急に動かなくなった」ときの定番。
nvm install 22nvm use 22
nvm(Windows は nvm-windows)を入れておくと、プロジェクトごとに Node を切り替えられます。
pnpm installpnpm add パッケージ名pnpm dev
yarn なら yarn、yarn add、yarn dev。プロジェクトにある lock ファイル(pnpm-lock.yaml / yarn.lock)に合わせて使い分けます。
Mac・Linux は python3、Windows は python(または py)で呼ぶのが基本。
python3 --versionpython --versionWindows は py -3.12 のようにバージョンを指定して起動もできます。
python3 script.pypython script.pypython3 -m venv .venvpython -m venv .venvプロジェクトごとにパッケージを分けるため。.venv フォルダができます。
source .venv/bin/activate.\.venv\Scripts\Activate.ps1行頭に (.venv) と出れば成功。抜けるときは deactivate。
python3 -m pip install パッケージ名python -m pip install パッケージ名python -m pip と書くと、今の Python に確実に入ります。
pip install -r requirements.txt仮想環境に入った状態で実行します。
pip freeze > requirements.txtpython3 -m pip install --upgrade pippython -m pip install --upgrade pipコンテナの起動・停止・掃除。
docker ps止まっているものも含めるなら -a。
docker run -it --rm ubuntu bash--rm は抜けたら自動で消す指定。ちょっと試すのに便利です。
docker run -d -p 8080:80 --name web nginxhttp://localhost:8080 で開けます。左が手元のポート、右がコンテナ内のポート。
docker exec -it web shbash が入っているイメージなら bash。
docker logs -f webdocker stop web && docker rm webdocker build -t myapp .今のフォルダの Dockerfile から作ります。
docker compose up -ddocker compose down
docker-compose.yml のあるフォルダで。ログは docker compose logs -f。
docker system dfdocker system prune止まったコンテナ・使われていないネットワークやイメージを消します。
-a --volumes を付けるとデータ用のボリュームまで消えます。変換・圧縮・切り出し・GIF化。ffmpeg は別途インストールが必要です。
ffprobe -hide_banner input.mp4ffmpeg -i input.mov -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac output.mp4crf は小さいほど高画質(18〜23が目安)。
ffmpeg -ss 00:00:05 -to 00:00:15 -i input.mp4 -c copy clip.mp4再エンコードしないので一瞬。切れ目がずれるなら -c copy を外します。
ffmpeg -i input.mp4 -vf "scale=1280:-2" -c:v libx264 -crf 28 -c:a aac -b:a 96k small.mp4-2 は縦横比を保つ指定。crf を上げるほど小さく粗くなります。
ffmpeg -i input.mp4 -c:v copy -an silent.mp4ffmpeg -i input.mp4 -vn -q:a 2 audio.mp3ffmpeg -i input.mp4 -vf "fps=12,scale=720:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" output.gifパレットを作ってから変換するので色がきれいに出ます。
ffmpeg -ss 3 -i input.mp4 -frames:v 1 thumb.pngffmpeg -framerate 30 -i frame_%04d.png -c:v libx264 -pix_fmt yuv420p out.mp4%04d は 0001, 0002… の連番。
magick input.jpg -resize 1200x output.jpgImageMagick が必要。Mac は標準の sips -Z 1200 input.jpg でも縮小できます(上書きに注意)。
ffmpeg -i input.png -c:v libwebp -quality 85 output.webpfor f in *.png; do magick "$f" -quality 85 "${f%.png}.jpg"; doneGet-ChildItem *.png | ForEach-Object { magick $_.FullName -quality 85 ($_.BaseName + ".jpg") }例は PNG → JPG。
よく出るエラーと、その直し方。
which コマンド名; echo $PATHGet-Command コマンド名; $env:PATH -split ';'入っていないか、PATH が通っていません。入れた直後ならターミナルを開き直すだけで直ることが多いです。
ls -l ファイル名chmod +x ファイル名
実行できないなら実行権限を付けます。システムのファイルなら sudo。npm で出るなら sudo ではなく nvm で Node を入れ直すのが正解です。
kill $(lsof -t -i :3000)Get-NetTCPConnection -LocalPort 3000 -State Listen | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }前に起動したサーバーが裏で残っています。
Set-ExecutionPolicy -Scope CurrentUser RemoteSignednpm や venv の Activate.ps1 が止められるときに。
pip install パッケージ名 --trusted-host pypi.org --trusted-host files.pythonhosted.org会社のネットワークなど、通信を検査している環境で起きます。毎回付けるのが面倒なら pip config set global.trusted-host "pypi.org files.pythonhosted.org"。
[Console]::OutputEncoding = [Text.Encoding]::UTF8このウィンドウだけ有効です。
pkill -f "コマンド名"Stop-Process -Name プロセス名 -Forceまず Ctrl+C。それでも止まらないときに、別のターミナルを開いてこれで止めます。
:q!Esc を押してから :q! → Enter(保存せず終了)。保存して終了は :wq。git commit でメッセージ入力画面に入ったときによく起きます。
pwdls
今いる場所が思っている場所と違うことがほとんど。パスにスペースがあるなら引用符で囲みます。
df -hdu -sh ~/* | sort -h
Get-PSDrive -PSProvider FileSystemGet-ChildItem ~ -Recurse -File -ErrorAction SilentlyContinue | Sort-Object Length -Descending | Select-Object -First 20 Length, FullName
大きいものから消します。Docker を使っているなら docker system df も確認。
Anthropic 社が提供する、ターミナル(黒い画面)で動く AI ツールです。日本語で頼むと、フォルダの中のファイルを読み、作成・修正やコマンドの実行まで手伝ってくれます。
利用には Claude の有料プラン(Pro・Max など)か、Anthropic API(使った分だけ支払う方式)の登録が必要です。このコマンド逆引き帳は登録不要・無料で使えます。
Mac・Linux はターミナルで curl -fsSL https://claude.ai/install.sh | bash、Windows は PowerShell で irm https://claude.ai/install.ps1 | iex を実行します。Windows では先に Git for Windows を入れておきます。
使えます。PowerShell(ターミナル)からインストールして、claude と打てば起動します。このページではコマンドを Mac 用と Windows 用に分けて載せています。
起動中なら入力欄に /model と打って一覧から選びます。起動するときに claude --model sonnet のように指定することもできます。むずかしい作業は Opus、ふだんは Sonnet、軽い質問は Haiku が目安です。
ターミナルで claude update を実行します。ふだんは自動で更新されます。今のバージョンは claude --version で確認できます。
/clear で会話をまっさらに、/compact で要約して軽く、/rewind(または Esc を2回)で少し前の状態に戻せます。
入力欄に /exit と打つか、Ctrl+C を2回押します。続きから再開したいときは、次回 claude -c で起動します。
使えます。日本語でそのまま頼めます。返事を必ず日本語にしたいときは、/memory で「返事は日本語で」と書いておくと確実です。