Ubuntu の使い方

要約】 このページでは、Ubuntuの基本的な使い方に関する情報をまとめています。インストールと初期設定から始まり、シェル(端末)の操作、環境変数とパスの設定、データファイル(CSV)の扱い方、基本的なLinuxコマンド、リモート接続、プログラミング環境(特にPythonとJava)、そしてシステムの運用保守に至るまでを解説します。Ubuntu上での作業効率を高めるための基礎知識を提供することを目的としています。

目次

  1. Ubuntu のインストールとセットアップ
  2. シェルの利用、管理者権限、基本機能
  3. 環境変数、パスを通す
  4. データファイル (CSV)
  5. 基本的なLinuxコマンドとリファレンス
  6. リモート接続とプロセス継続
  7. プログラミング言語Pythonとツール
  8. プログラミング用ツール類 (Git, CMake, GDB)
  9. プログラミング言語Java
  10. オペレーティングシステムの運用保守 (更新、パッケージ管理)

関連する外部ページ

Ubuntu の各種情報について

サイト内の関連ページ

Ubuntu 関連

WSL2 関連

1. Ubuntu のインストールとセットアップ

Ubuntu のインストール

Ubuntuの最新LTS(長期サポート)リリースは、2024年4月にリリースされた 24.04 (Noble Numbat) です。22.04 LTSも引き続きサポートされています。Ubuntu公式サイトや日本語 Remix のページからISOイメージを入手し、インストーラを起動します。指示に従い、言語、キーボードレイアウト、インストールの種類(ディスク全体を使用するか、手動パーティション設定など)を選択し、タイムゾーン、ユーザー情報を設定してインストールを進めます。

注意:「ディスクを削除してUbuntuをインストール」を選択すると、ディスクの内容はすべて消去されます。Windowsとのデュアルブートなど、既存のOSを残したい場合は、手動でのパーティション設定など、別の手順が必要です。

サイト内の関連ページ

関連する外部ページ

Ubuntu のインストール直後の設定

Ubuntuインストール直後に行うことが推奨される主な設定項目です。詳細は別ページで説明しています。

サイト内の関連ページ

Ubuntu のシステム更新について

ソフトウェアの脆弱性修正や機能改善のため、システムの更新は定期的に行うことが重要です。更新手順の詳細はセクション10を参照してください。

Ubuntu セットアップ全般

2. シェルの利用、管理者権限、基本機能

端末

端末(ターミナル)は、コマンドを入力してコンピューターを操作するための基本的なインターフェースです。Ubuntu Desktopでは標準で「GNOME Terminal」が利用できます。端末を開くと、シェル(通常はbash)が起動し、コマンド入力待ちの状態(プロンプト)が表示されます。

GNOME Terminal のスクリーンショット

bash シェル

bash (Bourne Again SHell) は、Linuxで標準的に使われている高機能なシェルです。コマンド履歴の呼び出し、Tabキーによる入力補完、後述するリダイレクトやパイプによる入出力制御、シェルスクリプトによる定型作業の自動化など、多くの便利な機能を提供します。

管理者権限での実行 (su, sudo)

システムの安全性を保つため、日常的な作業は一般ユーザー権限で行うことが推奨されます。システム設定の変更やソフトウェアのインストールなど、管理者(root)権限が必要な操作を行うには、`sudo` コマンドを使用します。

結論として、管理者権限が必要な場合は、可能な限り `sudo` コマンドを利用することを強く推奨します。

シェルの基本機能 (リダイレクト、パイプ)

シェルには、コマンドの標準入力、標準出力、標準エラー出力を柔軟に制御する強力な機能があります。

ls -l /usr/bin > bin_list.txt   # /usr/binの内容一覧をファイルに上書き保存
date >> system_log.txt       # 現在日時をファイルに追記
sort < names.txt             # names.txtの内容をソートして表示
grep 'ERROR' system.log | wc -l # system.logから'ERROR'を含む行を抽出し、その行数をカウント

これらの機能の詳細は、「Linux基本コマンドとその活用法 - シェルの強力な機能」セクションを参照してください。

rootユーザー(スーパーユーザー)のパスワード設定について

