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

Ubuntu の使い方

目次

  1. サイト内の主な Ubuntu 関連ページへのリンク
  2. 端末,環境変数,パスを通す,シェル,管理者として実行
  3. データファイル
  4. リモート接続
  5. Python関係
  6. プログラミング用ツール類
  7. オペレーティングシステムの運用保守
  8. システムの観測
  9. ファイルの管理
  10. Linux コマンド

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

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

1. サイト内の主な Ubuntu 関連ページへのリンク

2. 端末,環境変数,パスを通す,シェル,管理者として実行

端末

端末」というとき,正確には,端末の機材を使う場合と,端末のソフトウェア(端末の機材相当の機能を持つので,「端末エミュレータ」ともいったりする)を使う場合がある. 端末のソフトウェアとしては,Windows の場合,コマンドプロンプト (Command Prompt) などがある. 端末の画面には,シェルのプロンプトが表示され,シェルのコマンドを入れることができる.そして,コマンドの結果を確認することができる

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

[image]

パスを通す

環境変数 PATH を設定することにより,ディレクトリ(複数可)を,シェルでのコマンド実行時の検索対象に含めるように設定すること.

管理者として実行

Linuxのときは,シェルを管理者として実行するすることはなるべく避けて,個々のコマンドに「sudo」を付ける

[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

sudo

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

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

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

3. データファイル

CSV

CSV ファイルは,カンマで区切られたテキストファイルのこと. 実は,CSV ファイルにもいろいろ種類があるが,例えば,表計算ソフト Excel の CSV ファイルは次のようになっている.

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

このデータは2行のテキストファイルであって,各行が5つのデータを含んでいる. Excel の CSV ファイルから次のことが分かる.

4. リモート接続

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

5. 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 の隔離された環境の作成が簡単にできる機能.

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

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

git

git はバージョン管理のソフトウェア.

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

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

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

Git のインストール

Ubuntu での git のインストールは, 次のコマンドを実行.

sudo apt -y update
sudo apt -y install git

cmake

cmake は,ソフトウェアのソースコードからのビルドを簡単に行えるようにするためのソフトウェアである.

cmake のオプションは,Ubuntu など Linux 系では ccmake コマンドで確認できる.

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 プログラムのデバッグの機能を持つ.

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

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 関連の資料】

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

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」コマンドにより表示することができる.

8. システムの観測

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

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
    
    

    9. ファイルの管理

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

    10. Linux コマンド