【要約】 Ubuntuに関する情報がまとめられたページである.主な内容は,Ubuntu関連のリンクや端末の操作方法,環境変数とパスの設定,データファイルの扱い方,リモート接続やSSH鍵の使用方法,Python関連のツールやデバッガの利用,そしてLinux コマンドなどが含まれている.さらに,OpenJDKのインストールとJavaプログラムの実行,Ubuntuの運用保守に関する情報も提供されている.これらはUbuntu上でのプログラミングやシステム管理に役立つ内容である.
【目次】
【サイト内の主な Ubuntu 関連ページ】
【サイト内のまとめページへのリンク】
【サイト内の関連ページ】
【関連する外部ページ】
Ubuntu の各種情報について
Ubuntu 24.04のインストールでは,まず,公式のUbuntuミラーサイトを開き,「日本語」を選択し,「Ubuntuをインストール」をクリックする.キーボードレイアウトの選択,アップデートと他のソフトウェアの選択,「通常のインストール」または「最小インストール」の選択などを行っていく.インストールの種類では,「ディスクを削除してUbuntuをインストール」を選択する.タイムゾーンを「Tokyo」に設定し,利用者情報を入力し,インストールを行う.ログイン画面が表示されたらインストールは完了である.
【サイト内の関連ページ】
【関連する外部ページ】
入手先をまとめている.
Ubuntu 22.04のインストールでは,まず,公式のUbuntuミラーサイトを開き,「日本語」を選択し,「Ubuntuをインストール」をクリックする.キーボードレイアウトの選択,アップデートと他のソフトウェアの選択,「通常のインストール」または「最小インストール」の選択などを行っていく.インストールの種類では,「ディスクを削除してUbuntuをインストール」を選択する.タイムゾーンを「Tokyo」に設定し,利用者情報を入力し,インストールを行う.ログイン画面が表示されたらインストールは完了である.
【サイト内の関連ページ】
【関連する外部ページ】
入手先をまとめている.
Ubuntu のインストール直後の設定としては,ダウンロード元の日本への設定,システムの更新,OpenSSHサーバのインストール,タイムゾーンとロケールの調整,NTPによる時刻合わせの有効化,日本語サポートのインストール等がある.また,必要に応じて,運用保守用ツールのインストール,不要ソフトウェアの削除,デスクトップのユーザディレクトリの言語を英語に変更,電源管理の設定,日本語の設定,Caps Lockキーの無効化,ログの抑制,不要ファイルの除去を行うことにより,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
端末を開き,次のように操作(端末を開くには,右クリックメニューが便利)
sudo apt -yV dist-upgrade sudo apt -yV autoremove sudo apt autoclean sudo shutdown -r now
【サイト内の関連ページ】
端末は,物理的なハードウェア(機材)としての端末と,ソフトウェアとしての端末(しばしば「端末エミュレータ」と呼ばれる)の二つの形態がある.端末エミュレータは,ハードウェアの端末と同等の機能をソフトウェアとして実現している.ソフトウェアとしての端末の一例として,bash が該当する.端末の画面には,通常,シェルのプロンプトが表示される.シェルのプロンプトにはコマンドを入力することが可能で,入力したコマンドを実行して結果を確認することができる.
Ubuntu での端末ソフトウェアの例
bash シェルは Linux で広く使われているシェルである.
bash シェルは,Linux コマンドの実行に便利である.
Linux のシェルでは,使用するメモリ量,コアダンプサイズ,同時にオープンできるファイル数などを制限できる機能がある. 解除するには ulimit コマンドを用いる.
ulimit -c unlimited
ヒアドキュメントは,シェルで,文字列の開始と終了を,区切りを示す文字列で囲んだもの.
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 は,コマンドを管理者の権限で実行するためのコマンド.Linux などで使用.
オペレーティングシステムに,システム管理者 (root) でログインし,そのシェルを使いはじめること.
環境変数とパスの設定は,プログラミングやソフトウェア開発作業において重要な役割を果たす. これらの設定は,システムがプログラムやコマンドを正しく認識し,またそれらを適切な場所から実行するために必要である. 環境変数とパスが適切に設定されていると,フルパスを指定せずにコマンドやプログラムを簡単に実行することができる.
環境変数は,シェルで「A=10」のようなコマンドを実行することにより設定できる.
環境変数「PATH」は,シェルがコマンドを実行する際にどのディレクトリを検索対象にするかを定めるものである.そのため, フルパスを指定せずにコマンドやプログラムを簡単に実行することができようになる.実行したいコマンドやプログラムのパスを 環境変数「PATH」に追加する操作を「パスを通す」という.
CSVファイルは,"Comma Separated Values"の略で,データがカンマで区切られたテキストファイルを指す.CSVファイルにはいくつかのバリエーションがあるが,たとえばMicrosoft Excelで使用されるCSVファイルは以下のような形式になります. 例:
りんご,150,4,200,12月30日に購入した みかん,30,2,60,"25円のものを買う予定だったが,売り切れだった"
この例では,2行のテキストファイルが示され,各行に5つのデータが含まれている. このExcelのCSVファイルから次の3つの特徴が読み取ることができる.
安全面の強化のため SSH の公開鍵,秘密鍵を使って SSH サーバを運用することが多い. Ubuntu での設定手順は,別ページ »で説明
リモート接続してコマンドを実行したとき,リモート接続を閉じても,コマンドの実行が継続するように, nohup 状態でプログラムを実行する.
実行したいコマンド ctrl + Z (同時押し) jobs -l bg %<jobs -l で調べた番号> disown %<jobs -l で調べた番号>
リモート接続しているときなどに,終了まで時間がかかるコマンドを実行開始し,リモート接続を終了したいことがある。
次のように実行
at now 実行したいコマンド ctrl + D (同時押し)
実行できているかは,atq, ps -augx で確認。
別ページ に Python の機能などをまとめている.
Python プログラムのソースコードを実行するためのソフトウェアのこと
Windows, Ubuntu での Python 起動コマンドについて:別ページ で説明している.
Google Colaboratory について:別ページ で説明している.
Ubuntu のシステム Python: 別ページ »で説明.
Python, pip, Python 開発環境,Python コンソールのコマンドでの起動: 別ページ »で説明.
Ubuntu で,システム Python 以外の Python をインストールするには pyenv の利用が便利である. pyenv は,Linux, MacOS で動く Python バージョン管理のツールである.
Ubuntu のシステム Python,Ubuntu での Python のインストール:別ページ で説明している.
venv は,Python の仮想環境を作成する機能を提供するモジュールである.Python の仮想環境は隔離されており,特定のバージョンのPythonや,特定のバージョンやPythonパッケージを管理するのに役立つ.
venv について: 別ページ »で説明
virtualenv, virtualenv-wrapper について: 別ページ »で説明
pyenv は,Linux, MacOS で動く Python バージョン管理のツールである.
pip について: 別ページ »で説明
2to3: 別ページ »で説明.
Jupyter Qt Console は Python コンソールの機能を持ったソフトウェア.
Jupyter Qt Console について:別ページ で説明している.
Jupyter ノートブックは,Pythonなどのプログラムのソースコード,実行結果などを1つのノートとして残す機能をもったノートブック.
Jupyter ノートブック について:別ページ で説明している.
Jupyter Lab は Python プログラム作成に関する種々の機能を持ったソフトウェア.
JupyterLab について:別ページ で説明している.
Spyder について: 別ページ »で説明
PyCharm は Python プログラム作成に関する種々の機能を持ったソフトウェア.
PyCharm について:別ページ で説明している.
Anaconda3 について:別ページ で説明している.
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 のインストールは, 次のコマンドを実行.
sudo apt -y update sudo apt -y install git
CMake は,ソフトウェアのソースコードからのビルドを簡単に行えるようにするためのソフトウェアである.
cmake のオプションは,Ubuntu など Linux 系では ccmake コマンドで確認できる.
Ubuntu では,端末で,次のコマンドを実行して,cmake をインストールする.
sudo apt -y update sudo apt -y install cmake cmake-curses-gui cmake-gui
cmake のジェネレータは,次のページに説明がある.
https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html
Ninja はビルドシステム.
起動は,gdb <ファイル名>です.
gdb a.out
終了は,quit です.
quit
デバッガ gdb の機能
デバッグを行うソフトウェアとしては gdbなどがある. Visual Studio Code のプラグインには,デバッガとの連携機構を持つものがある. PyCharm は,Python プログラムのデバッグの機能を持つ.
デバッガには,ブレークポイント,ブレークポイントにおける変数値などの表示,ステップ実行の機能がある. ステップ実行の操作には,以下の通り,ステップイン,ステップオーバー,ステップアウト,続行の操作がある.
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 関連の資料】
Ubuntu のリリース名の確認は,次のコマンドで行うことができる
lsb_release -sc
Ubuntu でのレポジトリの追加では,次のようにリリース名を指定する必要があることが多い.
sudo add-apt-repository "deb [arch=amd64] https://archive.panda3d.org/ubuntu `lsb_release -sc` main"
パッケージのアップデート操作
端末を開き,次のように操作(端末を開くには,右クリックメニューが便利)
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 では,apt, apt-cache, dpkg コマンドを用いて,パッケージ管理を行うことができる
Ubuntu では,NVIDIA ドライバは次のコマンドでインストールできる.
sudo ubuntu-drivers autoinstall
グラフィックスドライバは次のコマンドで確認
nvidia-smi
ARP テーブルには,ネットワークにつながっている機器の IP アドレスが格納されている. 「arp -a」コマンドにより表示することができる.
Ubuntu では次のように操作する.
touch /tmp/now find . -newer /tmp/now gsettings list-recursively > /tmp/1
inotifywait -e create -e close -r -m /tmp | tee -a /var/tmp/log-inotifywait > /dev/null
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
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
cat ファイル表示 ls ファイル名表示 cp ファイルコピー mv ファイルの移動,ファイル名の変更 rm ファイル削除 cd カレントディレクトリの移動 pwd カレントディレクトリの表示 which コマンドのフルパス表示
ps プロセス表示 df ディスク情報の表示 sudo 管理者権限でコマンドを実行 passwd パスワードの変更 shutdown システムのシャットダウン uname -a カーネルのバージョンなどの表示
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 ハードウェア情報の表示