Ubuntuでは、セキュリティ上の理由からデフォルトではrootアカウントは無効化されており、パスワードも設定されていません。管理者権限が必要な操作は`sudo`コマンドを使用することが強く推奨されます通常、rootアカウントのパスワードを設定する必要はありません

もし特別な理由でrootアカウントを有効化しパスワードを設定する必要が生じた場合は、`sudo passwd root` コマンドを使用しますが、その必要性とリスクを十分に理解した上で慎重に行う必要があります。日常的な管理作業のほとんどは`sudo`コマンドで実行可能であり、rootアカウントを直接利用する場面は非常に限定的です。

⚠️注意:rootアカウントはシステム全体に対する強力な権限を持つため、パスワードの設定・管理は非常に慎重に行う必要があります。設定したパスワードは絶対に忘れず、安全に管理してください。可能な限り `sudo` を利用することを強く推奨します。

ヒアドキュメント(here document)

シェルスクリプト内で、複数行にわたる文字列をコマンドの標準入力として直接埋め込むための機能です (`<< 区切り文字`)。設定ファイルの動的な生成や、複数行のメッセージを表示する際などに便利です。

#!/bin/bash
cat > /tmp/message.txt << END_OF_MESSAGE
これは1行目です。
これは2行目です。
特殊文字 $ や ` もそのまま扱われます(区切り文字をクォートしない場合)。
END_OF_MESSAGE

Linux のシェルでのリソース制限 (ulimit)

`ulimit` コマンドは、現在のシェルおよびそこから起動されるプロセスが使用できるシステムリソース(開けるファイル数、プロセス数、使用メモリサイズなど)の上限を確認・設定するために使用します。大規模な計算処理や多数のクライアントを処理するサーバーなどで、デフォルトの上限値が十分でない場合に調整することがありますが、システム全体の安定性に影響を与える可能性があるため注意が必要です。

ulimit -a       # 現在設定されている全てのリソース制限値を表示
# ulimit -c unlimited # コアダンプファイルのサイズ制限を解除 (デバッグ時に使用)
# ulimit -n 4096    # 同時に開けるファイルディスクリプタ数の上限を引き上げ (サーバー等で必要になる場合)

3. 環境変数とパスを通す

環境変数

環境変数は、OSやシェルが動作中のプロセスに提供する、設定情報や動作環境を定義する名前付きの変数です(例: `HOME`はユーザーのホームディレクトリ、`LANG`は言語設定、`PATH`はコマンド検索パス)。`export 変数名=値` という形式で設定すると、そのシェルから起動される子プロセスにもその変数が引き継がれます。`printenv` コマンドで全ての環境変数を、`echo $変数名` で特定の環境変数の値を表示できます。

echo $HOME           # ホームディレクトリのパスを表示
export MY_SETTING="my_value" # MY_SETTINGという環境変数を設定し、子プロセスへ引き継ぐ
printenv | grep MY   # 設定した環境変数 MY_SETTING を確認

パスを通す

`PATH` 環境変数は、ユーザーがコマンド名のみを入力した際に、シェルがその実行ファイルを探しに行くディレクトリのリストをコロン(`:`)区切りで指定します。自分でインストールしたプログラムやスクリプトを、どのディレクトリからでもコマンド名だけで実行できるようにしたい場合、そのプログラムが置かれているディレクトリを `PATH` 環境変数に追加します。これを一般的に「パスを通す」と言います。通常、この設定はシェルの設定ファイル(bashの場合は `~/.bashrc` や `~/.profile` など)に以下のように追記して行います。

# ~/.bashrc などに追記する例 (ユーザー個人の設定)
# $HOME/myapps/bin ディレクトリを既存のPATHの先頭に追加
export PATH="$HOME/myapps/bin:$PATH"

設定ファイルを変更した後は、`source ~/.bashrc` コマンドを実行して変更を現在のシェルに反映させるか、新しい端末を開くと設定が有効になります。

4. データファイル (CSV)

CSV (Comma Separated Values)

CSVは、データをカンマ(`,`)で区切って列を表し、改行で区切って行を表すテキストファイル形式です。表形式のデータを保存したり、異なるアプリケーション間でデータを交換したりする際に広く利用されます。フィールド(データ項目)内にカンマ(`,`)や改行、ダブルクオート(`"`)が含まれる場合は、そのフィールド全体をダブルクオート(`"`)で囲むのが一般的です。ダブルクオート文字自体をフィールド内で表現したい場合は、ダブルクオート二つ (`""`) に置き換えます。

例:
ID,Name,"Address",PhoneNumber
1,"Yamada, Taro","Tokyo, Japan",090-1234-5678
2,"Sato, Hanako","Osaka ""Big"" City",

5. 基本的なLinuxコマンドとリファレンス

Ubuntu (Linux) の操作で日常的によく使われる基本的なコマンドを紹介します。各コマンドには多くのオプションがあり、これらを組み合わせることで様々な操作が可能です。

これらのコマンドの詳細な使い方やオプションについては、コマンド名の後に `--help` を付けて実行するか、`man <コマンド名>` コマンドでマニュアル(manページ)を参照してください。

また、より包括的なLinuxコマンドのリファレンスや活用法については、以下のページも参照してください。

6. リモート接続とプロセス継続

SSH (Secure Shell)

SSHは、ネットワーク越しに他のコンピューターに安全にログインしたり、コマンドを実行したり、ファイルを転送したりするための暗号化された通信プロトコルおよび、それを利用するコマンド群の総称です。Linux環境でのリモート操作における標準的な手段となっています。

ssh username@hostname_or_ip     # リモートホストに指定ユーザーで接続 (パスワード認証の場合)
ssh -i ~/.ssh/id_rsa user@host # 指定した秘密鍵ファイルを使って鍵認証で接続 (推奨)
ssh user@host 'uptime'         # リモートホストで'uptime'コマンドを実行し、結果を表示

SSH の公開鍵認証

パスワード認証の代わりに、事前に生成・登録しておいた一対の鍵(秘密鍵と公開鍵)を用いてSSH認証を行う、より安全で便利な方法です。パスワード入力が不要になるため、スクリプトによる自動化にも適しています。

  1. 接続元(クライアント)のマシンで `ssh-keygen` コマンドを実行し、鍵ペア(秘密鍵 `~/.ssh/id_rsa` と公開鍵 `~/.ssh/id_rsa.pub` など)を作成します。
  2. 作成した公開鍵 (`~/.ssh/id_rsa.pub` ファイルの中身) を、接続先(サーバー)のマシンの `~/.ssh/authorized_keys` ファイルに追記します。この作業は `ssh-copy-id user@host` コマンドを使うと簡単に行えます。
  3. 接続元から秘密鍵を使って接続します (`ssh user@host` や `ssh -i ~/.ssh/id_rsa user@host` など)。

重要: 秘密鍵ファイル (`~/.ssh/id_rsa` など) は、所有者以外には読み書きできないように、パーミッションを厳格に設定する必要があります (`chmod 600 ~/.ssh/id_rsa`)。秘密鍵が漏洩すると、不正アクセスの原因となります。

Ubuntuでの具体的な設定手順は、別ページ »で説明しています。

SFTP / SCP

SSHプロトコルを利用して、安全にファイルを転送するためのコマンドです。

# SFTP接続
sftp user@host
# (sftpプロンプトが表示された後)
# sftp> put localfile.txt /remote/path/to/destination
# sftp> get /remote/path/remotefile.txt local_destination

# SCPでローカルファイルをリモートへコピー
scp myfile.txt user@host:/home/user/documents/
# SCPでリモートファイルをローカルへコピー (カレントディレクトリにコピー)
scp user@host:/var/log/syslog .

これらのコマンドの詳細は、「Linux基本コマンドとその活用法 - ネットワーク操作」セクションも参照してください。

リモート接続が切れてもプロセスを実行し続ける (nohup, disown)

SSHでリモートサーバーに接続し、時間のかかる処理(バッチ処理や計算など)を開始した後、SSH接続を切断してもその処理を継続させたい場合があります。そのような場合に以下の方法が利用できます。

# nohupを使ってスクリプトを実行し、出力を指定ファイルに保存
nohup ./my_heavy_process.sh input.data > process.log 2>&1 &

(より高度なセッション管理や複数ターミナル機能が必要な場合は、`screen` や `tmux` といったターミナルマルチプレクサの使用も検討すると良いでしょう)

指定時刻にコマンドを実行 (at コマンド)

`at` コマンドを使用すると、指定した時刻に一度だけコマンドやスクリプトを実行するように予約できます。例えば、深夜にバッチ処理を実行させたい場合などに利用します。使用するには `at` パッケージのインストールと、`atd` サービスの起動が必要です。

# atパッケージのインストールとatdサービスの有効化・起動
sudo apt update && sudo apt install at
sudo systemctl enable --now atd

# 実行予約の例 (現在時刻から5分後にスクリプトを実行)
at now + 5 minutes
# atプロンプトが表示されるので、実行したいコマンドを入力し、Ctrl+Dで入力を完了する
at> /home/user/myscript.sh
at> 

# 予約されているジョブの一覧表示
atq
# 予約したジョブの削除 (例: ジョブ番号が 3 の場合)
atrm 3

7. プログラミング言語Pythonとツール

UbuntuはPythonを用いた開発に適した環境を提供しています。

Python の機能や各種ライブラリに関するより詳細な情報は、別ページ にまとめています。

Ubuntu のシステム Python

Ubuntuには、OS自身の機能やシステムツールが利用するためにプリインストールされているPythonがあります(例: Ubuntu 24.04 LTSではPython 3.12)。この「システムPython」の環境にユーザーが直接パッケージを追加したり変更したりすると、システムの動作に予期せぬ悪影響を与える可能性があります。そのため、アプリケーション開発やデータ分析などの目的でPythonを使用する場合は、後述する仮想環境(venv)を作成し、その中で作業することを推奨します。

システムPythonの詳細は 別ページ »で説明しています。

Python, pip, 開発環境

UbuntuでPython開発を始めるための基本的なツールです。

詳細は 別ページ »で説明しています。

複数の Python バージョンの管理 (pyenv)

プロジェクトによっては、システムにインストールされているPythonとは異なるバージョンを使用したい場合があります。`pyenv` というツールを使うと、複数のPythonバージョンを簡単にインストールし、プロジェクトごとやユーザーごとに使用するPythonバージョンを切り替えることができます。`pyenv` はシステムPythonには影響を与えずに独立してバージョンを管理します。

Ubuntu で `pyenv` を使って Python をインストール・管理する方法については,別ページ で説明しています。

venv (Python 仮想環境) - 推奨

`venv` は、Python 3.3以降に標準で組み込まれている、プロジェクトごとに独立したPython実行環境(仮想環境)を作成・管理するためのモジュールです。仮想環境を利用することで、プロジェクトごとに必要なライブラリとそのバージョンを、システムのPython環境や他のプロジェクトから完全に隔離して管理できます。これにより、ライブラリの依存関係の衝突を防ぎ、環境の再現性を高めることができます。Python開発においては、仮想環境を利用することを検討してください。

基本的な使い方は以下の通りです。

# 仮想環境の作成 (例: プロジェクトディレクトリ内に 'myenv' という名前で作成)
python3 -m venv myenv

# 仮想環境のアクティベート (有効化) - これ以降、pipやpythonコマンドはこの環境内のものを使う
source myenv/bin/activate
# (コマンドプロンプトの先頭に (myenv) のような表示が追加される)

# (仮想環境が有効な状態で) 必要なパッケージのインストール
pip install requests numpy pandas

# (仮想環境が有効な状態で) Pythonスクリプトの実行
python my_script.py

# 仮想環境のディアクティベート (無効化) - 元のシェル環境に戻る
deactivate

venv の詳細な使い方については,別ページ »で説明しています。

pyenv (Python バージョン管理ツール)

前述の通り、システムに複数のPythonバージョンを共存させ、簡単に切り替えるためのツールです。`pyenv` と `venv` を組み合わせて使うことで、「特定のPythonバージョン」を持ち、かつ「ライブラリ群が独立した」開発環境をプロジェクトごとに構築できます。詳細は 別ページ で説明しています。

pip (Python パッケージインストーラ)

PyPI (Python Package Index) という公的なリポジトリから、サードパーティ製のPythonライブラリやツールをインストールするための標準的なコマンドラインツールです。**通常は、アクティベートされた仮想環境内で使用します。** 使い方については 別ページ »で説明しています。

# (仮想環境をアクティベートした後)
# 特定のパッケージをインストール
pip install 
# requirements.txtファイルに記載されたパッケージをまとめてインストール
pip install -r requirements.txt
# 現在の環境にインストールされているパッケージ一覧を表示
pip list
# 現在の環境のパッケージとそのバージョン一覧を requirements.txt 形式で出力
pip freeze > requirements.txt

Jupyter Notebook / JupyterLab

Webブラウザ上で、コードの記述・実行、テキストによる説明、数式、グラフや画像の表示などを組み合わせて「ノートブック」と呼ばれるドキュメントを作成・共有できる、インタラクティブな開発・分析環境です。データ分析、機械学習、教育、プロトタイピングなど、幅広い分野で利用されています。`JupyterLab` は Jupyter Notebook の次世代インターフェースで、より多機能で柔軟なレイアウトを提供します。

# (仮想環境内で) インストール
pip install notebook   # Jupyter Notebook をインストールする場合
pip install jupyterlab # JupyterLab をインストールする場合

# 起動 (Webブラウザが自動的に開く)
jupyter notebook
jupyter lab

詳細は Jupyter Notebook / JupyterLab のページで説明しています。

Python IDE (統合開発環境)

Pythonプログラミングを効率的に行うために、コードエディタ、実行・デバッグ機能、プロジェクト管理、バージョン管理システム連携など、多くの機能を統合したソフトウェアです。

Anaconda Distribution

Python本体に加え、データサイエンスや機械学習でよく使われる多数のパッケージ(NumPy, Pandas, Matplotlib, Scikit-learnなど)や、独自の環境管理・パッケージ管理ツール `conda` を含んだディストリビューションです。環境構築の手間を省けるメリットがありますが、システム標準の `pip` や `venv` とは異なる `conda` という仕組みでパッケージや環境を管理するため、使い方を理解し、必要に応じて使い分ける必要があります。詳細は 別ページ で説明しています。

Google Colaboratory (Colab)

Googleが提供する、Webブラウザ上で利用できる無料のクラウドベースPython実行環境です。Jupyter Notebookと同様のインターフェースを持ち、Google Driveと連携してノートブックを保存・共有できます。GPUやTPUといったハードウェアアクセラレータも無料枠で利用できるため、特に機械学習の学習や実験に便利です。基盤OSはUbuntuですが、提供される環境は一時的なものであり、セッションが終了するとインストールしたライブラリや作成したファイルは基本的に消去されます(Google Driveに保存したものを除く)。詳細は別ページ 及び「Linux基本コマンドとその活用法 - Google ColaboratoryでのLinux活用」を参照してください。

8. プログラミング用ツール類 (Git, CMake, GDB)

バージョン管理システム Git

Gitは、ソースコードやドキュメントなどの変更履歴を記録・管理するための分散型バージョン管理システムです。ファイルの変更内容、変更日時、変更者を記録し、過去の状態に戻したり、変更点を比較したりすることが容易になります。特に複数人での共同開発においては、コードの統合や競合の解決を効率的に行うために不可欠なツールとなっています。

Ubuntu での Git のインストール

sudo apt update
sudo apt install git

基本的な使い方

既存のリポジトリ(プロジェクト)をローカルにコピー(クローン)することから始めることが多いです。

# GitHubなどにあるリモートリポジトリをローカルに複製する
git clone https://github.com/username/repository.git
# クローンすると 'repository' というディレクトリが作成されるので移動する
cd repository
# ファイルの状態確認、変更のステージング、コミット(履歴記録)、リモートとの同期などを行う
# git status, git add , git commit -m "変更内容の説明", git pull, git push など

Gitの基本的なワークフローや主要なコマンドの詳細については、「Linux基本コマンドとその活用法 - バージョン管理システム Git」セクションを参照してください。

サイト内の関連ページWindows での Git のインストール: 別ページ »

関連する外部ページGit の公式ページ: https://git-scm.com/

ビルドツール CMake

CMakeは、C言語やC++などのコンパイルが必要なソフトウェアプロジェクトにおいて、ビルドプロセス(ソースコードから実行可能ファイルやライブラリを生成する手順)を管理・自動化するためのクロスプラットフォーム対応ツールです。`CMakeLists.txt` という設定ファイルに、プロジェクトの構成、依存ライブラリ、コンパイルオプションなどを記述すると、CMakeがそれを解釈し、使用している環境(Linux, Windows, macOSなど)やビルドシステム(Make, Ninja, Visual Studioなど)に応じたビルドファイル(MakefileやNinjaファイル、Visual Studioのプロジェクトファイルなど)を自動生成します。

Ubuntu での CMake のインストール

sudo apt update
# 本体と、設定を対話的に行うためのGUI/CUIツールも一緒にインストールする
sudo apt install cmake cmake-curses-gui cmake-gui

基本的な使い方

ソースコードが置かれているディレクトリとは別に、ビルド専用のディレクトリを作成して作業するのが一般的です(アウトオブソースビルド)。

# ソースコードのあるディレクトリに移動
cd my_project_source
# ビルド用ディレクトリを作成して、そこに移動
mkdir build && cd build
# 親ディレクトリにある CMakeLists.txt を読み込んでビルド設定を生成 (デフォルトはMakefile)
cmake ..
# 生成されたMakefileを使ってビルドを実行
make

# または、Ninja をビルドシステムとして使いたい場合
# cmake -G Ninja .. # Ninja用のビルドファイルを生成
# ninja           # Ninjaを使ってビルドを実行

Ninja ビルドシステム

Ninjaは、特に大規模なプロジェクトにおいて、ビルド速度を高速化することを目指して設計されたビルドシステムです。Makeよりも依存関係のチェックなどが高速であるとされています。CMakeなどのビルドジェネレータと組み合わせて使用されることが多く、CMakeで `-G Ninja` オプションを指定することでNinja用のビルドファイルが生成されます。

# Ninjaのインストール
sudo apt update
sudo apt install ninja-build

デバッガ gdb (GNU Debugger)

GDBは、C言語、C++、Ada、Go、Fortranなどのプログラムの実行を制御し、バグ(不具合)の原因を発見・修正する(デバッグ)ための強力なコマンドラインツールです。プログラムの特定の箇所(ブレークポイント)で実行を一時停止させたり、一行ずつ実行(ステップ実行)したり、変数の現在の値を確認したり、メモリの内容を調べたりすることができます。

# デバッグ情報を付加してプログラムをコンパイルする (-g オプション)
gcc -g my_program.c -o my_program
# GDBを起動し、実行ファイルを指定する
gdb ./my_program

# --- GDBのプロンプト ((gdb) ) での操作例 ---
# プログラムの実行を開始
(gdb) run
# main関数で実行を停止するようにブレークポイントを設定
(gdb) break main
# 次の行まで実行 (関数呼び出しは飛ばす - ステップオーバー)
(gdb) next
# 次の行まで実行 (関数呼び出しがあればその中に入る - ステップイン)
(gdb) step
# 変数 'var' の現在の値を表示
(gdb) print var
# 次のブレークポイントまで、またはプログラム終了まで実行を継続
(gdb) continue
# GDBを終了する
(gdb) quit

デバッグの基本操作

デバッガを用いたデバッグの基本的な流れは、まず問題が発生しそうな箇所や確認したい処理の開始点にブレークポイントを設定します。次にプログラムを実行し、ブレークポイントで停止したら、ステップ実行(`next`や`step`)でコードの動きを一行ずつ追いながら、`print` コマンドなどで変数の値が期待通りに変化しているかを確認します。これを繰り返すことで、プログラムのどこで意図しない動作が発生しているのか(バグの原因)を特定していきます。多くのIDE(統合開発環境)には、GDBなどのデバッガをグラフィカルなインターフェースで操作できる機能が組み込まれており、より直感的にデバッグ作業を行えます。

9. プログラミング言語Java

OpenJDK (Java Development Kit) のインストールと Java プログラムの実行

Javaプログラムを開発(コンパイル)および実行するためには、JDK (Java Development Kit) が必要です。OpenJDKは、Java SE (Standard Edition) プラットフォームのオープンソース実装であり、Ubuntuでは `apt` コマンドを使って簡単にインストールできます。

# 推奨されるLTS(長期サポート)バージョンの一つである OpenJDK 17 をインストールする場合
sudo apt update
sudo apt install openjdk-17-jdk

# インストールされたJavaのバージョンを確認
java -version
# Javaコンパイラのバージョンを確認
javac -version

Ubuntu 24.04 LTSでは、より新しいLTSバージョンである OpenJDK 21 (`openjdk-21-jdk`) も利用可能です。必要に応じてバージョンを選択してください。

【Javaプログラムのコンパイルと実行】

例として、`HelloWorld.java` という名前で以下の内容のファイルを作成したとします。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Ubuntu!");
    }
}

このJavaプログラムをコンパイルし、実行するには、端末で以下のコマンドを入力します。

# Javaソースファイルをコンパイルする (成功すると HelloWorld.class ファイルが生成される)
javac HelloWorld.java
# コンパイルされたクラスファイルを実行する (クラス名を指定、.classは不要)
java HelloWorld

OpenJDKのインストールに関する詳細は 別のページ »で説明しています。

【サイト内の Java 関連の資料】

10. オペレーティングシステムの運用保守 (更新、パッケージ管理)

Ubuntu のリリースバージョンとコードネームの確認

現在使用しているUbuntuのバージョン情報を確認するには、以下のコマンドを使用します。バージョン番号(例: 24.04, 22.04)やコードネーム(例: noble, jammy, focal)は、ソフトウェアの互換性を確認したり、リポジトリ設定を行ったりする際に参照することがあります。

# ディストリビューションの全情報を表示
lsb_release -a
# コードネームのみを表示
lsb_release -sc

Ubuntu のシステム更新

セキュリティの脆弱性修正やソフトウェアのバグ修正、機能改善のため、インストールされているパッケージを定期的に最新の状態に保つことは非常に重要です。システム更新は以下の手順で行うのが一般的です。

# 1. パッケージリストの更新 (必須: 最新のパッケージ情報を取得)
sudo apt update

# 2. システム全体の更新 (推奨: 依存関係の変更も含めて更新)
sudo apt full-upgrade # または sudo apt dist-upgrade

# 3. 不要になった依存パッケージの自動削除 (推奨: ディスク容量の節約)
sudo apt autoremove

# 4. 古いバージョンのパッケージキャッシュの削除 (任意: ディスク容量の節約)
sudo apt autoclean # 'apt clean' よりも安全な選択肢

# 5. 再起動 (推奨: カーネルや重要なシステムライブラリが更新された場合)
sudo reboot

通常は、定期的に `sudo apt update` と `sudo apt full-upgrade` を実行し、時々 `sudo apt autoremove` や `sudo apt autoclean` を実行してシステムをクリーンに保つのが良いでしょう。 `apt upgrade` は既存パッケージの更新のみを行い、依存関係の変更が必要な更新(新しいパッケージのインストールや既存パッケージの削除)は保留します。一方、`apt full-upgrade` (または `apt dist-upgrade`) は、システムの整合性を保つために必要であればパッケージのインストールや削除も伴う更新を行うため、システム全体を最新の状態に維持するには `full-upgrade` の使用が**推奨**されます。

Ubuntu のパッケージ管理 (apt, dpkg)

Ubuntuでは、ソフトウェア(パッケージ)のインストール、更新、削除といった管理作業は、主に `apt` (Advanced Package Tool) というコマンドラインツールを使用して行います。`dpkg` は、個別の `.deb` パッケージファイルを扱うための、より低水準なツールです。通常、ユーザーは `apt` コマンドを利用します。

主な `apt` コマンド:

パッケージ管理の詳細については、「Linux基本コマンドとその活用法 - パッケージ管理」セクションも参照してください。

Ubuntu での NVIDIA ドライバのインストール

NVIDIA製のグラフィックカード(GPU)を使用している場合、オープンソースのドライバ(Nouveau)の代わりに、NVIDIAが提供するプロプライエタリなドライバをインストールすることで、グラフィック性能が向上したり、CUDAなどのGPUコンピューティング機能が利用可能になったりすることがあります。Ubuntuでは、システムが検出したハードウェアに適した推奨ドライバを簡単にインストールするためのコマンドが用意されています。

# 推奨されるNVIDIAドライバを自動的に検索してインストールする
sudo ubuntu-drivers autoinstall
# (インストール完了後、変更を有効にするために再起動が必要です)
sudo reboot

# ドライバが正しく動作しているか確認する (GPUの情報が表示されればOK)
nvidia-smi

この方法で問題が発生する場合や、特定のバージョンのドライバを手動でインストールしたい場合は、別途手順が必要になります。