金子邦彦研究室インストールまとめUbuntu の使い方

Ubuntu の使い方

要約】 Ubuntuに関する情報がまとめられたページである.主な内容は,Ubuntu関連のリンクや端末の操作方法,環境変数とパスの設定,データファイルの扱い方,リモート接続やSSH鍵の使用方法,Python関連のツールやデバッガの利用,そしてLinux コマンドなどが含まれている.さらに,OpenJDKのインストールとJavaプログラムの実行,Ubuntuの運用保守に関する情報も提供されている.これらはUbuntu上でのプログラミングやシステム管理に役立つ内容である.

目次

  1. Ubuntu
  2. Ubuntu のインストールとセットアップ
  3. シェルの利用,管理者として実行
  4. 環境変数,パスを通す
  5. データファイル
  6. リモート接続
  7. プログラミング言語Pythonとツール
  8. プログラミング用ツール類
  9. プログラミング言語Java
  10. オペレーティングシステムの運用保守
  11. システムの観測
  12. ファイルの管理
  13. Linux コマンド

サイト内の主な Ubuntu 関連ページ

サイト内のまとめページへのリンク

1. Ubuntu

サイト内の関連ページ

関連する外部ページ

Ubuntu の各種情報について

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

Ubuntu 22.04のインストール

Ubuntu 22.04のインストールでは,まず,公式のUbuntuミラーサイトを開き,「日本語」を選択し,「Ubuntuをインストール」をクリックする.キーボードレイアウトの選択,アップデートと他のソフトウェアの選択,「通常のインストール」または「最小インストール」の選択などを行っていく.インストールの種類では,「ディスクを削除してUbuntuをインストール」を選択する.タイムゾーンを「Tokyo」に設定し,利用者情報を入力し,インストールを行う.ログイン画面が表示されたらインストールは完了である.

サイト内の関連ページ

関連する外部ページ

入手先をまとめている.

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 セットアップ

3. シェルの利用,管理者として実行

端末

端末は,物理的なハードウェア(機材)としての端末と,ソフトウェアとしての端末(しばしば「端末エミュレータ」と呼ばれる)の二つの形態がある.端末エミュレータは,ハードウェアの端末と同等の機能をソフトウェアとして実現している.ソフトウェアとしての端末の一例として,bash が該当する.端末の画面には,通常,シェルのプロンプトが表示される.シェルのプロンプトにはコマンドを入力することが可能で,入力したコマンドを実行して結果を確認することができる.

Ubuntu での端末ソフトウェアの例

[image]

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」を付ける

[image]

sudo

sudo は,コマンドを管理者の権限で実行するためのコマンド.Linux などで使用.

シェルにシステム管理者(root) でログイン

オペレーティングシステムに,システム管理者 (root) でログインし,そのシェルを使いはじめること.

4. 環境変数,パスを通す

環境変数とパスの設定は,プログラミングやソフトウェア開発作業において重要な役割を果たす. これらの設定は,システムがプログラムやコマンドを正しく認識し,またそれらを適切な場所から実行するために必要である. 環境変数とパスが適切に設定されていると,フルパスを指定せずにコマンドやプログラムを簡単に実行することができる.

環境変数

環境変数は,シェルで「A=10」のようなコマンドを実行することにより設定できる.

パスを通す

環境変数PATH」は,シェルがコマンドを実行する際にどのディレクトリを検索対象にするかを定めるものである.そのため, フルパスを指定せずにコマンドやプログラムを簡単に実行することができようになる.実行したいコマンドやプログラムのパスを 環境変数PATH」に追加する操作を「パスを通す」という.

5. データファイル

CSV

CSVファイルは,"Comma Separated Values"の略で,データがカンマで区切られたテキストファイルを指す.CSVファイルにはいくつかのバリエーションがあるが,たとえばMicrosoft Excelで使用されるCSVファイルは以下のような形式になります. 例:

りんご,150,4,200,12月30日に購入した
みかん,30,2,60,"25円のものを買う予定だったが,売り切れだった"

この例では,2行のテキストファイルが示され,各行に5つのデータが含まれている. このExcelのCSVファイルから次の3つの特徴が読み取ることができる.

  1. データは半角カンマで区切られている.
  2. 1行が1つのデータセットを表す.
  3. データそのものが半角カンマを含む場合,そのデータ全体はダブルクオートで括られる.

6. リモート接続

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 で確認。

7. プログラミング言語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 バージョン管理のツールである.

pyenv: 別ページ で説明している.

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 について:別ページ で説明している.

8. プログラミング用ツール類

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

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

特定のバージョンのブランチをチェックアウトしたいときは,次のようにバージョン指定を行う.

Git の公式ページ: https://git-scm.com/

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
git checkout v2.14.0

関連する外部ページ

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 はビルドシステム.

デバッガ gdb

起動は,gdb <ファイル名>です.

gdb a.out

終了は,quit です.

quit

デバッガ gdb の機能

デバッグ

デバッグを行うソフトウェアとしては gdbなどがある. Visual Studio Code のプラグインには,デバッガとの連携機構を持つものがある. PyCharm は,Python プログラムのデバッグの機能を持つ.

デバッガには,ブレークポイント,ブレークポイントにおける変数値などの表示,ステップ実行の機能がある. ステップ実行の操作には,以下の通り,ステップインステップオーバーステップアウト続行の操作がある.

9. プログラミング言語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 関連の資料】

10. オペレーティングシステムの運用保守

Ubuntu のリリース名の確認

Ubuntu のリリース名の確認は,次のコマンドで行うことができる

lsb_release -sc

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 コマンドを用いて,パッケージ管理を行うことができる

Ubuntu の NVIDIA ドライバ

Ubuntu では,NVIDIA ドライバは次のコマンドでインストールできる.

sudo ubuntu-drivers autoinstall

グラフィックスドライバは次のコマンドで確認

nvidia-smi

ARPテーブルの表示

ARP テーブルには,ネットワークにつながっている機器の IP アドレスが格納されている. 「arp -a」コマンドにより表示することができる.

11. システムの観測

最近に更新されたファイルの検索

Ubuntu では次のように操作する.

touch /tmp/now
find . -newer /tmp/now
gsettings list-recursively > /tmp/1

Linux の inotifywait を用いてファイル生成,更新を検知

12. ファイルの管理

重複ファイルの除去(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

13. Linux コマンド