Linux コマンドチートシート

## ファイルとディレクトリ操作

| コマンド | 説明 | 例 |
|---|---|---|
| `ls` | ディレクトリの内容を表示 | `ls`, `ls -l`, `ls -a`, `ls -h`, `ls -r` |
| `pwd` | 現在の作業ディレクトリを表示 | `pwd` |
| `cd` | 作業ディレクトリを変更 | `cd /home/user`, `cd ..`, `cd ~` |
| `mkdir` | 新しいディレクトリを作成 | `mkdir new_directory`, `mkdir -p path/to/new_directory` |
| `rmdir` | 空のディレクトリを削除 | `rmdir empty_directory` |
| `rm` | ファイルやディレクトリを削除 | `rm file.txt`, `rm -r directory`, `rm -rf force_directory` |
| `cp` | ファイルやディレクトリをコピー | `cp file1.txt file2.txt`, `cp -r directory1 directory2` |
| `mv` | ファイルやディレクトリを移動またはリネーム | `mv old_file.txt new_file.txt`, `mv file.txt /tmp` |
| `touch` | 空のファイルを作成または既存のファイルのタイムスタンプを更新 | `touch new_file.txt` |
| `cat` | ファイルの内容を標準出力に表示 | `cat file.txt` |
| `less` | ファイルの内容をページャーで表示 | `less large_file.txt` |
| `head` | ファイルの先頭部分を表示 (デフォルトは10行) | `head file.txt`, `head -n 20 file.txt` |
| `tail` | ファイルの末尾部分を表示 (デフォルトは10行) | `tail file.txt`, `tail -n 20 file.txt`, `tail -f log_file.log` |
| `find` | ファイルやディレクトリを検索 | `find . -name "pattern"`, `find / -type d -name "directory_name"` |
| `grep` | ファイル内で指定したパターンを検索 | `grep "keyword" file.txt`, `grep -r "keyword" directory` |
| `chmod` | ファイルやディレクトリのパーミッションを変更 | `chmod 755 script.sh`, `chmod a+x script.sh` |
| `chown` | ファイルやディレクトリの所有者を変更 | `chown user file.txt`, `chown user:group directory` |
| `chgrp` | ファイルやディレクトリのグループを変更 | `chgrp group file.txt` |
| `df` | ディスクの空き容量を表示 | `df -h` |
| `du` | ディレクトリやファイルのディスク使用量を表示 | `du -sh directory`, `du -h file.txt` |

## プロセス管理

| コマンド | 説明 | 例 |
|---|---|---|
| `ps` | 現在実行中のプロセスを表示 | `ps`, `ps aux`, `ps aux | grep "process_name"` |
| `top` | システムのリソース使用状況とプロセスをリアルタイムに表示 | `top` |
| `htop` | `top`の改良版 (インストールが必要な場合あり) | `htop` |
| `kill` | プロセスにシグナルを送信 (通常は終了) | `kill PID`, `kill -9 PID` (強制終了) |
| `killall` | 名前でプロセスを終了 | `killall process_name` |
| `bg` | 停止したジョブをバックグラウンドで実行 | `bg` |
| `fg` | バックグラウンドのジョブをフォアグラウンドに移動 | `fg %job_number` |
| `jobs` | 現在のジョブの状態を表示 | `jobs` |
| `nohup` | ログアウト後もプロセスを実行し続ける | `nohup command &` |
| `screen` | 仮想ターミナルマネージャー (セッションの維持) | `screen`, `screen -r` (再接続) |
| `tmux` | ターミナルマルチプレクサ (screenの代替) | `tmux new -s session_name`, `tmux attach -t session_name` |

## ネットワーク

| コマンド | 説明 | 例 |
|---|---|---|
| `ip addr` / `ifconfig` | ネットワークインターフェースの情報を表示 | `ip addr show`, `ifconfig` |
| `ping` | ネットワークホストにICMPエコー要求を送信 | `ping google.com`, `ping -c 5 192.168.1.1` |
| `netstat` | ネットワーク接続、ルーティングテーブル、インターフェース統計を表示 (非推奨、`ss`推奨) | `netstat -an`, `netstat -tuln` |
| `ss` | ソケット統計を表示 (`netstat`の後継) | `ss -an`, `ss -tuln` |
| `ssh` | セキュアシェルでリモートホストに接続 | `ssh user@remote_host` |
| `scp` | セキュアコピーでファイルをリモートホストとやり取り | `scp local_file user@remote_host:/path/`, `scp user@remote_host:/path/remote_file local_path/` |
| `wget` | Webからファイルをダウンロード | `wget http://example.com/file.txt` |
| `curl` | URLからデータを転送 (Web APIとの連携など) | `curl http://example.com`, `curl -I http://example.com` (ヘッダー情報) |
| `dig` | DNSルックアップユーティリティ | `dig example.com` |
| `nslookup` | DNSルックアップユーティリティ (より基本的なもの) | `nslookup example.com` |
| `route` | IPルーティングテーブルを表示/設定 | `route -n` |

