=======
用語集
=======
代表的な Linux distribution
============================
.. glossary::
Arch
* 公式ページ : https://archlinux.org/
* 日本 Arch Linux ユーザー会 (Arch Linux JP Project) : https://archlinux.jp/
* ArchWiki
* 英語版 : https://wiki.archlinux.org/
* 日本語版 : https://wiki.archlinux.jp/
ローリングリリースモデルをベースとしており、常に最先端であることを目指しています。
独自のパッケージ管理システム pacman を備えます。
ArchWiki のドキュメントが充実しており、他の distro を使っている場合でも参考になる情報が多数あります。
Debian
* 公式ページ : https://www.debian.org/
* Debian JP Project : https://www.debian.or.jp/
自由なオペレーティングシステムを目指しており、Ubuntu をはじめとして、多くの distro のベースとなっている distro。
dpkg と apt による強力なパッケージ管理システムと、フリーソフトウェアが特徴。
WSL からも利用可能。
Gentoo
* 公式ページ : https://www.gentoo.org/
* Gentoo Linux Users Group Japan(GentooJP) : https://www.gentoo.jp/
玄人好みの disto。
ソースコードからコンパイルすることでソフトウェアのインストールを行う
パッケージ管理システム Portage が特徴。
Kali
* 公式ページ : https://www.kali.org/
Debian 派生 distro の一つ。
デジタル・フォレンジックやペネトレーションテスト用に設計されています。
WSL からも利用可能。
Oracle
* 公式ページ : https://www.oracle.com/jp/linux/
商用 DB の代表格である Oracle によるメーカー直々の distro。
RedHat 互換で、無償利用も可能。
WSL からも利用可能。
RedHat
* 公式ページ : https://www.redhat.com/ja
商用 distro の代名詞 RHEL (Red Hat Enterprise Linux) が主力製品。
RHEL は有償製品ですが、
開発版として位置付けられている CentOS Stream や Fedora が無償利用可能。
Slackware
* 公式ページ : https://www.slackware.com
老舗 distro の一つ。
tar ファイルによる簡素なパッケージ管理が特徴だったが、
近年は Slackpkg と呼ばれるパッケージ管理ツールが導入されたらしいです。
SUSE
* 公式ページ
* 英語版 : https://www.suse.com/en-us/
* 日本語版 : https://www.suse.com/ja-jp/
ドイツに本部を持つ OSS 多国籍企業。
独自のパッケージ管理システム YaST を用いた
SLES (SUSE Linux Enterprise Server) や OSS の openSUSE を開発しています。
WSL からも利用可能。
Ubuntu
* 公式ページ
* 英語版 : https://ubuntu.com/
* 日本語版 : https://jp.ubuntu.com/
* Ubuntu Japanese Team : https://www.ubuntulinux.jp/
最も人気のある distro の一つ。
WSL でも標準 distro 扱いになっています。
商用サポートも充実しています。
半期毎の 4 月と 10 月に短期サポート版、2 年毎の 4 月に長期サポート(LTS: Long Term Support)版がリリースされます。
プログラミング言語
==================
.. glossary::
Python
* 公式ページ : https://www.python.org/
* Python 3 ドキュメント
* 英語 : https://docs.python.org/3/
* 日本語版 : https://docs.python.org/ja/3/
上記、公式資料以外にも参考になる資料が多数存在します。主だったものを幾つか紹介しておくので参考にしてください。
* 学術系の資料
* `IPSJ MOOC 情報処理学会 公開教材 `__
* 東京大学 / 数理・情報教育研究センター / `e-learning教材 `__ / `Pythonプログラミング入門 `__
* 京都大学学術情報リポジトリ(KURENAI)
* `喜多 一, プログラミング演習 Python 2019 `__
* `喜多 一; 森村 吉貴; 岡本 雅子, プログラミング演習 Python 2021 `__
* `「Python ゼロからはじめるプログラミング」サポートページ `_ (筑波大学 大学院 システム情報系情報工学域 `三谷 純 教授 `__)
* `Python早見帳 `__ (東京工業大学 情報理工学院 `岡崎 直観 教授 `__)
* Kaityo256 on Github / `ゼロから学ぶPython `__ (慶應義塾大学理 工学部物理情報工学科 `渡辺 宙志 准教授 `__)
* 雑誌系の資料
* @IT
* AI / IoT Deep Insider
* `Python入門 `__
* 連載
* `Pythonチートシート `__
* `解決!Python `__
* その他
* とほほのWWW入門 / `Python入門 `__
* M.Hiroi's Home Page / `Lightweight Language `__
関連ソフトウェア、ライブラリ
============================
.. glossary::
Jupyter Notebook
JupyterLab
Project Jupyter
* 公式ページ : https://jupyter.org/
Jupyter Notebook は Project Jypyter により開発された Python 用の対話型実行環境です。
Jupyter Notebook 及び JupyterLab は python のモジュールとして実装されており、
web サーバー上で動作している Python を web ブラウザ上から操作する点が特徴です。
JupyterLab は次世代版 Jupyter Notebook として位置づけられおり、様々な機能が強化されています。
Jupyter の名前は、公式サポートされているプログラミング言語と Julia, Python, R にも由来しているようです。
matplotlib
* 公式ページ : https://matplotlib.org/
* PyPI : https://pypi.org/project/matplotlib/
Python でグラフ等によるビジュアライゼーションを行うためのモジュールです。
numpy
* 公式ページ : https://numpy.org/
* PyPI : https://pypi.org/project/numpy/
Python で配列計算を行うためのモジュールです。
線形代数やフーリエ変換等、演算負荷の大きい処理を C/C++ で実装されています。
インタプリタ型の言語である Python は本来あまり高速に処理を行えませんが、
numpy を用いて計算を行う事で、大幅な高速化が可能となっています。
Open Source Computer Vision Library
OpenCV
OpenCV (Open Source Computer Vision Library)
* 公式ページ : https://opencv.org/
Intel 発祥のコンピュータビジョン向け画像処理ライブラリです。
C/C++ で書かれていますが、Java や Python の他、様々な言語向けのバインディングも開発されています。
大量のアルゴリズムが実装されており、画像処理の必須ツールとして様々な分野で活用されています。
WSL
Windows Subsystem for Linux
* 公式ページ : https://docs.microsoft.com/ja-jp/windows/wsl/
Windows 上で Linux バイナリを直接実行させるためのサブシステム。
Linux kernel の主要機能を独自実装した WSL1 と、Windows の仮想化機構 Hyper-V 上で修正版 Linux kernel を実行する WSL2 の 2 系統が利用可能。
本物の Linux kernel を利用しているため WSL2 の方が互換性の点で有利だが、
仮想化機構を使わず Windows 本体で直接動いているので空きメモリを最大限利用可能だったり、
Hyper-V 以外の仮想マシンの動作を妨げなかったりと WSL1 にも利点はある。
また、2022年11月には新たに Microsoft Store 版の WSL の提供が開始となった。
従来の inbox 版 (Windows コンポーネント版) の WSL も引き続き利用は可能だが、
現在は Microsoft Store 版が標準となっている。
Microsoft Store 版と inbox 版の違いについては以下の記事が詳しい。
* @IT / クラウド / Windows Server Insider / Windows 11 Trends / [2023-01-27: 従来と何が違うのか? WSLがMicrosoft Storeからインストール可能に](https://atmarkit.itmedia.co.jp/ait/articles/2301/27/news029.html)
* 窓の杜 / 2022-11-22: [Windows 10でもLinux GUIアプリが利用可能 ~Microsoft Store版が既定の「WSL」に](https://forest.watch.impress.co.jp/docs/news/1458044.html)
Web サービス
==============
.. glossary::
Google Colaboratory
* 公式ページ : https://colab.research.google.com/
Google による Jupyter Notebook のクラウドサービスです。
用語
========
.. glossary::
root directory
ルートディレクトリ
ファイルやディレクトリの位置を :term:`絶対パス` 指定する際の起点となるディレクトリです。
POSIX の場合は ``/``、
Windows の場合は ``C:`` や ``D:`` 等のドライブ直下ディレクトリ ``C:\`` や ``D:\`` が
ルートディレクトリとなります。
absolute path
absolute path name
絶対パス
絶対パス名
目的のファイルやフォルダの位置を表すための表記法。
ルートディレクトリから順にディレクトリを辿ることで、目的のファイルやフォルダの位置を示します。
POSIX ではルートディレクトリ ``/`` を起点として、パス区切り文字 ``/`` でディレクトリを順に並べることで、目的のファイルやフォルダへの位置を示します。
Windows では ``C:`` や ``D:`` 等のドライブ直下のディレクトリ ``C:\`` や ``D:\`` を起点として、パス区切り文字 ``\`` でディレクトリを順に並べることで、目的のファイルやフォルダへの位置を示します。
例えば :numref:`example of directory tree (POSIX) for glossary` や
:numref:`example of directory tree (Windows) for glossary` のようなディレクトリの木構造があった場合、
``hello.py`` の位置は以下のように表すことができます。
* 例:
* ``/home/USERNEME/Downloads/IP2022/hello.py``
* ``C:\Users\USERNAME\Downloads\IP2022/hello.py``
作業ディレクトリを起点として表現する :term:`相対パス` も参照。
.. code-block:: text
:name: example of directory tree (POSIX) for glossary
:caption: ディレクトリ木構造の例 (POSIX)
/
+ home
+ USERNAME
+ Downloads
+ IP2022
+ hello.py
+ hello.c
+ IP2022.zip
.. code-block:: text
:name: example of directory tree (Windows) for glossary
:caption: ディレクトリ木構造の例 (Windows)
C:
+ Users
+ USERNAME
+ Downloads
+ IP2022
+ hello.py
+ hello.c
+ IP2022.zip
home directory
ホームディレクトリ
マルチユーザー環境の OS で各ユーザーに割り当てられる最上位のディレクトリ。
POSIX では ``/home/USERNAME`` 、Windows では ``C:\Users\USERNAME`` が標準。
このディレクトリ以下に、ユーザー毎の所有ファイルを保存する。
通常、CLI 環境起動直後の作業ディレクトリはホームディレクトリとなるが、
WSL では起動方法によっては別の場所が作業ディレクトリになっている場合もある。
bash では ``~`` をホームディレクトリの短縮表記として使える。
また ``cd`` コマンドをパラメータなしで実行すると、ホームディレクトリへ移動出来る。
locale
ロケール
用いる言語や地域、文字コード情報等の設定情報です。
英語(English)、アメリカ(United States)、UTF-8 形式の UNICODE を用いるなら ``en_US.UTF-8``、
日本語(Japanese)、日本(Japan)、UTF-8 形式の UNICODE を用いるなら ``ja_JP.UTF8`` のようになります。
mode bit
モードビット
所有者、グループ、その他のユーザーへの
ファイルの読み込み (r: read)、書き込み (w: write)、実行 (x: execute)権限等の付与状況を示します。
`ls`_ コマンド に ``-l`` オプションを付ける事で確認出来、
`chmod`_ コマンドで変更できます。
regex
regexp
regular expression
正規表現
テキスト検索の際、一般的に用いられる表現方法の一つ。
検索対象が満たすべきパターンを一種の状態遷移として記述することで、
柔軟な検索を可能とします。
今日の様々なプログラミング言語においては、
テキスト処理を行う際の必須ツールと言っても過言ではないでしょう。
更なる詳細については検索に委ねるので、以下を参照してください。
* Google : `正規表現 `__
relative path
relative path name
相対パス
相対パス名
目的のファイルやフォルダの位置を表すための表記法。
作業ディレクトリから順にディレクトリを辿ることで、目的のファイルやフォルダの位置を示します。
パス区切り文字は、:term:`絶対パス` と同じです。
現在のディレクトリは ``.``、現在のディレクトリの上位に位置するディレクトリ(つまりは内包するディレクトリ)は ``..`` で表します。
:numref:`example of directory tree (POSIX) for glossary` や :numref:`example of directory tree (Windows) for glossary` のようなディレクトリの木構造があって、
ディレクトリ :file:`IP2022` で作業していた場合、
:file:`IP2022.zip` の位置は以下のように表すことができます。
* 例:
* ``../IP2022.zip``
* ``..\IP2022.zip``
:term:`ルートディレクトリ` を起点として表現する :term:`絶対パス` も参照。
current directory
working directory
カレントディレクトリ
作業ディレクトリ
現在作業をしているディレクトリを指します。
ファイルやフォルダの位置を :term:`相対パス` (:term:`relative path`) で
記述する差異の起点となります。
``.`` は作業ディレクトリを意味します。
POSIX 環境ではセキュリティ上の理由から、
コマンドの実行時の実行ファイル検索パスに作業ディレクトリは含まれません。
作業ディレクトリにある実行ファイルをコマンドとして実行する際は、
実行ファイル名の前に ``./`` を付与する必要があります。
UNC (Universal Naming Convention)
Google 検索 : `UNC `__
ネットワーク上の資源を表すためのアドレス表記法。
``//HOSTNAME/path...`` の形式で表現する。
.. _ls: https://linuxjm.osdn.jp/html/gnumaniak/man1/ls.1.html
.. _chmod: https://linuxjm.osdn.jp/html/GNU_fileutils/man1/chmod.1.html