Linux Professional Institute Learning Logo.
main contentにスキップ
  • ホーム
    • 全てのリソース
    • LPI学習教材
    • コントリビューターになる
    • Publishing Partners
    • Publishing Partnerになる
    • About
    • FAQ
    • コントリビューター
    • Roadmap
    • 連絡先
  • LPI.org
3.1 レッスン 1
課題 1: Linuxコミュニティとオープンソースのキャリア
1.1 ポピュラーなOSとLinuxの発展
  • 1.1 レッスン 1
1.2 主なオープンソースのアプリケーション
  • 1.2 レッスン 1
1.3 オープンソースソフトウエアとライセンス
  • 1.3 レッスン 1
1.4 ICTスキルとLinuxでの作業
  • 1.4 レッスン 1
課題 2: Linuxシステムで自分の手法を見つける
2.1 コマンドラインの基本
  • 2.1 レッスン 1
  • 2.1 レッスン 2
2.2 コマンドラインのヘルプ機能の利用
  • 2.2 レッスン 1
2.3 ディレクトリの利用とファイルの一覧
  • 2.3 レッスン 1
  • 2.3 レッスン 2
2.4 ファイルの作成、移動と削除
  • 2.4 レッスン 1
課題 3: コマンドラインの力
3.1 コマンドラインでのファイル圧縮
  • 3.1 レッスン 1
3.2 ファイルの検索と展開
  • 3.2 レッスン 1
  • 3.2 レッスン 2
3.3 コマンドをスクリプトにする
  • 3.3 レッスン 1
  • 3.3 レッスン 2
課題 4: Linuxオペレーティングシステム
4.1 オペレーティングシステムの選択
  • 4.1 レッスン 1
4.2 コンピュータハードウエアの理解
  • 4.2 レッスン 1
4.3 データの保管場所
  • 4.3 レッスン 1
  • 4.3 レッスン 2
4.4 ネットワーク上のコンピュータ
  • 4.4 レッスン 1
課題 5: セキュリティとファイルパーミッション
5.1 セキュリティの基本と、ユーザタイプの確認
  • 5.1 レッスン 1
5.2 ユーザとグループの作成
  • 5.2 レッスン 1
5.3 ファイルのパーミッションと所有権の管理
  • 5.3 レッスン 1
5.4 特別なディレクトリとファイル
  • 5.4 レッスン 1
How to get certified
  1. 課題 3: コマンドラインの力
  2. 3.1 コマンドラインでのファイル圧縮
  3. 3.1 レッスン 1

3.1 レッスン 1

Certificate:

Linux Essentials

Version:

1.6

Topic:

3 コマンドラインの力

Objective:

3.1 コマンドラインでファイルをアーカイブする

Lesson:

1 of 1

はじめに

データセットが消費する容量を減らすために、圧縮を使用します。つまり、ファイルを保存するのに必要な容量を減らことが最も一般的な目的です。また、ネットワーク経由で送信するデータの量を減らすことも目的のひとつです。

圧縮は、データ内に繰り返し現れるパターンを置き換えることで行われます。小説があるとしましょう。“the” のように、複数の文字から成る単語が頻繁に使われています。このような複数文字から成る単語やパターンを、1文字で置き換えれば、小説全体のサイズを大幅に縮小することができます。例えば、“the” を他では使用されていないギリシャ文字1つで置き換えます。データ圧縮には、これに似たもっともっと複雑なアルゴリズムが使われています。

圧縮には、可逆圧縮(ロスレス)と 非可逆圧縮 (ロッシー)の2種類があります。可逆アルゴリズムで圧縮されたものは、元の形に復元できます。非可逆アルゴリズムで圧縮されたデータは復元できません。非可逆アルゴリズムは、画像、ビデオ、オーディオなどによく使用されます。この場合、内容は同じままで品質がわずかに低下しますが、劣化は人間には知覚できないか、あるいは節約された容量やネットワークスループットに見合うものです。

複数のファイルやディレクトリを1つのファイルにまとめるために、アーカイブツールを使用します。一般的には、バックアップ、ソフトウェアソースコードや、データなどの取りまとめといった用途に使われます。