## パッケージ管理 (Debian/Ubuntu系)

| コマンド | 説明 | 例 |
|---|---|---|
| `apt update` | パッケージリストを更新 | `sudo apt update` |
| `apt upgrade` | インストール可能なパッケージを最新バージョンにアップグレード | `sudo apt upgrade` |
| `apt install` | 新しいパッケージをインストール | `sudo apt install package_name` |
| `apt remove` | パッケージを削除 (設定ファイルは残る) | `sudo apt remove package_name` |
| `apt purge` | パッケージを完全に削除 (設定ファイルも削除) | `sudo apt purge package_name` |
| `apt search` | パッケージを検索 | `apt search keyword` |
| `apt show` | パッケージの詳細情報を表示 | `apt show package_name` |
| `dpkg` | `.deb`パッケージを管理 (低レベル) | `sudo dpkg -i package.deb`, `sudo dpkg -r package_name` |

## パッケージ管理 (Red Hat/CentOS/Fedora系)

| コマンド | 説明 | 例 |
|---|---|---|
| `yum update` | パッケージリストを更新およびアップグレード | `sudo yum update` |
| `yum install` | 新しいパッケージをインストール | `sudo yum install package_name` |
| `yum remove` | パッケージを削除 | `sudo yum remove package_name` |
| `yum search` | パッケージを検索 | `yum search keyword` |
| `yum info` | パッケージの詳細情報を表示 | `yum info package_name` |
| `rpm` | `.rpm`パッケージを管理 (低レベル) | `sudo rpm -ivh package.rpm`, `sudo rpm -e package_name` |
| `dnf` | `yum`の後継 (新しいRed Hat系) | `sudo dnf update`, `sudo dnf install package_name` |

## その他

| コマンド | 説明 | 例 |
|---|---|---|
| `history` | 実行したコマンドの履歴を表示 | `history`, `history | grep "command"` |
| `!` | 履歴コマンドの再実行 | `!!` (最後のコマンド), `!n` (n番目のコマンド), `!string` (stringで始まる最後のコマンド) |
| `alias` | コマンドのエイリアスを作成 | `alias ll='ls -l'`, `unalias ll` |
| `date` | 現在の日付と時刻を表示または設定 | `date`, `date "+%Y-%m-%d %H:%M:%S"` |
| `cal` | カレンダーを表示 | `cal`, `cal 2023` |
| `echo` | 文字列を標準出力に表示 | `echo "Hello, world!"`, `echo $HOME` |
| `export` | 環境変数を設定 | `export MY_VAR="value"` |
| `env` | 環境変数を表示 | `env` |
| `whoami` | 現在のユーザー名を表示 | `whoami` |
| `sudo` | スーパーユーザー権限でコマンドを実行 | `sudo command` |
| `man` | コマンドのマニュアルページを表示 | `man ls` |
| `whatis` | コマンドの簡単な説明を表示 | `whatis ls` |
| `wc` | ファイルの行数、単語数、バイト数を表示 | `wc file.txt`, `wc -l file.txt` (行数) |
| `sort` | ファイルの行をソート | `sort file.txt` |
| `uniq` | 重複した行を削除 | `sort file.txt | uniq`, `sort file.txt | uniq -c` (出現回数付き) |
| `diff` | ファイル間の差分を表示 | `diff file1.txt file2.txt` |
| `patch` | `diff`の出力を元にファイルを変更 | `patch file.txt file.patch` |
| `tar` | アーカイブファイルを作成・展開 | `tar -cvf archive.tar files/`, `tar -xvf archive.tar` |
| `gzip` / `gunzip` | gzip形式で圧縮・解凍 | `gzip file.txt`, `gunzip file.txt.gz` |
| `zip` / `unzip` | zip形式で圧縮・解凍 | `zip archive.zip files/`, `unzip archive.zip` |
| `df -h` | ディスクの空き容量を人間が読みやすい形式で表示 | `df -h` |
| `du -sh` | ディレクトリのディスク使用量を合計で人間が読みやすい形式で表示 | `du -sh directory` |