Ubuntuの使い方
【概要】本ページでは、Ubuntuの基本的な使い方について解説する。第1章ではインストールと初期設定、第2章ではシェルの基本操作と管理者権限、第3章では環境変数の設定方法を説明する。第4章では基本的なLinuxコマンド、第5章ではCSVファイルの扱い、第6章ではSSHによるリモート接続を取り上げる。第7章ではPython開発環境、第8章ではGitやCMakeなどの開発ツール、第9章ではJava環境の構築方法を示す。第10章ではシステムの運用保守としてパッケージ管理と更新作業、第11章ではトラブルシューティングの手法を解説する。
【この記事の対象読者】Ubuntu(Linux)環境の本格利用(開発や研究など)を行いたい学生・技術者を対象としている。コマンドライン操作の基礎から、Python・Javaによる開発環境の構築、サーバー運用までを体系的に扱う。
【重要概念】
- シェル(Shell)/端末: コマンドを入力してコンピューターを操作するインターフェース。Ubuntuでは「端末」アプリから「bash」シェルを利用し、キーボード操作(CUI)でシステムを制御する。
- 管理者権限(sudo): システム設定の変更やソフトウェアのインストールに必要な特権。Ubuntuではrootアカウントでの直接ログインを避け、
sudoコマンドで一時的に権限を取得するのが標準である。 - パッケージ管理(APT): ソフトウェアの導入・更新・削除を一元管理するシステム。
aptコマンドにより、依存関係を自動解決しながらアプリケーションを管理できる。 - 環境変数(PATH): OSやシェルの動作設定を定義する変数。特にPATHは、コマンド名だけでプログラムを実行できるよう、実行ファイルの検索先ディレクトリを指定する。
【目次】
- Ubuntuのインストールとセットアップ
- シェルの利用、管理者権限、基本機能
- 環境変数とパスを通す
- 基本的なLinuxコマンドとリファレンス
- データファイル(CSV)
- リモート接続とプロセス継続
- プログラミング言語Pythonとツール
- プログラミング用ツール類(Git、CMake、GDB)
- プログラミング言語Java
- オペレーティングシステムの運用保守
- トラブルシューティング
【サイト内のUbuntu関連ページ】
- Ubuntuシステムの基本操作ガイド: 別ページ »で説明
- Ubuntu 24.04のインストールと初期設定ガイド: 別ページ »で説明
- Ubuntu 24.04 初期設定詳細ガイド: 別ページ »で説明
- Linux基本コマンドとその活用法: 別ページ »で説明
- Ubuntu 24.04 開発・研究環境構築ガイド: 別ページ »で説明
- Ubuntuの使い方: 別ページ »で説明
- Ubuntuシステムの更新ガイド: 別ページ »で説明
- Ubuntuシステムの管理と運用、各種設定: 別ページ »で説明
- Ubuntuサーバ管理・セキュリティガイド: 別ページ »で説明
【外部リソース】
- Ubuntuの公式ページ(日本語版): https://jp.ubuntu.com/
- Ubuntu 24.04 の公式リリースページ: https://releases.ubuntu.com/noble/
- Ubuntuのダウンロード公式ページ(日本語版): https://jp.ubuntu.com/download
- 公式のUbuntuミラーサイトのページ: https://launchpad.net/ubuntu/+cdmirrors
- fosswire.comのUnix/Linuxコマンドリファレンス: https://files.fosswire.com/2007/08/fwunixref.pdf
- DistroWatchのUbuntuのページ: https://distrowatch.com/table.php?distribution=ubuntu
1. Ubuntuのインストールとセットアップ
Ubuntuのインストールと基本的な初期設定
Ubuntu 24.04 LTS(Noble Numbat)は長期サポート版(Long Term Support: 5年間のセキュリティアップデート提供)である。導入には、公式サイトからISOイメージを入手し、Rufus等で起動用USBメディアを作成する。
インストール形式は、「既存OSとの共存(デュアルブート)」または「ディスクを削除してインストール」から選択する。後者はディスク内の全データが消去されるため、事前バックアップが必須である。インストール完了後は、管理者権限(sudo)の確認、システム更新、NVIDIAドライバや日本語入力(Mozc)の導入、ファイアウォール(ufw)の有効化を行う。
【サイト内の関連ページ】
- Ubuntu 24.04のインストールと初期設定ガイド: 別ページ »で説明
【関連する外部ページ】
- Ubuntuのダウンロード公式ページ(日本版): https://jp.ubuntu.com/download
- Ubuntu Desktop日本語Remixのダウンロードページ: https://www.ubuntulinux.jp/download/ja-remix
Ubuntuの詳細設定
インストール直後に行う推奨設定を以下に示す。
- リポジトリの最適化: ダウンロード速度向上のため、接続先を国内ミラー(jp.archive.ubuntu.com)に変更する。
- システム更新:
sudo apt update && sudo apt full-upgradeでセキュリティ修正を適用する。詳細は第10章を参照。 - 時刻同期:
timedatectlでタイムゾーンとNTP(Network Time Protocol、ネットワーク経由の自動時刻同期)の設定を確認する。 - 日本語環境: 日本語フォントと入力メソッド(IBus + Mozc)を設定する。ディレクトリ名の英語化(「ダウンロード」→「Downloads」)によりCUI操作が容易になる。
- セキュリティ:
sudo ufw enableでファイアウォールを有効化する。SSH接続が必要な場合はOpenSSHサーバーを導入し、ポート変更等の対策を施す。 - その他: NVIDIAドライバ(第10章参照)、net-tools等の運用ツール導入、不要ソフトウェアの削除を必要に応じて行う。
【サイト内の関連ページ】
- Ubuntu 24.04 初期設定詳細ガイド: 別ページ »で説明
ソフトウェアのインストール方法
ソフトウェアの追加方法は、GUIとCUIの2種類がある。
- GUI(App Center): デスクトップ左下のアプリアイコンから「App Center」を起動し、検索またはカテゴリからアプリを選択してインストールする。
- CUI(aptコマンド): 端末で以下を実行する。
# パッケージリストを更新 sudo apt update # パッケージをインストール(例: GIMP) sudo apt install gimpパッケージ名が不明な場合は
apt search <キーワード>で検索できる。aptコマンドの詳細は第10章を参照。
【サイト内の関連ページ】
2. シェルの利用、管理者権限、基本機能
ターミナルの起動方法やGNOMEデスクトップ環境での基本操作は「Ubuntu システムの基本操作ガイド」を参照。
端末
端末(ターミナル)は、コマンド入力でコンピューターを操作するインターフェースである。Ubuntu Desktopでは「GNOME Terminal」が標準で利用可能である。端末を開くとシェル(通常はbash)が起動し、プロンプト(コマンド入力待ちを示す記号列)が表示される。
bashシェル
bash(Bourne Again SHell)はLinuxの標準シェルである。コマンド履歴(↑↓キー)、Tab補完、リダイレクト、パイプ、シェルスクリプトによる自動化など、多彩な機能を持つ。
管理者権限での実行(su、sudo)
日常作業は一般ユーザー権限で行い、システム変更時のみ管理者権限を使用する。
-
sudo: 一時的に管理者権限でコマンドを実行する。実行ログが記録されるため、セキュリティ上推奨される方法である。
sudo apt update # パッケージリスト更新 sudo vi /etc/fstab # システム設定ファイル編集 sudo -i # rootシェルを起動 -
su: 別ユーザー(デフォルトはroot)に切り替える。切り替え先のパスワードが必要である。
su - # rootに切り替え(環境変数も継承) exit # 元のユーザーに戻る su otheruser # 他のユーザーに切り替え -
rootでの直接ログイン: 操作ミスがシステム全体に影響するため避けるべきである。サーバー環境ではrootログインを無効化し、sudoを使用するのが標準的な運用である。
シェルの基本機能(リダイレクト、パイプ)
シェルはコマンドの入出力を柔軟に制御できる。
- リダイレクト: 出力先・入力元をファイルに変更する。
>は上書き、>>は追記、<は入力、2>はエラー出力を指定する。 - パイプ(
|): コマンドの出力を次のコマンドの入力に渡す。
ls -l /usr/bin > bin_list.txt # 一覧をファイルに保存
date >> system_log.txt # 日時を追記
sort < names.txt # ファイルから読み込んでソート
grep 'ERROR' system.log | wc -l # ERRORを含む行数をカウント
詳細は「Linux基本コマンドとその活用法 - シェルの機能」を参照。
rootユーザーのパスワード設定について
Ubuntuではセキュリティ上、rootアカウントはデフォルトで無効である。管理作業はsudoで行う。rootパスワードの設定が必要な場合はsudo passwd rootを実行するが、通常は不要である。
ヒアドキュメント(here document)
複数行のテキストをコマンドの標準入力として埋め込む機能である。設定ファイルの生成やメッセージ表示に使用する。
cat > /tmp/message.txt << 'EOF'
1行目のテキスト
2行目のテキスト
EOF
区切り文字(上例ではEOF)をクォートすると、変数展開が抑制される。
リソース制限(ulimit)
ulimitは、シェルとその子プロセスが使用できるリソース(ファイル数、メモリ等)の上限を確認・設定する。
ulimit -a # 全制限値を表示
3. 環境変数とパスを通す
環境変数
環境変数は、OSやシェルの動作設定を保持する名前付きの値である。子プロセスに自動的に引き継がれる。代表的な環境変数として、HOME(ホームディレクトリ)、LANG(言語設定)、PATH(コマンド検索パス)がある。
echo $HOME # 環境変数の値を表示
export MY_VAR="value" # 環境変数を設定(子プロセスにも継承)
printenv | grep MY # 設定済み環境変数を検索
パスを通す
PATHは、コマンド名だけで実行ファイルを起動できるよう、検索先ディレクトリをコロン区切りで指定する環境変数である。自作スクリプトや追加インストールしたツールをコマンドとして使うには、そのディレクトリをPATHに追加する(「パスを通す」)。
export PATH="$HOME/myapps/bin:$PATH"
設定を永続化するには、~/.bashrcや~/.profileに上記を追記し、source ~/.bashrcで反映させるか、新しい端末を開く。
4. 基本的なLinuxコマンドとリファレンス
日常的に使用する基本コマンドを分類して示す。各コマンドの詳細は--helpオプションまたはmanコマンドで確認できる。
- ファイル・ディレクトリ操作:
ls、cd、pwd、cp、mv、rm、mkdir、rmdir、touch
- ファイル内容表示:
cat、less、head、tail
- 検索:
find、grep、which
- プロセス管理:
ps、top、htop、kill、pkill、jobs、fg、bg
- システム情報:
df、du、free、uname、lsb_release、uptime、shutdown、reboot
- パッケージ管理:
apt update、apt upgrade、apt full-upgrade、apt install、apt remove、apt search
詳細は第10章を参照。
- ネットワーク:
ip addr、ss、ping、curl、wget、ssh、scp
- アーカイブ・圧縮:
tar、gzip、gunzip、zip、unzip
包括的なリファレンスは「Linux基本コマンドとその活用法」を参照。
5. データファイル(CSV)
CSV(Comma Separated Values)
CSVは、カンマで列を、改行で行を区切るテキスト形式である。表データの保存やアプリケーション間のデータ交換に広く使用される。フィールド内にカンマ・改行・ダブルクオートを含む場合は、フィールド全体をダブルクオートで囲む。ダブルクオート自体は""で表現する。
ID,Name,"Address",Phone
1,"Yamada, Taro","Tokyo, Japan",090-1234-5678
2,"Sato, Hanako","Osaka ""Big"" City",
6. リモート接続とプロセス継続
SSH(Secure Shell)
SSHは、暗号化された通信で他のコンピューターにログインし、コマンド実行やファイル転送を行うプロトコルである。Linux環境でのリモート操作の標準手段となっている。
ssh user@hostname # リモートログイン
ssh -i ~/.ssh/id_rsa user@host # 秘密鍵を指定して接続
ssh user@host 'uptime' # リモートでコマンド実行
SSHの公開鍵認証
パスワードの代わりに鍵ペア(秘密鍵・公開鍵)で認証する方式である。パスワード入力が不要になり、スクリプトによる自動化に適している。
- 鍵ペアの生成: クライアントで
ssh-keygenを実行する。 - 公開鍵の登録:
ssh-copy-id user@hostでサーバーの~/.ssh/authorized_keysに公開鍵を追加する。 - 接続:
ssh user@hostで鍵認証によりログインする。
注意: 秘密鍵(~/.ssh/id_rsa等)はchmod 600でパーミッションを設定し、漏洩を防ぐ。秘密鍵が流出すると不正アクセスの原因となる。
設定手順の詳細は別ページ »を参照。
SFTP/SCP
SSHを利用した安全なファイル転送コマンドである。
- sftp: 対話的なファイル転送。put(アップロード)、get(ダウンロード)等のコマンドを使用する。
- scp: 非対話的なファイルコピー。cpコマンドと同様の書式で使用する。
sftp user@host # 対話セッション開始
scp myfile.txt user@host:/home/user/ # ファイルをアップロード
scp user@host:/var/log/syslog . # ファイルをダウンロード
リモート接続が切れてもプロセスを継続する(nohup、disown)
SSH切断後も長時間の処理を継続させる方法を示す。
- nohup: 切断シグナル(SIGHUP)を無視してバックグラウンド実行する。出力は
nohup.outに保存される。nohup ./long_task.sh > task.log 2>&1 & - disown: 実行中のジョブをシェルの管理から切り離す。
# Ctrl+Zで一時停止 → bgでバックグラウンド再開 → disownで切り離し bg %1 disown %1
指定時刻にコマンドを実行(atコマンド)
atは、指定時刻に一度だけコマンドを実行する。定期実行にはcronを使用する。
sudo apt install at # インストール
sudo systemctl enable --now atd # サービス起動
at now + 5 minutes # 5分後に実行(対話入力)
atq # 予約一覧
atrm 3 # ジョブ3を削除
7. プログラミング言語Pythonとツール
Pythonの詳細情報は別ページを参照。
UbuntuのシステムPython
UbuntuにはOS機能用のPython(Ubuntu 24.04ではPython 3.12)がプリインストールされている。この「システムPython」を直接変更するとOS動作に影響する可能性があるため、開発用途では仮想環境(venv)を使用する。
詳細は別ページ »を参照。
Python、pip、開発環境
- Pythonインタプリタ:
python3コマンドでスクリプト実行や対話モードを利用する。 - pip: Pythonパッケージのインストーラ。
sudo apt install python3-pipで導入する。システムPythonへの直接インストールは避け、仮想環境内で使用する。 - 開発環境: venv(仮想環境)、Git(バージョン管理)、エディタ/IDEを組み合わせて構築する。
詳細は別ページ »を参照。
複数のPythonバージョンの管理(pyenv)
pyenvは、複数のPythonバージョンをインストールし、プロジェクトごとに切り替えるツールである。システムPythonに影響を与えずにバージョンを管理できる。
インストール方法は別ページを参照。
venv(Python仮想環境)
venvは、Python 3.3以降に標準搭載された仮想環境機能である。プロジェクトごとに独立した環境を作成し、ライブラリの依存関係を隔離できる。
python3 -m venv myenv # 仮想環境を作成
source myenv/bin/activate # 有効化(プロンプトが変化)
pip install requests pandas # ライブラリをインストール
python my_script.py # スクリプト実行
deactivate # 無効化
詳細は別ページ »を参照。
pip(Pythonパッケージインストーラ)
pipは、PyPI(Python Package Index、Pythonパッケージの公式リポジトリ)からライブラリをインストールするツールである。仮想環境内での使用を推奨する。
pip install <package> # インストール
pip install -r requirements.txt # 依存関係を一括インストール
pip list # インストール済み一覧
pip freeze > requirements.txt # 依存関係をファイル出力
詳細は別ページ »を参照。
Jupyter Notebook/JupyterLab
Webブラウザ上でコード実行、テキスト記述、グラフ表示を組み合わせた「ノートブック」を作成できる環境である。データ分析や機械学習のプロトタイピングに適している。JupyterLabは次世代インターフェースで、より多機能である。
pip install notebook jupyterlab
jupyter notebook # Notebook起動
jupyter lab # JupyterLab起動
詳細はJupyter Notebook/JupyterLabのページを参照。
Python IDE(統合開発環境)
コードエディタ、デバッグ、プロジェクト管理等を統合したソフトウェアである。
- Spyder: 科学技術計算向け。変数エクスプローラーやIPythonコンソールを搭載。詳細は別ページ »
- PyCharm: JetBrains製の高機能IDE。コード補完やリファクタリングが充実。詳細は別ページ
- VS Code: Microsoft製の軽量エディタ。拡張機能でPython開発環境を構築可能。詳細は別ページ
Anaconda Distribution
Python本体とデータサイエンス系パッケージ(NumPy、Pandas等)、パッケージ管理ツールcondaを同梱したディストリビューションである。環境構築が容易だが、pipやvenvとは異なる管理体系のため、使い分けの理解が必要である。
詳細は別ページを参照。
Google Colaboratory(Colab)
Googleが提供するクラウドベースのPython実行環境である。Jupyter Notebook互換のインターフェースで、GPU/TPUを無料枠で利用できる。セッション終了時にデータが消去されるため、Google Driveへの保存が必要である。
詳細は別ページおよび「Linux基本コマンドとその活用法 - Google Colaboratory」を参照。
8. プログラミング用ツール類(Git、CMake、GDB)
バージョン管理システムGit
Gitは、ソースコードの変更履歴を記録・管理する分散型バージョン管理システムである。変更内容・日時・変更者が記録され、過去への復元や差分比較が容易になる。複数人での開発における統合・競合解決に必須のツールである。
インストール
sudo apt update
sudo apt install git
基本操作
git clone https://github.com/user/repo.git # リポジトリを複製
cd repo
git status # 変更状態を確認
git add . # 変更をステージング
git commit -m "変更内容" # コミット
git push # リモートに反映
詳細は「Linux基本コマンドとその活用法 - Git」を参照。
【サイト内の関連ページ】WindowsでのGit: 別ページ »
【外部ページ】Git公式: https://git-scm.com/
ビルドツールCMake
CMakeは、C/C++プロジェクトのビルドプロセスを管理するクロスプラットフォームツールである。CMakeLists.txtに設定を記述し、使用環境に応じたビルドファイル(Makefile、Ninja、Visual Studioプロジェクト等)を自動生成する。
インストール
sudo apt update
sudo apt install cmake cmake-curses-gui cmake-gui
基本操作
ソースディレクトリ外でビルドする「アウトオブソースビルド」が推奨される。
mkdir build && cd build # ビルドディレクトリ作成
cmake .. # 設定生成(親ディレクトリのCMakeLists.txtを参照)
make # ビルド実行
Ninjaビルドシステム
Ninjaは、大規模プロジェクト向けの高速ビルドシステムである。CMakeと組み合わせて使用することが多い。
sudo apt install ninja-build
cmake -G Ninja .. # Ninja用ビルドファイルを生成
ninja # ビルド実行
デバッガgdb(GNU Debugger)
GDBは、C/C++等のプログラムをデバッグするツールである。ブレークポイント設定、ステップ実行、変数値確認などが可能である。
gcc -g program.c -o program # デバッグ情報付きでコンパイル
gdb ./program # デバッガ起動
基本操作
デバッグの流れ: ブレークポイント設定 → 実行 → 停止箇所でステップ実行・変数確認 → バグ原因特定。主なコマンドはbreak(ブレークポイント)、run(実行)、next/step(ステップ実行)、print(変数表示)、continue(続行)である。
9. プログラミング言語Java
OpenJDKのインストールとJavaプログラムの実行
Javaの開発・実行にはJDK(Java Development Kit)が必要である。OpenJDKはオープンソース実装で、aptで導入できる。
sudo apt update
sudo apt install openjdk-17-jdk # JDK 17をインストール
java -version # 実行環境を確認
javac -version # コンパイラを確認
Ubuntu 24.04ではOpenJDK 21(openjdk-21-jdk)も利用可能である。
【コンパイルと実行】
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Ubuntu!");
}
}
javac HelloWorld.java # コンパイル(.classファイル生成)
java HelloWorld # 実行
詳細は別ページ »を参照。
10. オペレーティングシステムの運用保守
本章では、システムの継続運用に必要なパッケージ管理、更新作業、ドライバ管理を解説する。
Ubuntuのバージョンとコードネームの確認
バージョン番号(24.04等)やコードネーム(noble等)は、ソフトウェア互換性の確認やリポジトリ設定で参照する。
lsb_release -a # 詳細情報を表示
lsb_release -sc # コードネームのみ表示
パッケージ管理(apt、dpkg)
aptはパッケージのインストール・更新・削除を行うツールである。dpkgは個別の.debファイルを扱う低水準ツールで、通常はaptを使用する。
主なaptコマンド:
sudo apt update― パッケージリストを最新化sudo apt upgrade― パッケージを更新(依存関係の変更を伴う更新は保留)sudo apt full-upgrade― パッケージを更新(必要に応じてパッケージの追加・削除も実行)sudo apt install <pkg>― パッケージをインストールsudo apt remove <pkg>― パッケージを削除(設定ファイルは残る)sudo apt purge <pkg>― パッケージと設定ファイルを削除sudo apt autoremove― 不要になった依存パッケージを削除apt search <keyword>― パッケージを検索apt show <pkg>― パッケージ情報を表示apt list --installed― インストール済みパッケージを一覧表示sudo apt clean― ダウンロードキャッシュを全削除sudo apt autoclean― 古いキャッシュのみ削除
詳細は「Linux基本コマンドとその活用法 - パッケージ管理」を参照。
システム更新
定期的な更新はセキュリティ維持に必須である。
手動更新
sudo apt update # パッケージリスト更新
sudo apt full-upgrade # パッケージ更新
sudo apt autoremove # 不要パッケージ削除
sudo apt autoclean # キャッシュ削除
カーネル更新後は再起動が必要な場合がある。apt upgradeは依存関係の変更を伴う更新を保留するため、システム全体の更新にはapt full-upgradeを推奨する。
自動更新(unattended-upgrades)
Ubuntuにはセキュリティ更新を自動適用するunattended-upgrades機能がある(デフォルトで有効)。設定は「ソフトウェアとアップデート」または/etc/apt/apt.conf.d/50unattended-upgradesで確認できる。自動更新が有効でも、定期的に手動で全パッケージを更新することを推奨する。
更新の運用テクニック
再起動の要否確認
カーネル更新等で再起動が必要な場合、/var/run/reboot-requiredファイルが作成される。
[ -f /var/run/reboot-required ] && echo "再起動が必要"
パッケージバージョンの固定(Hold)
特定パッケージの更新を抑止する。依存関係の問題やテスト環境の維持に使用する。
sudo apt-mark hold <pkg> # 更新を保留
sudo apt-mark unhold <pkg> # 保留を解除
apt-mark showhold # 保留中パッケージを確認
注意: 保留したパッケージはセキュリティ更新も適用されないため、定期的に見直す。
設定ファイルの競合解決
更新時に「設定ファイルを置き換えるか」と問われた場合は、D(差分表示)で変更内容を確認してから判断する。
Y: 新しい設定で置き換えN/O: 現在の設定を維持D: 差分を表示Z: シェルを起動して確認
NVIDIAドライバのインストール
NVIDIA GPUを使用する場合、プロプライエタリドライバ(NVIDIA提供の非公開ソースドライバ)をインストールすることで、グラフィック性能向上やCUDA利用が可能になる。
sudo ubuntu-drivers autoinstall # 推奨ドライバを自動インストール
sudo reboot # 再起動
nvidia-smi # ドライバ動作確認
特定バージョンのインストールや問題発生時は、別途手順が必要である。
11. トラブルシューティング
本章では、Ubuntu運用時の問題診断と対処方法を解説する。基本的なトラブルシューティングは「Ubuntu システムの基本操作ガイド」を参照。
システムログの確認(journalctl)
journalctlは、systemdが収集するシステムログ(ジャーナル)を表示する。エラー原因の調査やサービス動作確認に使用する。
journalctl -xe # 最新ログを説明付きで表示
journalctl -u nginx.service # 特定サービスのログ
journalctl -p err -b # 今回起動後のエラー以上
journalctl -f # リアルタイム表示
主なオプション: -x説明付加、-e末尾表示、-uユニット指定、-p優先度フィルタ、-b現在ブート、-f追跡表示。
パッケージ管理の問題解決
dpkg設定の中断復旧
sudo dpkg --configure -a
依存関係の修復
sudo apt --fix-broken install
パッケージリストの再構築
sudo rm -rf /var/lib/apt/lists/*
sudo apt clean
sudo apt update
問題パッケージの強制削除
他の方法で解決できない場合のみ使用する。システム整合性に影響する可能性がある。
sudo dpkg --remove --force-remove-reinstreq <pkg>
ディスク関連の診断
使用量の確認
df -h # ファイルシステムごとの使用量
du -sh /* 2>/dev/null | sort -hr | head -20 # 大きいディレクトリを特定
SMART情報(ディスク健康状態)
ディスクの自己診断機能(SMART)で健康状態やエラー履歴を確認する。
sudo apt install smartmontools
sudo smartctl -a /dev/sda
ファイルシステムチェック(fsck)
ファイルシステムの整合性を検査・修復する。電源断後のデータ破損診断に使用する。
sudo touch /forcefsck # 次回起動時にfsckを実行
sudo reboot
注意: マウント中のファイルシステムにfsckを実行するとデータ破損の原因となる。
ネットワーク診断
接続状態の確認
ip addr show # IPアドレス確認
ip route show # ルーティング確認
cat /etc/resolv.conf # DNS設定確認
ping -c 4 8.8.8.8 # IP到達性確認
ping -c 4 google.com # DNS解決確認
IPへのpingは成功するがドメイン名で失敗する場合は、DNS設定に問題がある。
ポート・サービスの確認
ss -tlnp # リッスン中のTCPポート
sudo lsof -i :80 # ポート80を使用するプロセス
ファイアウォールの確認
sudo ufw status verbose
sudo iptables -L -n -v
サービス管理とsystemd
サービス制御
systemctl status nginx # 状態確認
sudo systemctl start nginx # 起動
sudo systemctl stop nginx # 停止
sudo systemctl restart nginx # 再起動
sudo systemctl reload nginx # 設定再読み込み(サービス継続)
sudo systemctl enable nginx # 自動起動有効
sudo systemctl disable nginx # 自動起動無効
失敗サービスの確認
systemctl --failed
依存関係の確認
systemctl list-dependencies nginx
起動時の問題
GRUBはUbuntuの標準ブートローダーである。
GRUBメニューからの復旧
「Advanced options for Ubuntu」から以前のカーネルを選択して起動できる。カーネル更新後に起動しなくなった場合に有効である。
リカバリーモード
GRUBメニューで「(recovery mode)」を選択すると、ファイルシステムチェック、パッケージ修復、rootシェルアクセスが可能である。
カーネルパニック
カーネルが回復不能なエラーを検出した状態である。対処法:
- GRUBから以前のカーネルで起動
- リカバリーモードで最近のパッケージ/ドライバを削除
- ハードウェア(メモリ、ディスク)を確認
メモリ診断
不安定動作やランダムクラッシュ時はメモリを疑う。
free -h # メモリ使用状況
sudo apt install memtester
sudo memtester 1G 1 # 1GBを1回テスト
詳細なハードウェアテストはGRUBメニューからMemtest86+を起動する。