アーカイブと圧縮は同時に使用することが多いものです。一部のアーカイブツールは、デフォルトでコンテンツを圧縮します。またあるものは、オプションでコンテンツを圧縮できます。いくつかのアーカイブツールで、コンテンツを圧縮する場合は独立した圧縮ツールと組み合わせて使用するものもあります。

Linuxシステムでファイルをアーカイブするためには、tar を最も一般的に使用します。ほとんどのLinuxディストリビューションには、GNU版の tar が含まれているため、それをこのレッスンで取り上げます。tar は、それ自体ではファイルのアーカイブのみを管理し、ファイルの圧縮は行いません。

Linuxではたくさんの圧縮ツールが利用できます。可逆圧縮の一般的なものとして、bzip2、gzip、および xz があります。ほとんどのシステムには3つすべてが搭載されていますが、古いシステムや非常に小さなシステムなどには、xz や bzip2 がインストールされていないこともあります。普通にLinuxを使っていると、これら3種すべてがファイルを圧縮するために使われていることに気づくでしょう。 3つとも異なるアルゴリズムを使用しているため、あるツールで圧縮されたファイルを別のツールで伸張することはできません。圧縮ツールにはトレードオフがあります。高い圧縮率が必要な場合は、ファイルの圧縮と伸張に時間がかかります。なぜなら、圧縮率を高めるためには、複雑なパターンを見つけるために多くの作業が必要になるからです。これらのツールはすべて、データを圧縮しますが、複数のファイルをまとめたアーカイブを作成することはできません。

普通のWindowsシステムには、単体の圧縮ツールが備わっていません。Windowsでは、アーカイブツールと圧縮ツールは1つに組み合わされています。LinuxシステムとWindowsシステムの間でファイルを共有する必要がある場合は、これを覚えておきましょう。

Linuxシステムには、Windowsシステムで一般的に使用される .zip ファイルを処理するためのツールも備わっていて、zip および unzip と呼ばれます。これらのツールはすべてのシステムにデフォルトでインストールされるわけではないので、使う前にインストールしなくてはいけないことがあります。幸いなことに、通常はディストリビューションのパッケージリポジトリに、これらのツールがあります。

圧縮ツール

ファイルの圧縮によって節約されるディスク容量は、いくつかの要因によって異なります。圧縮するデータの性質、データの圧縮に使用するアルゴリズムと圧縮レベルなどです。アルゴリズムによっては、圧縮レベルをサポートしていないものもあります。

圧縮するテストファイルの準備から始めましょう:

