Ubuntu の使い方
【要約】 Ubuntuに関する情報がまとめられたページである.主な内容は,Ubuntu関連のリンクや端末の操作方法,環境変数とパスの設定,データファイルの扱い方,リモート接続やSSH鍵の使用方法,Python関連のツールやデバッガの利用,そしてLinux コマンドなどが含まれている.さらに,OpenJDKのインストールとJavaプログラムの実行,Ubuntu の運用保守に関する情報も提供されている.これらはUbuntu上でのプログラミングやシステム管理に役立つ内容である.
【目次】
- Ubuntu のインストールとセットアップ
- シェルの利用,管理者として実行
- 環境変数,パスを通す
- データファイル
- リモート接続
- プログラミング言語Pythonとツール
- プログラミング用ツール類
- プログラミング言語Java
- オペレーティングシステムの運用保守
- システムの観測
- ファイルの管理
- Linux コマンド
【関連する外部ページ】
Ubuntu の各種情報について
- Ubuntu の公式ページ(日本語版): https://jp.ubuntu.com/
- fosswire.com の Unix/Linux コマンドリファランス: https://files.fosswire.com/2007/08/fwunixref.pdf
- DistroWatch の Ubuntu のページ: https://distrowatch.com/table.php?distribution=ubuntu
【サイト内の関連ページ】
- 種々のまとめページ: [人工知能,データサイエンス,データベース,3次元], [Windows], [Ubuntu], [Python (Google Colaboratory を含む)], [C/C++言語プログラミング用語説明], [R システムの機能], [Octave]
Ubuntu 関連
- Ubuntu 22.04 のインストール: 別ページ »で説明
- Ubuntu 22.04 のインストール直後の設定: 別ページ »で説明
- Ubuntu のセットアップ(Ubuntu のインストールと設定,アプリケーションソフトウェアのインストール及び設定手順): 別ページ »で説明
- Ubuntu,WSL2 について: 別ページ »にまとめ
- WSL2 のインストール,WSL2 上のサブシステムとして Ubuntu 22.04 をインストール: 別ページ »で説明
- Ubuntu,WSL2 について: 別ページ »にまとめ
- Ubuntu サーバ,リモート接続: 別ページ »にまとめている.
WSL2 関連
1. Ubuntu のインストールとセットアップ
Ubuntu 24.04のインストール
Ubuntu 24.04のインストールでは,まず,公式のUbuntuミラーサイトを開き,「日本語」を選択し,「Ubuntuをインストール」をクリックする.キーボードレイアウトの選択,アップデートと他のソフトウェアの選択,「通常のインストール」または「最小インストール」の選択などを行っていく.インストールの種類では,「ディスクを削除してUbuntuをインストール」を選択する.タイムゾーンを「Tokyo」に設定し,利用者情報を入力し,インストールを行う.ログイン画面が表示されたらインストールは完了である.
【サイト内の関連ページ】
【関連する外部ページ】
入手先をまとめている.
- Ubuntu の公式ページ(日本語版): https://jp.ubuntu.com/
- Ubuntu のダウンロードの公式ページ(日本版): https://jp.ubuntu.com/download
- 公式の Ubuntu のミラーサイトのページ: https://launchpad.net/ubuntu/+cdmirrors
Ubuntu 22.04のインストール
Ubuntu 22.04のインストールでは,まず,公式のUbuntuミラーサイトを開き,「日本語」を選択し,「Ubuntuをインストール」をクリックする.キーボードレイアウトの選択,アップデートと他のソフトウェアの選択,「通常のインストール」または「最小インストール」の選択などを行っていく.インストールの種類では,「ディスクを削除してUbuntuをインストール」を選択する.タイムゾーンを「Tokyo」に設定し,利用者情報を入力し,インストールを行う.ログイン画面が表示されたらインストールは完了である.
【サイト内の関連ページ】
【関連する外部ページ】
入手先をまとめている.
- Ubuntu の公式ページ(日本語版): https://jp.ubuntu.com/
- Ubuntu のダウンロードの公式ページ(日本版): https://jp.ubuntu.com/download
- 公式の Ubuntu のミラーサイトのページ: https://launchpad.net/ubuntu/+cdmirrors
- Ubuntu 22.04 日本語 Remix 版の公式ページ: https://www.ubuntulinux.jp/News/ubuntu2204-ja-remix
Ubuntu 22.04 のインストール直後の設定
Ubuntu のインストール直後の設定としては,ダウンロード元の日本への設定,システムの更新,OpenSSHサーバのインストール,タイムゾーンとロケールの調整,NTPによる時刻合わせの有効化,日本語サポートのインストール等がある.また,必要に応じて,運用保守用ツールのインストール,不要ソフトウェアの削除,デスクトップのユーザディレクトリの言語を英語に変更,電源管理の設定,日本語の設定,Caps Lockキーの無効化,ログの抑制,不要ファイルの除去を行うことにより,Ubuntuの運用が効率化される.
【サイト内の関連ページ】
Ubuntu のシステム更新
Ubuntu のシステム更新はコマンドで行うことができる.まずは「sudo apt -y update」と「sudo apt -yV upgrade」コマンドを使って全体のパッケージを更新する.カーネルに関連するパッケージの更新が必要な場合は,「sudo apt -yV dist-upgrade」,「sudo apt -yV autoremove」,「sudo apt autoclean」のコマンドを使って更新し,その後,不要なパッケージを削除し,キャッシュをクリーンアップする.最後に「sudo shutdown -r now」コマンドでシステムを再起動する.
パッケージのアップデート操作
端末を開き,次のように操作(端末を開くには,右クリックメニューが便利)
sudo apt -y update sudo apt -yV upgrade
カーネルに関するパッケージである linux-headers と linux-image をアップデートする操作
端末を開き,次のように操作(端末を開くには,右クリックメニューが便利)
sudo apt -yV dist-upgrade sudo apt -yV autoremove sudo apt autoclean sudo shutdown -r now
【サイト内の関連ページ】
Ubuntu セットアップ
2. シェルの利用,管理者として実行
端末
端末は,物理的なハードウェア(機材)としての端末と,ソフトウェアとしての端末(しばしば「端末エミュレータ」と呼ばれる)の二つの形態がある.端末エミュレータは,ハードウェアの端末と同等の機能をソフトウェアとして実現している.ソフトウェアとしての端末の一例として,bash が該当する.端末の画面には,通常,シェルのプロンプトが表示される.シェルのプロンプトにはコマンドを入力することが可能で,入力したコマンドを実行して結果を確認することができる.
Ubuntu での端末ソフトウェアの例
bash シェル
bash シェルは Linux で広く使われているシェルである.
bash シェルは,Linux コマンドの実行に便利である.
Linux のシェルでの制限を解除
Linux のシェルでは,使用するメモリ量,コアダンプサイズ,同時にオープンできるファイル数などを制限できる機能がある. 解除するには ulimit コマンドを用いる.
ulimit -c unlimited
ヒアドキュメント(hear document)
ヒアドキュメントは,シェルで,文字列の開始と終了を,区切りを示す文字列で囲んだもの.
bash シェルでのヒアドキュメントの例を次に示す. 下の bash コマンドでは,文字列を「COMMAND」で囲んでいる.ヒアドキュメントは,複数行にわたる1つの文字列をシェルで扱うときに便利.
#!/bin/bash cat > /tmp/1 <<-COMMAND hoge hoge2 hoge3 COMMAND
次は,ヒアドキュメントを使い Python プログラムを実行している.
#!/bin/bash rm /tmp/hoge.py cat > /tmp/hoge.py <<-BPY import bpy import os bpy.ops.render.render() bpy.data.images['Render Result'].save_render(filepath = '/tmp/image.png') BPY blender -b --python hoge.py
管理者として実行
Linuxのときは,シェルを管理者として実行するすることはなるべく避けて,個々のコマンドに「sudo」を付ける
sudo
sudo は,コマンドを管理者の権限で実行するためのコマンド.Linux などで使用.
シェルにシステム管理者(root) でログイン
オペレーティングシステムに,システム管理者 (root) でログインし,そのシェルを使いはじめること.
3. 環境変数,パスを通す
環境変数とパスの設定は,プログラミングやソフトウェア開発作業において重要な役割を果たす. これらの設定は,システムがプログラムやコマンドを正しく認識し,またそれらを適切な場所から実行するために必要である. 環境変数とパスが適切に設定されていると,フルパスを指定せずにコマンドやプログラムを簡単に実行することができる.
環境変数
環境変数は,シェルで「A=10」のようなコマンドを実行することにより設定できる.
パスを通す
環境変数「PATH」は,シェルがコマンドを実行する際にどのディレクトリを検索対象にするかを定めるものである.そのため, フルパスを指定せずにコマンドやプログラムを簡単に実行することができようになる.実行したいコマンドやプログラムのパスを 環境変数「PATH」に追加する操作を「パスを通す」という.
4. データファイル
CSV
CSVファイルは,"Comma Separated Values"の略で,データがカンマで区切られたテキストファイルを指す.CSVファイルにはいくつかのバリエーションがあるが,たとえばMicrosoft Excelで使用されるCSVファイルは以下のような形式になります. 例:
りんご,150,4,200,12月30日に購入した みかん,30,2,60,"25円のものを買う予定だったが,売り切れだった"
この例では,2行のテキストファイルが示され,各行に5つのデータが含まれている. このExcelのCSVファイルから次の3つの特徴が読み取ることができる.
- データは半角カンマで区切られている.
- 1行が1つのデータセットを表す.
- データそのものが半角カンマを含む場合,そのデータ全体はダブルクオートで括られる.
5. リモート接続
SSH の公開鍵,秘密鍵
安全面の強化のため SSH の公開鍵,秘密鍵を使って SSH サーバを運用することが多い. Ubuntu での設定手順は,別ページ »で説明
Ubuntu で nohup 状態でプログラムを実行する
リモート接続してコマンドを実行したとき,リモート接続を閉じても,コマンドの実行が継続するように, nohup 状態でプログラムを実行する.
実行したいコマンド ctrl + Z (同時押し) jobs -l bg %<jobs -l で調べた番号> disown %<jobs -l で調べた番号>
Ubuntu でバッチ処理
リモート接続しているときなどに,終了まで時間がかかるコマンドを実行開始し,リモート接続を終了したいことがある。
次のように実行
at now 実行したいコマンド ctrl + D (同時押し)
実行できているかは,atq, ps -augx で確認。
6. プログラミング言語Pythonとツール
別ページ に Python の機能などをまとめている.
Python 処理系
Python プログラムのソースコードを実行するためのソフトウェアのこと
Python の起動コマンド
Windows, Ubuntu での Python 起動コマンドについて:別ページ で説明している.
Google Colaboratory
Google Colaboratory について:別ページ で説明している.
Ubuntu のシステム Python
Ubuntu のシステム Python: 別ページ »で説明.
Python, pip, Python 開発環境,Python コンソールのコマンドでの起動
Python, pip, Python 開発環境,Python コンソールのコマンドでの起動: 別ページ »で説明.
複数の Python の同時インストール
Ubuntu での複数の Python の同時インストール
Ubuntu で,システム Python 以外の Python をインストールするには pyenv の利用が便利である. pyenv は,Linux, MacOS で動く Python バージョン管理のツールである.
Ubuntu のシステム Python,Ubuntu での Python のインストール:別ページ で説明している.
venv
venv は,Python の仮想環境を作成する機能を提供するモジュールである.Python の仮想環境は隔離されており,特定のバージョンのPythonや,特定のバージョンやPythonパッケージを管理するのに役立つ.
venv について: 別ページ »で説明
virtualenv, virtualenv-wrapper
virtualenv, virtualenv-wrapper について: 別ページ »で説明
pyenv
pyenv は,Linux, MacOS で動く Python バージョン管理のツールである.
pip
pip について: 別ページ »で説明
2to3
2to3: 別ページ »で説明.
Jupyter Qt Console
Jupyter Qt Console は Python コンソールの機能を持ったソフトウェア.
Jupyter Qt Console について:別ページ で説明している.
Jupyter ノートブック (Jupyter Notebook)
Jupyter ノートブックは,Pythonなどのプログラムのソースコード,実行結果などを1つのノートとして残す機能をもったノートブック.
Jupyter ノートブック について:別ページ で説明している.
JupyterLab
Jupyter Lab は Python プログラム作成に関する種々の機能を持ったソフトウェア.
JupyterLab について:別ページ で説明している.
spyder
Spyder について: 別ページ »で説明
PyCharm
PyCharm は Python プログラム作成に関する種々の機能を持ったソフトウェア.
PyCharm について:別ページ で説明している.
Anaconda3
Anaconda3 について:別ページ で説明している.
7. プログラミング用ツール類
バージョン管理システム Git
Git は、ソフトウェアの開発において使用されているバージョン管理システムである.git clone コマンドは、リモートリポジトリからソースコードをローカルマシンにコピー(クローン)するために使用される.シンプルなコマンドで,リモートリポジトリ全体のコピーや,リモートリポジトリとの同期を行えることが特徴である.
次のコマンドの実行により,https://github.com/username/repository.git で指定されたリモートリポジトリを,現在のディレクトリにある repository というディレクトリにクローンできる.
git clone https://github.com/username/repository.git
次のコマンドは,特定のブランチを指定してリポジトリをクローンしている.-b オプションは,クローンするブランチを指定する。この例では、v1.0 というブランチを指定している.
git -b v1.0 clone https://github.com/username/repository.git
【サイト内の関連ページ】 Windows での Git のインストール: 別ページ »で説明
【関連する外部ページ】 Git の公式ページ: https://git-scm.com/
Ubuntu での Git のインストール
Ubuntu での git のインストールは, 次のコマンドを実行.
sudo apt -y update sudo apt -y install git
ビルドツール CMake
CMake は,ソフトウェアのソースコードからのビルドを簡単に行えるようにするためのソフトウェアである.
cmake のオプションは,Ubuntu など Linux 系では ccmake コマンドで確認できる.
Ubuntu での CMake のインストール
Ubuntu では,端末で,次のコマンドを実行して,cmake をインストールする.
sudo apt -y update sudo apt -y install cmake cmake-curses-gui cmake-gui
cmake のジェネレータ
cmake のジェネレータは,次のページに説明がある.
https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html
ninja
Ninja はビルドシステム.
- Ninja のサイト: https://ninja-build.org
デバッガ gdb
起動は,gdb <ファイル名>です.
gdb a.out
終了は,quit です.
quit
デバッガ gdb の機能
- ソースの表示: list
- ブレークポイントの設定: break
- プログラムの実行: run
- ステップオーバー: next
ブレークポイントで止まったら,止まった位置から,プログラムを1ステップずつ実行する. 1ステップは,基本的にはプログラムの1行のこと.next コマンドでは, 関数呼び出し自体を1ステップと見なし,関数の中身には入りません. - ステップイン: step
ブレークポイントで止まったら,止まった位置から,プログラムを1ステップずつ実行する. 1ステップは,基本的にはプログラムの1行のこと.step コマンドでは, 関数呼び出しがあると,関数の内部に入って,ステップ実行を続ける. - 続行: continue
ブレークポイントで止まった後,その時点から実行を続行します.次のブ レークポイントに出会ったら停ります. - 変数の値の表示: print
デバッグ
デバッグを行うソフトウェアとしては gdbなどがある. Visual Studio Code のプラグインには,デバッガとの連携機構を持つものがある. PyCharm は,Python プログラムのデバッグの機能を持つ.
デバッガには,ブレークポイント,ブレークポイントにおける変数値などの表示,ステップ実行の機能がある. ステップ実行の操作には,以下の通り,ステップイン,ステップオーバー,ステップアウト,続行の操作がある.
- ステップイン
ブレークポイントで止まったら,止まった位置から,プログラムを1ステップずつ実行する. 1ステップは,基本的にはプログラムの1行のこと.関数呼び出し,メソッド呼び出しがあるとき,その関数やメソッドの中には入り,ステップインが続く. - ステップオーバー
ブレークポイントで止まったら,止まった位置から,プログラムを1ステップずつ実行する. 1ステップは,基本的にはプログラムの1行のこと.ステップオーバーでは, 関数呼び出し,メソッド呼び出しがあるとき,その関数やメソッドの中には入らない. - ステップアウト
現在の関数やメソッドの呼び出し側にステップ実行が移る. - 続行
実行を続行する.次のブ レークポイントに出会ったら止まる.
8. プログラミング言語Java
OpenJDK (Java Development Kit) のインストールと Java プログラムの実行
JDK は Java プログラムの作成や動作に必要である。
【OpenJDK のインストール】
【Java のバージョンの確認】
Java のバージョンは,次のコマンドで確認できる。
java -version
【Ubuntu での Java プログラムの実行】
Main.java を実行するために,次のコマンドを, 端末で実行する.
javac -encoding UTF-8 Main.java java Main
Main.java として次の Java プログラムを実行すると,結果として「3.000000」が表示される.
class Ball { double x; double y; String color; public Ball(double x, double y, String color) { this.x = x; this.y = y; this.color = color; } public double dist() { return this.x + this.y; } } public class Main { public static void main(String[] args) { Ball a = new Ball(1, 2, "red"); Ball b = new Ball(3, 4, "green"); System.out.printf("%f", a.dist()); } }
【サイト内の Java 関連の資料】
9. オペレーティングシステムの運用保守
Ubuntu のリリース名の確認
Ubuntu のリリース名の確認は,次のコマンドで行うことができる
lsb_release -sc
- Ubuntu 22.04 jammy
- Ubuntu 20.04 focal
- Ubuntu 18.04 "Bionic Beaver"
- Ubuntu 17.10 "Artful Aardvark"
- Ubuntu 16.04 "Xenial Xerus"
- Ubuntu 14.04 "Trusty Tahr"
Ubuntu でのレポジトリの追加では,次のようにリリース名を指定する必要があることが多い.
sudo add-apt-repository "deb [arch=amd64] https://archive.panda3d.org/ubuntu `lsb_release -sc` main"
Ubuntu のシステム更新
パッケージのアップデート操作
端末を開き,次のように操作(端末を開くには,右クリックメニューが便利)
sudo apt -y update sudo apt -yV upgrade
カーネルに関するパッケージである linux-headers と linux-image の新しい版を追加したい場合には次の操作を行う.
sudo apt -yV dist-upgrade sudo apt -yV autoremove sudo apt autoclean sudo shutdown -r now
Ubuntu のパッケージ管理
Ubuntu では,apt, apt-cache, dpkg コマンドを用いて,パッケージ管理を行うことができる
- apt install <パッケージ名> ・・・ パッケージのインストール
- apt-cache <検索文字列> ・・・ パッケージの検索
- dpkg -L <パッケージ名> ・・・ パッケージの構成物の確認
- dpkg -l ・・・ インストール済みパッケージの表示
Ubuntu の NVIDIA ドライバ
Ubuntu では,NVIDIA ドライバは次のコマンドでインストールできる.
sudo ubuntu-drivers autoinstall
グラフィックスドライバは次のコマンドで確認
nvidia-smi
ARPテーブルの表示
ARP テーブルには,ネットワークにつながっている機器の IP アドレスが格納されている. 「arp -a」コマンドにより表示することができる.
10. システムの観測
最近に更新されたファイルの検索
Ubuntu では次のように操作する.
touch /tmp/now find . -newer /tmp/now gsettings list-recursively > /tmp/1
Linux の inotifywait を用いてファイル生成,更新を検知
- Linux の機能を用いて,新規作成,更新されたファイルをリアルタイムに検知できる.
inotifywait -e create -e close -r -m /tmp | tee -a /var/tmp/log-inotifywait > /dev/null
- /home 下の重複ファイル除去作業手順例
sudo fdupes -rf /home | sort | uniq | grep -v '^$' > /tmp/remove.lst # while read file; do rm -v "$file"; done < remove.lst
- 空のディレクトリの削除手順例
cd /home sudo find . -type d -empty -delete
11. ファイルの管理
重複ファイルの除去(Ubuntu 上)
Ubuntu で fdupes コマンドを用いて, /home 下の重複ファイルを除去する操作は次の通り。 実行前に,必ずバックアップを行うこと。
sudo fdupes -rf /home | sort | uniq | grep -v '^$' > /tmp/remove.lst while read file; do rm -v "$file"; done < remove.lst
空のディレクトリの削除
Linux で find コマンドを用いて,空のディレクトリを削除する操作は次の通り。
cd /home sudo find . -type d -empty -delete
12. Linux コマンド
- ファイル操作
cat ファイル表示 ls ファイル名表示 cp ファイルコピー mv ファイルの移動,ファイル名の変更 rm ファイル削除 cd カレントディレクトリの移動 pwd カレントディレクトリの表示 which コマンドのフルパス表示
- システム
ps プロセス表示 df ディスク情報の表示 sudo 管理者権限でコマンドを実行 passwd パスワードの変更 shutdown システムのシャットダウン uname -a カーネルのバージョンなどの表示
- apt, deb パッケージ(Ubuntu, Debian 系)
apt install パッケージのインストール apt-get search パッケージの検索 dpkg -L インストール済みパッケージの中身の表示 dpkg -l インストール済みパッケージの表示
- ネットワーク
ip neigh APRテーブルの表示 ip -s addr IPアドレスの表示 ip -s link ネットワークデバイスの使用状況 ping パケットを送り,応答を調べる ss ソケットの状態表示
- ハードウェア
lsusb USBデバイスの一覧表示 lcpci PCIデバイスの一覧表示 lshw ハードウェア情報の表示