「Debianを始めたいけど、ターミナルが難しそう…」
「コマンドって覚えることが多すぎる…」
そんな不安を感じている方も多いのではないでしょうか。
確かに、Debianはコマンドライン操作が中心のLinuxディストリビューションです。
でも実は、日常的に使うコマンドは意外と少ないんです。
この記事では、Debian初心者でも安心して使えるよう、本当によく使うコマンドを厳選し、実際の使用例とともにわかりやすく解説します。
Debianとは?なぜターミナルが重要?

Debianの特徴
安定性重視のLinuxディストリビューション
- 長期サポート:安定版は約3年間サポート
- 豊富なパッケージ:59,000以上のソフトウェア
- セキュリティ:迅速なセキュリティアップデート
- 無料:完全にフリーソフトウェア
Debianが使われる場面
- サーバー:Webサーバー、データベースサーバー
- 組み込みシステム:IoTデバイス、ルーター
- 開発環境:プログラミング学習、アプリ開発
- 研究・教育:大学、研究機関
なぜターミナル操作なのか
効率性
- マウス操作より高速
- 複数の操作を一度に実行可能
- 自動化(スクリプト)が容易
正確性
- GUI環境がなくても操作可能
- リモート操作に適している
- エラーメッセージが詳細
学習価値
- Linuxの基本概念を理解できる
- サーバー管理スキルが身につく
- プログラミングスキルの向上
ターミナルの基本的な使い方
ターミナルの起動方法
デスクトップ環境がある場合
- ショートカット:
Ctrl + Alt + T
- メニューから:アプリケーション → ターミナル
- 右クリック:デスクトップで右クリック → 「ターミナルで開く」
コマンドプロンプトの見方
user@debian:~$
- user:現在のユーザー名
- debian:コンピューター名(ホスト名)
- ~:現在いる場所(~はホームディレクトリ)
- $:一般ユーザーの印(#は管理者)
コマンドの基本構造
コマンド名 [オプション] [引数]
例
ls -l /home
│ │ └─ 引数(対象のディレクトリ)
│ └─ オプション(詳細表示)
└─ コマンド名(ファイル一覧表示)
ファイル・ディレクトリ操作の基本コマンド
現在地確認と移動
コマンド | 説明 | 使用例 | 結果 |
---|---|---|---|
pwd | 現在のディレクトリを表示 | pwd | /home/user |
ls | ファイル・ディレクトリ一覧 | ls | Documents Downloads |
ls -l | 詳細情報付きで一覧表示 | ls -l | 権限、サイズ、日付も表示 |
ls -a | 隠しファイルも含めて表示 | ls -a | .bashrc .profile も表示 |
cd | ディレクトリを移動 | cd Documents | Documentsフォルダに移動 |
実践的な使用例
# 現在地を確認
$ pwd
/home/user
# ファイル一覧を確認
$ ls
Documents Downloads Pictures Videos
# Documentsフォルダに移動
$ cd Documents
# 移動先を確認
$ pwd
/home/user/Documents
# 一つ上のディレクトリに戻る
$ cd ..
# ホームディレクトリに戻る
$ cd ~
# または単に
$ cd
ファイル・ディレクトリの作成と削除
コマンド | 説明 | 使用例 | 注意点 |
---|---|---|---|
mkdir | ディレクトリを作成 | mkdir myproject | 同名のディレクトリがあるとエラー |
mkdir -p | 親ディレクトリも同時作成 | mkdir -p work/project/src | 途中のディレクトリも自動作成 |
touch | 空のファイルを作成 | touch readme.txt | ファイルが存在する場合は更新日時を変更 |
rm | ファイルを削除 | rm oldfile.txt | 削除したファイルは復元不可 |
rm -r | ディレクトリを削除 | rm -r olddir | 中身ごと削除(危険) |
rm -i | 削除前に確認 | rm -i *.txt | 安全な削除方法 |
安全な削除の実践例
# ファイルを安全に削除(確認付き)
$ rm -i unwanted.txt
rm: remove regular file 'unwanted.txt'? y
# ディレクトリを安全に削除
$ rm -ri old_project
rm: descend into directory 'old_project'? y
rm: remove regular file 'old_project/file1.txt'? y
rm: remove directory 'old_project'? y
ファイル・ディレクトリのコピーと移動
コマンド | 説明 | 使用例 | 補足 |
---|---|---|---|
cp | ファイルをコピー | cp file1.txt file2.txt | file1.txtをfile2.txtとしてコピー |
cp -r | ディレクトリをコピー | cp -r dir1 dir2 | dir1をdir2としてコピー |
mv | ファイル・ディレクトリを移動 | mv file.txt Documents/ | Documentsフォルダに移動 |
mv | ファイル・ディレクトリ名を変更 | mv oldname.txt newname.txt | リネーム |
実践的なコピー・移動例
# 重要なファイルをバックアップ
$ cp important.txt important_backup.txt
# 設定ファイルをバックアップ(日付付き)
$ cp config.conf config.conf.$(date +%Y%m%d)
# プロジェクトディレクトリを丸ごとコピー
$ cp -r myproject myproject_backup
# ファイルを整理(移動)
$ mv *.txt Documents/
$ mv *.jpg Pictures/
システム情報確認コマンド
リアルタイム監視
コマンド | 説明 | 使用例 | 終了方法 |
---|---|---|---|
top | システム負荷をリアルタイム表示 | top | q キーで終了 |
htop | topの強化版(要インストール) | htop | q キーで終了 |
ps | 実行中のプロセス一覧 | ps aux | – |
topコマンドの見方
$ top
top - 14:30:25 up 2:15, 1 user, load average: 0.08, 0.12, 0.09
Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.1 us, 0.8 sy, 0.0 ni, 97.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1024.0 total, 512.5 free, 256.2 used, 255.3 buff/cache
MiB Swap: 1024.0 total, 1024.0 free, 0.0 used. 640.1 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 user 20 0 123456 7890 2345 S 1.5 0.8 0:12.34 firefox
重要な情報の読み方
- load average:システムの負荷(1.0以下が理想)
- %CPU:CPU使用率
- %MEM:メモリ使用率
- RES:実際に使用中のメモリ
ディスクとメモリの確認
コマンド | 説明 | 使用例 | 出力例 |
---|---|---|---|
df -h | ディスク使用量(人間が読みやすい形式) | df -h | 50G 25G 23G 53% / |
du -h | ディレクトリ使用量 | du -h Documents | 1.2G Documents |
free -h | メモリ使用状況 | free -h | total: 2.0G used: 1.2G |
実践的なディスク管理
# ディスク容量がひっ迫していないか確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 15G 4.2G 79% /
/dev/sda2 100G 45G 50G 48% /home
# どのディレクトリが容量を使っているか調査
$ du -h --max-depth=1 /home/user | sort -hr
5.2G /home/user/Videos
2.1G /home/user/Documents
1.8G /home/user/Downloads
システム情報
コマンド | 説明 | 使用例 | 取得できる情報 |
---|---|---|---|
uname -a | システム詳細情報 | uname -a | OS、カーネル、アーキテクチャ |
hostnamectl | ホスト情報 | hostnamectl | ホスト名、OS、カーネル |
uptime | 稼働時間と負荷 | uptime | 起動時間、ユーザー数、負荷 |
whoami | 現在のユーザー名 | whoami | ログイン中のユーザー名 |
パッケージ管理(APT)の完全ガイド

基本的なAPT操作
コマンド | 説明 | 使用例 | 実行タイミング |
---|---|---|---|
sudo apt update | パッケージリストを更新 | sudo apt update | 他の操作の前に必ず実行 |
sudo apt upgrade | インストール済みパッケージを更新 | sudo apt upgrade | 週1回程度 |
sudo apt install | パッケージをインストール | sudo apt install vim | 新しいソフトが必要な時 |
sudo apt remove | パッケージを削除 | sudo apt remove vim | 不要になった時 |
sudo apt autoremove | 不要な依存パッケージを削除 | sudo apt autoremove | remove後の清掃 |
典型的なメンテナンス手順
# 1. パッケージリストを最新に更新
$ sudo apt update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Get:2 http://security.debian.org/debian-security bullseye-security InRelease
# 2. 更新可能なパッケージを確認
$ apt list --upgradable
firefox/stable 91.0-1 amd64 [upgradable from: 90.0-1]
vim/stable 8.2.2434-3 amd64 [upgradable from: 8.2.2434-2]
# 3. パッケージを更新
$ sudo apt upgrade
# 4. 不要なパッケージを削除
$ sudo apt autoremove
パッケージ検索とインストール
コマンド | 説明 | 使用例 | 用途 |
---|---|---|---|
apt search | パッケージを検索 | apt search text-editor | インストール前の検索 |
apt show | パッケージ詳細情報 | apt show vim | 詳細確認 |
apt list --installed | インストール済み一覧 | apt list --installed | grep vim | 現状確認 |
よくインストールするパッケージ例
# 開発環境
sudo apt install git vim curl wget build-essential
# システム管理ツール
sudo apt install htop tree ncdu
# ネットワークツール
sudo apt install net-tools openssh-server
# Python開発環境
sudo apt install python3 python3-pip python3-venv
# Node.js開発環境
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install nodejs
ユーザー・権限管理
ユーザー管理
コマンド | 説明 | 使用例 | 注意点 |
---|---|---|---|
sudo adduser | ユーザーを追加 | sudo adduser newuser | 対話形式で設定 |
sudo deluser | ユーザーを削除 | sudo deluser olduser | ホームディレクトリは残る |
su | 他のユーザーに切り替え | su - otheruser | パスワードが必要 |
sudo | 管理者権限で実行 | sudo nano /etc/hosts | 一時的な権限昇格 |
ファイル権限の理解
権限の見方
$ ls -l
drwxr-xr-x 2 user user 4096 Dec 1 10:30 Documents
-rw-r--r-- 1 user user 123 Dec 1 10:25 readme.txt
権限の意味
drwxr-xr-x
│└┬┘└┬┘└┬┘
│ │ │ └─ その他のユーザーの権限
│ │ └─ グループの権限
│ └─ 所有者の権限
└─ ファイルタイプ(d=ディレクトリ、-=ファイル)
r = 読み取り (4)
w = 書き込み (2)
x = 実行 (1)
権限変更の実践
コマンド | 説明 | 使用例 | 結果 |
---|---|---|---|
chmod | ファイル権限変更 | chmod 755 script.sh | 所有者:全権限、他:読み込み・実行 |
chmod +x | 実行権限を追加 | chmod +x script.sh | スクリプトを実行可能に |
chown | 所有者変更 | sudo chown user:user file.txt | 所有者とグループを変更 |
よく使う権限設定
# スクリプトファイルを実行可能にする
chmod +x myscript.sh
# Webサイトのファイル権限(セキュア)
chmod 644 *.html # ファイル:読み書き(所有者)、読み込み(その他)
chmod 755 cgi-bin/ # ディレクトリ:全権限(所有者)、読み込み・実行(その他)
# 設定ファイルの権限(セキュア)
chmod 600 ~/.ssh/id_rsa # 秘密鍵:所有者のみ読み書き
chmod 644 ~/.ssh/id_rsa.pub # 公開鍵:所有者読み書き、その他読み込み
テキスト処理・検索コマンド

ファイル内容の表示
コマンド | 説明 | 使用例 | 適用場面 |
---|---|---|---|
cat | ファイル全体を表示 | cat file.txt | 短いファイルの確認 |
less | ページ単位で表示 | less logfile.txt | 長いファイルの閲覧 |
head | ファイルの先頭を表示 | head -20 file.txt | ファイルの冒頭確認 |
tail | ファイルの末尾を表示 | tail -f logfile | ログの監視 |
ログ監視の実践例
# リアルタイムでログを監視
$ tail -f /var/log/syslog
# 最新の100行を表示
$ tail -100 /var/log/apache2/access.log
# エラーログから特定のエラーを検索
$ grep "ERROR" /var/log/application.log | tail -20
検索・フィルタリング
コマンド | 説明 | 使用例 | 活用場面 |
---|---|---|---|
grep | 文字列検索 | grep "error" logfile.txt | ログ解析 |
find | ファイル・ディレクトリ検索 | find /home -name "*.txt" | ファイル探索 |
locate | ファイル名で高速検索 | locate filename | 事前にupdatedbが必要 |
実践的な検索例
# 設定ファイル内の特定の設定を検索
$ grep -n "ServerName" /etc/apache2/apache2.conf
# 大文字小文字を区別しない検索
$ grep -i "error" /var/log/syslog
# 特定の拡張子のファイルをすべて検索
$ find . -name "*.py" -type f
# 24時間以内に変更されたファイルを検索
$ find /home/user -mtime -1
# 大きなファイルを検索(100MB以上)
$ find / -size +100M -type f 2>/dev/null
プロセス管理コマンド
プロセスの確認と制御
コマンド | 説明 | 使用例 | 用途 |
---|---|---|---|
ps aux | 全プロセス表示 | ps aux | grep firefox | 特定プロセス確認 |
pgrep | プロセス名でPID検索 | pgrep firefox | PID特定 |
kill | プロセス終了 | kill 1234 | 正常終了 |
killall | プロセス名で一括終了 | killall firefox | 同名プロセス全終了 |
プロセス管理の実践
# 重いプロセスを特定
$ ps aux --sort=-%cpu | head -10
# メモリを多く使用しているプロセスを特定
$ ps aux --sort=-%mem | head -10
# 応答しないプロセスを強制終了
$ kill -9 1234
# 特定のユーザーのプロセスをすべて確認
$ ps -u username
ネットワーク関連コマンド
ネットワーク状態確認
コマンド | 説明 | 使用例 | 確認内容 |
---|---|---|---|
ip addr | IPアドレス確認 | ip addr show | ネットワーク設定 |
ping | 接続テスト | ping google.com | ネットワーク疎通 |
wget | ファイルダウンロード | wget https://example.com/file.zip | ファイル取得 |
curl | HTTP通信テスト | curl -I https://example.com | Webサーバー応答確認 |
ネットワークトラブルシューティング
# ネットワーク設定確認
$ ip addr show
$ ip route show
# DNS解決確認
$ nslookup google.com
$ dig google.com
# ポート開放確認
$ netstat -tlnp
$ ss -tlnp
# 特定ポートの接続テスト
$ telnet example.com 80
$ nc -zv example.com 80
圧縮・アーカイブ操作
tar コマンドの完全攻略
操作 | コマンド | 説明 | 使用例 |
---|---|---|---|
圧縮 | tar -czf | gzip圧縮でアーカイブ作成 | tar -czf backup.tar.gz Documents/ |
展開 | tar -xzf | gzip圧縮アーカイブを展開 | tar -xzf backup.tar.gz |
一覧 | tar -tzf | アーカイブ内容を確認 | tar -tzf backup.tar.gz |
実践的なバックアップ例
# 日付付きバックアップの作成
$ tar -czf backup_$(date +%Y%m%d).tar.gz /home/user/Documents
# 特定のファイルを除外してバックアップ
$ tar --exclude='*.tmp' --exclude='node_modules' -czf project_backup.tar.gz myproject/
# アーカイブの内容確認(展開せずに)
$ tar -tzf backup.tar.gz | head -20
# 特定のファイルのみ展開
$ tar -xzf backup.tar.gz specific_file.txt
システム管理の実践コマンド

サービス管理(systemd)
コマンド | 説明 | 使用例 | 用途 |
---|---|---|---|
systemctl status | サービス状態確認 | systemctl status apache2 | 動作確認 |
systemctl start | サービス開始 | sudo systemctl start apache2 | サービス起動 |
systemctl stop | サービス停止 | sudo systemctl stop apache2 | サービス停止 |
systemctl enable | 自動起動有効 | sudo systemctl enable apache2 | 起動時の自動開始 |
ログ確認(journalctl)
# システム全体のログを確認
$ journalctl
# 特定サービスのログを確認
$ journalctl -u apache2
# リアルタイムでログを監視
$ journalctl -f
# 起動時からのログを確認
$ journalctl -b
# エラーレベル以上のログのみ表示
$ journalctl -p err
効率的なコマンド使用のコツ
ショートカットと履歴
機能 | 操作方法 | 説明 |
---|---|---|
コマンド履歴 | ↑ ↓ | 過去のコマンドを呼び出し |
履歴検索 | Ctrl + R | 文字列でコマンド検索 |
タブ補完 | Tab | ファイル名やコマンドの自動補完 |
行の先頭 | Ctrl + A | カーソルを行の先頭に移動 |
行の末尾 | Ctrl + E | カーソルを行の末尾に移動 |
画面クリア | Ctrl + L | 画面をクリア |
パイプとリダイレクト
# パイプでコマンドを連結
$ ps aux | grep apache | head -5
# 出力をファイルに保存
$ ls -l > filelist.txt
# 出力をファイルに追記
$ echo "新しい行" >> logfile.txt
# エラー出力を破棄
$ command 2>/dev/null
# 標準出力とエラー出力を両方ファイルに保存
$ command > output.txt 2>&1
よくあるトラブルと解決法

権限エラー
症状: Permission denied
# 解決方法1: sudoを使用
$ sudo command
# 解決方法2: 権限を変更
$ chmod +x script.sh
# 解決方法3: 所有者を変更
$ sudo chown $USER:$USER filename
ディスク容量不足
症状: No space left on device
# 容量確認
$ df -h
# 大きなファイルを検索
$ du -h / | sort -hr | head -20
# 不要なパッケージキャッシュを削除
$ sudo apt clean
$ sudo apt autoremove
# ログファイルの整理
$ sudo journalctl --vacuum-time=7d
プロセスが応答しない
# プロセスIDを特定
$ ps aux | grep processname
# 正常終了を試行
$ kill PID
# 強制終了
$ kill -9 PID
# 複数のプロセスを一括終了
$ killall processname
まとめ
Debianのターミナル操作は、基本的なコマンドを段階的に覚えることで確実にマスターできます。
学習のステップ
- 基本操作(1週目):ls, cd, mkdir, rm, cp, mv
- システム管理(2週目):top, df, ps, systemctl
- パッケージ管理(3週目):apt update, install, remove
- 応用操作(4週目以降):grep, find, tar, pipe
安全な練習方法
- 重要なデータは事前にバックアップ
- テスト用のディレクトリで練習
- 本番環境では慎重に操作
コメント