$ mkdir ~/linux_essentials-3.1
$ cd ~/linux_essentials-3.1
$ mkdir compression archiving
$ cd compression
$ cat /etc/* > bigfile 2> /dev/null

これらのファイルのコピーを3つ作ります:

$ cp bigfile bigfile2
$ cp bigfile bigfile3
$ cp bigfile bigfile4
$ ls -lh
total 2.8M
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile2
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile3
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile4

さぁ、これらのファイルを前述の圧縮ツールで圧縮してみましょう:

$ bzip2 bigfile2
$ gzip bigfile3
$ xz bigfile4
$ ls -lh
total 1.2M
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile
-rw-r--r-- 1 emma emma 170K Jun 23 08:08 bigfile2.bz2
-rw-r--r-- 1 emma emma 179K Jun 23 08:08 bigfile3.gz
-rw-r--r-- 1 emma emma 144K Jun 23 08:08 bigfile4.xz

圧縮ファイルのサイズを、bigfile という名前の非圧縮ファイルと比較します。また、圧縮ツールがファイル名にサフィックスを追加し、非圧縮ファイルを削除したことにも注意してください。

bunzip2、gunzip、unxz を使って、ファイルを伸張します:

$ bunzip2 bigfile2.bz2
$ gunzip bigfile3.gz
$ unxz bigfile4.xz
$ ls -lh
total 2.8M
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile2
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile3
-rw-r--r-- 1 emma emma 712K Jun 23 08:20 bigfile4

伸張すると圧縮ファイルが削除されることにも注意しましょう。

一部の圧縮ツールは、いくつかの圧縮レベルをサポートしています。圧縮レベルを高くするとより多くのメモリと実行時間が必要になりますが、圧縮ファイルは小さくなります。低いレベルでは逆になります。以下に xz と gzip を使った例を示します:

$ cp bigfile bigfile-gz1
$ cp bigfile bigfile-gz9
$ gzip -1 bigfile-gz1
$ gzip -9 bigfile-gz9
$ cp bigfile bigfile-xz1
$ cp bigfile bigfile-xz9
$ xz -1 bigfile bigfile-xz1
$ xz -9 bigfile bigfile-xz9
$ ls -lh bigfile bigfile-* *
total 3.5M
-rw-r--r-- 1 emma emma 712K Jun 23 08:08 bigfile
-rw-r--r-- 1 emma emma 205K Jun 23 13:14 bigfile-gz1.gz
-rw-r--r-- 1 emma emma 178K Jun 23 13:14 bigfile-gz9.gz
-rw-r--r-- 1 emma emma 156K Jun 23 08:08 bigfile-xz1.xz
-rw-r--r-- 1 emma emma 143K Jun 23 08:08 bigfile-xz9.xz

ファイルを使用するたびに、伸張する必要はありません。通常、圧縮ツールにはテキストファイルを読み出すための特別なバージョンのツールが用意されています。たとえば、gzip には、cat、grep、diff、less、more などに相当するバージョンがあります。gzip の場合、それらのツールには接頭辞(プレフィックス)z が付き、bzip2 には接頭辞 bz、xz には接頭辞 xz がつきます。zcat を使って、gzip で圧縮されたファイルを読み取って表示する例を示します:

$ cp /etc/hosts ./
$ gzip hosts
$ zcat hosts.gz
127.0.0.1	localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

アーカイブツール

tar プログラムは、Linux システムで最も広く使われているアーカイブツールです。なぜそのような名前がついているのか不思議に思うかもしれませんが、これは “テープアーカイブ” (Tape ARchive)の略で、tar で作成されたファイルを tarボール と呼ぶことがあります。ソースコードで配布されているアプリケーションが、 tar ボールに入っていることはとても一般的です。

Linuxディストリビューションに同梱されているGNUバージョンの tar には、多くのオプションがあります。このレッスンでは、よく使われる一部について説明します。

まず、圧縮に使用するファイルのアーカイブを作成しましょう:

$ cd ~/linux_essentials-3.1
$ tar cf archiving/3.1.tar compression

tar の c オプションは新しいアーカイブファイルの作成を指示し、f オプションは作成するファイルの名前です。オプションの直後の引数は、常に作業するファイルの名前になります。 残りの引数は、ファイルに追加したいか、ファイルから抽出したい、あるいは一覧表示したい、ファイルやディレクトリへのパスです。この例では、ディレクトリ compression とそのすべての内容をアーカイブに追加しています。

tarボールの内容を見るには、t オプションを使います:

$ tar -tf 3.1.tar
compression/
compression/bigfile-xz1.xz
compression/bigfile-gz9.gz
compression/hosts.gz
compression/bigfile2
compression/bigfile
compression/bigfile-gz1.gz
compression/bigfile-xz9.xz
compression/bigfile3
compression/bigfile4

オプションの前に - があることに着目しましょう。ほとんどのプログラムとは異なり、tar ではオプションに - を指定する必要はありませんが、あっても害にはなりません。

Note

-v オプションを使用すると、アーカイブの作成や展開時に、tar が操作しているファイルの名前を出力することができます。

では、ファイルを取り出してみましょう:

$ cd ~/linux_essentials-3.1/archiving
$ ls
3.1.tar
$ tar xf 3.1.tar
$ ls
3.1.tar  compression

アーカイブから1つだけファイルを取り出したいとしましょう。その場合、アーカイブのファイル名の後に、取り出すファイルを指定します。必要があれば複数のファイルを指定することもできます。

$ cd ~/linux_essentials-3.1/archiving
$ rm -rf compression
$ ls
3.1.tar
$ tar xvf 3.1.tar compression/hosts.gz
compression/
compression/bigfile-xz1.xz
compression/bigfile-gz9.gz
compression/hosts.gz
compression/bigfile2
compression/bigfile
compression/bigfile-gz1.gz
compression/bigfile-xz9.xz
compression/bigfile3
compression/bigfile4
$ ls
3.1.tar  compression
$ ls compression
hosts.gz

tar ファイルには、絶対パス( / で始まるパス)を除いて、作成時のファイルへのパス全体が格納されます。単一のディレクトリのみを指定してファイル 3.1.tar を作成したので、抽出時には作業ディレクトリに相対でそのディレクトリが作成されます。別の例で、これを見てみましょう:

$ cd ~/linux_essentials-3.1/archiving
$ rm -rf compression
$ cd ../compression
$ tar cf ../tar/3.1-nodir.tar *
$ cd ../archiving
$ mkdir untar
$ cd untar
$ tar -xf ../3.1-nodir.tar
$ ls
bigfile   bigfile3  bigfile-gz1.gz  bigfile-xz1.xz  hosts.gz
bigfile2  bigfile4  bigfile-gz9.gz  bigfile-xz9.xz
Tip

tar ファイルで絶対パスを使用したい場合は、P オプションを指定します。これにより、(展開時に)重要なファイルが上書きされ、システムでエラーが発生する可能性があることに注意してください。

tar プログラムは、アーカイブの圧縮と伸張を同時に実行することもできます。tar は、このセクションで説明した圧縮ツールの1つを呼び出すことで、これを行います。圧縮アルゴリズムを選択するオプションを指定するだけの簡単なことです。最も一般的に使用されるのは、j、J、z オプションが、それぞれ bzip2、xz、gzip に対応します。以下に、それぞれのアルゴリズムを使用した例を示します:

$ cd ~/linux_essentials-3.1/compression
$ ls
bigfile   bigfile3  bigfile-gz1.gz  bigfile-xz1.xz  hosts.gz
bigfile2  bigfile4  bigfile-gz9.gz  bigfile-xz9.xz
$ tar -czf gzip.tar.gz bigfile bigfile2 bigfile3
$ tar -cjf bzip2.tar.bz2 bigfile bigfile2 bigfile3
$ tar -cJf xz.tar.xz bigfile bigfile2 bigfile3
$ ls -l | grep tar
-rw-r--r-- 1 emma emma  450202 Jun 27 05:56 bzip2.tar.bz2
-rw-r--r-- 1 emma emma  548656 Jun 27 05:55 gzip.tar.gz
-rw-r--r-- 1 emma emma  147068 Jun 27 05:56 xz.tar.xz

この例では、.tar ファイルのサイズが異なることに注意しましょう。それらが正常に圧縮されたことを示しています。圧縮された .tar アーカイブを作成する場合、使用したアルゴリズムを示す2番目のサフィックスを追加するのが普通です。それぞれが xz、bzip2、gzip を示す、.xz、.bz、.gz です。.tgz などの短縮されたサフィックスが使用されることもあります。

u オプションを使用すると、既存の圧縮されていないtarアーカイブにファイルを追加することができます。圧縮されたアーカイブに追加しようとすると、エラーになります。

$ cd ~/linux_essentials-3.1/compression
$ ls
bigfile   bigfile3  bigfile-gz1.gz  bigfile-xz1.xz  bzip2.tar.bz2  hosts.gz
bigfile2  bigfile4  bigfile-gz9.gz  bigfile-xz9.xz  gzip.tar.gz    xz.tar.xz
$ tar cf plain.tar bigfile bigfile2 bigfile3
$ tar tf plain.tar
bigfile
bigfile2
bigfile3
$ tar uf plain.tar bigfile4
$ tar tf plain.tar
bigfile
bigfile2
bigfile3
bigfile4
$ tar uzf gzip.tar.gz bigfile4
tar: Cannot update compressed archives(訳: 圧縮されたアーカイブを更新することはできません)
Try 'tar --help' or 'tar --usage' for more information.

ZIPファイルの操作

デフォルトのWindowsマシンには、Linuxシステムでは一般的なtarボールを処理するアプリケーションや圧縮ツールがありません。 Windowsシステムとやりとりする場合には、ZIPファイルを使用します。 ZIPファイルは、圧縮された tar ファイルと同様のアーカイブファイルです。

LinuxシステムでZIPファイルを扱うには、zip と unzip プログラムを使います。 以下の例では、これらの基本的な使い方を説明します。 まず、一連のファイルを作成します。

$ cd ~/linux_essentials-3.1
$ mkdir zip
$ cd zip/
$ mkdir dir
$ touch dir/file1 dir/file2

では、ZIPファイルにこれらのファイルを収納しましょう:

$ zip -r zipfile.zip dir
  adding: dir/ (stored 0%)
  adding: dir/file1 (stored 0%)
  adding: dir/file2 (stored 0%)
$ rm -rf dir

続いて、ZIPファイルをほどきます:

$ ls
zipfile.zip
$ unzip zipfile.zip
Archive:  zipfile.zip
   creating: dir/
 extracting: dir/file1
 extracting: dir/file2
$ find
.
./zipfile.zip
./dir
./dir/file1
./dir/file2

ZIPファイルにディレクトリを追加する場合、-r オプションを指定すると、zip はディレクトリの内容も含めて格納します。-r を指定しないと、空のディレクトリのみがZIPファイルに収められます。

演習

  1. サフィックスから判断して、ファイルを作成するのに使用したツールはどれですか?

    ファイル名 tar gzip bzip2 xz

    archive.tar

    archive.tgz

    archive.tar.xz

  2. サフィックスから判断して、アーカイブされているか、圧縮されているかを示しましょう。

    ファイル名 アーカイブ 圧縮

    file.tar

    file.tar.bz2

    file.zip

    file.xz

  3. gzip で圧縮された tar ファイルに、1つのファイルを追加するにはどうしますか?

  4. tar に絶対パスの先頭の / を含めるように指示するオプションは何ですか?

  5. zip は圧縮レベルをサポートしていますか?

発展演習

  1. tar でファイルを取り出すときに、ファイル一覧に対してグロブを使用することはできますか?

  2. 伸張されたファイルが圧縮前のファイルと同じであることを確認するにはどうすればよいですか?

  3. tar アーカイブから、ファイルシステム上に既存のファイル取り出すとどうなりますか?

  4. tar の z オプションを使用せずに、ファイル archive.tgz を展開するにはどうしますか?

まとめ

Linuxシステムには、いくつかの圧縮およびアーカイブのツールが用意されています。このレッスンでは、最も一般的なものを取り上げました。最も一般的なアーカイブツールは tar です。Windowsシステムとのやりとりが必要な場合は、zip および unzip を使ってZIPファイルを作成および展開できます。

tar コマンドには、覚えておくべきオプションがいくつかあります。抽出(展開)の x、作成の c、内容を見る場合の t、ファイルを追加または置換する場合の u です。v オプションは、アーカイブの作成または展開時に、tar が処理しているファイルを表示します。

ほとんどのLinux ディストリビューションのリポジトリには、多くの圧縮ツールがあります。最も一般的なものは、gzip、bzip2、xz です。圧縮アルゴリズムによっては、速度やファイルサイズを最適化するための圧縮レベルを指定できます。圧縮されたファイルは、それぞれ gunzip、bunzip2、unxz で伸張できます。

圧縮ツールには、圧縮ファイルごとに異なりますが、多くのテキストファイルツールと同様に動作するプログラムが含まれています。zcat、bzcat、xzcat などです。これらの圧縮ツールは通常、 grep、more、less、diff、cmp などと同様に使用できます。

演習で使用したコマンド:

bunzip2

bzip2 で圧縮されたファイルを伸張します。

bzcat

bzip で圧縮されたファイルの内容を出力します。

bzip2

bzip2 アルゴリズムとフォーマットで、ファイルを圧縮します。

gunzip

gzip で圧縮されたファイルを伸張します。

gzip

gzip アルゴリズムとフォーマットで、ファイルを圧縮します。

tar

tar アーカイブを作成、更新、内容一覧、展開します。

unxz

xz で圧縮されたファイルを伸張します。

unzip

ZIPファイルから内容を伸張して取り出します。

xz

xz アルゴリズムとフォーマットで、ファイルを圧縮します。

zcat

gzip で圧縮されたファイルの内容を出力します。

zip

ZIPアーカイブを作成、圧縮します。

演習の解答

  1. サフィックスから判断して、ファイルを作成するのに使用したツールはどれですか?

    ファイル名 tar gzip bzip2 xz

    archive.tar

    ○

    archive.tgz

    ○

    ○

    archive.tar.xz

    ○

    ○

  2. サフィックスから判断して、アーカイブされているか、圧縮されているかを示しましょう。

    ファイル名 アーカイブ 圧縮

    file.tar

    ○

    file.tar.bz2

    ○

    ○

    file.zip

    ○

    ○

    file.xz

    ○

  3. gzip で圧縮された tar ファイルに、1つのファイルを追加するにはどうしますか?

    gunzip でファイルを伸張し、tar uf でファイルを追加し、gzip でそれを再度圧縮します。

  4. tar に絶対パスの先頭の / を含めるように指示するオプションは何ですか?

    -P オプションです。マニュアルに以下のように書かれています:

    -P, --absolute-names
            Don't strip leading slashes from file names when creating  archives
           (訳: アーカイブ作成時にファイル名から先頭のスラッシュを取り除きません)
  5. zip は圧縮レベルをサポートしていますか?

    サポートしています。-# の # を0から9の数字で置き換えます。マニュアルに次のように書かれています:

    -#
    (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
           # に数字を指定することで、圧縮の速度を調整します。
           -0は、圧縮しない(ファイルがそのまま格納される)ことを、
           -1は最も高速で少ない圧縮を、-9は最も低速で多くの圧縮を、
           それぞれ意味します。デフォルトの圧縮レベルは6です。
    
           すべての圧縮方法について圧縮速度を制御することを意図して
           いますが、作業中です。現在は、引き下げのみが機能します。

発展演習の解答

  1. tar でファイルを取り出すときに、ファイル一覧に対してグロブを使用することはできますか?

    --wildcards オプションでできます。オプション指定にハイフンを使わない形式の場合、--wildcards を tar ファイルの次に指定する必要があります。例を示します:

    $ tar xf tarfile.tar --wildcards dir/file*
    $ tar --wildcards -xf tarfile.tar dir/file*
  2. 伸張されたファイルが圧縮前のファイルと同じであることを確認するにはどうすればよいですか?

    このレッスンで取り上げたツールを使って何かをする必要はありません。取り上げた3つのツールは、ファイルの中にチェックサムを埋め込んでいて、伸張時に確認されます。

  3. tar アーカイブから、ファイルシステム上に既存のファイル取り出すとどうなりますか?

    ファイルシステム上にあるファイルが、tar ファイルにあるものによって上書きされます。

  4. tar の z オプションを使用せずに、ファイル archive.tgz を展開するにはどうしますか?

    まず、gunzip で伸張します。

    $ gunzip archive.tgz
    $ tar xf archive.tar

Linux Professional Insitute Inc. All rights reserved. 学習資料をご覧ください: https://learning.lpi.org
ここでの作成物は、Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Licenseの下でライセンスされています。

次のレッスン

3.2 ファイルの検索と展開 (3.2 レッスン 1)

次のレッスンを読む

Linux Professional Insitute Inc. All rights reserved. 学習資料をご覧ください: https://learning.lpi.org
ここでの作成物は、Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Licenseの下でライセンスされています。

LPIは非営利団体です。

© 2023 Linux Professional Institute(LPI)は、オープンソースプロフェッショナル向けのグローバルな認定基準およびキャリアサポート組織です。200,000人以上の認定保持者を擁する、世界初かつ最大のベンダー中立Linuxおよびオープンソース認定機関です。LPIは180か国以上で認定プロフェッショナルを擁し、複数の言語で試験を実施し、何百ものトレーニングパートナーを擁しています。

私たちの目的は、オープンソースの知識とスキルの認定資格を世界中からアクセスできるようにすることで、誰にとっても経済的で創造的な機会を可能にすることです。

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • お問い合わせ
  • 個人情報とCookieポリシー

間違いを見つけたり、このページを改善したいですか? 私たちに知らせてください。.

© 1999–2023 The Linux Professional Institute Inc. All rights reserved.