序章
ユニバーサル一意識別子(UUID)は、作成されたローカルシステムだけでなく、過去および将来の他のシステムで作成されたUUIDの中で一意であると認められる128ビットの数値です。 それらの独自性により、自動インクリメントされた主キーが不足する可能性がある状況で役立ちます。
UUIDは独自性があるため、テストデータの生成に適しています。 ランダムな文字列が必要ですか? UUIDは問題ありません。 メールはどうですか? UUID@UUID.com
素晴らしいです。 ランダムな文字列の束が必要ですか? UUIDは一意であるため、システム内を移動するときにUUIDを簡単に追跡できます。
コマンドラインインターフェイスからユニバーサル一意識別子を生成するには、 uuidgen
効用、
このチュートリアルでは、 uuidgen
UUIDといくつかのサンプルデータを生成するためのいくつかのシェルスクリプト。
UUIDの生成
The uuidgen
コマンドは、LinuxやmacOSなどのUnixライクなオペレーティングシステムにすでにインストールされていることがよくあります。 そうでない場合は、パッケージマネージャーからインストールできます。 UbuntuおよびDebianシステムでは、 uuid-runtime
パッケージ。
まず、を使用してシステムの利用可能なパッケージのリストを更新します apt update
指図:
- sudo apt update
次に、 uuid-runtime
を使用したパッケージ apt
パッケージマネージャー:
- sudo apt install uuid-runtime
単一のUUIDを生成するには、 uuidgen
引数なしのコマンド。 箱から出して、 uuidgen
実行するたびにランダムなUUIDを生成します。
端末で次のコマンドを実行します。
- uuidgen
UUIDは異なりますが、次のような出力が表示されます。
Outputa522f494-92ce-44e9-b1a3-f891baed8d60
注:macOSバージョンの uuidgen
Linuxバージョンとは少し異なる機能を果たします。つまり、すべて大文字でUUIDを返します。
時間ベースおよびハッシュベースのUUIDを生成することもできますが、一般的には、ほとんどの場合、ランダムな値で十分です。
一度に複数のUUIDを生成したい場合があります。これについては、次に説明します。
複数のUUIDの生成
一度に多数のUUIDを生成するには、 for
を実行するためのループ uuidgen
複数回コマンドします。
たとえば、10個のUUIDを生成するには、次のコマンドを実行します。
- for i in {1..10}; do uuidgen; done
画面に10個のUUIDが出力されます。
Output834efdb6-6044-4b44-8fcb-560710936f37
e8fa8d54-641a-4d7b-9422-91474d713c62
dff59ac0-4d80-4b96-85c4-14f3a118e7fe
511fea83-9f5f-4606-85ec-3d769da4bf63
3bc82ef7-1138-4f97-945a-08626a42a648
a33abc11-264e-4bbb-82e8-b87226bb4383
2a38839e-3b0d-47f0-9e60-d6b19c0978ad
74dca5e8-c702-4e70-ad16-0a16a64d55fa
cd13d088-21cf-4286-ae61-0643d321dd9e
9aec3d5a-a339-4f24-b5a3-8419ac8542f2
あなたは交換することができます 10
あなたが望む数のために出てください。
UUIDの固有の性質に基づいて、生成されたデータの重複について心配する必要はありません。 次に、さまざまな方法でUUIDを使用する方法を見てみましょう。
テストデータでのUUIDの使用
1行に2つのUUIDを含むコンマ区切り値(CSV)のリストを生成する場合は、 echo
の各反復中に2つのUUIDを出力するコマンド for
ループ。 次のコマンドを実行します。
- for i in {1..10}; do echo `uuidgen`,`uuidgen`; done
次の出力が得られます。
Output63b1146f-9e7c-4e1f-82eb-3fe378e203df,ed9d6201-e5b2-4410-9ab1-35c8ca037994
8d3981b6-f112-4f21-ac4b-44791e279b2a,eb63310e-d436-44fa-80c6-65721a300a2b
0eddfe24-1c2e-43a1-b2c2-9d3af6bad837,62ef1782-76a2-4b3c-ac69-1c2d02f65789
29f18766-fc9d-46a4-a1d0-e112738edb30,b6bd303d-1148-4f46-bec7-d7e4cb6e4f03
865bcf30-6a8b-49d6-8b27-8dc51620adf7,972b0959-4270-4683-b19b-360b2605f2d0
0d82d54b-566a-45d1-b3a8-5da1a88bceb3,1c67a802-9647-46b1-bde4-3053699b27f9
778b5415-3e1f-4bc5-a349-499459ac4ab7,7e1a2081-c742-4882-9154-e5d2a4af630c
e6cc95bd-3ee1-43cb-bea1-51783de5fc57,5088d3a3-ab67-4684-8761-e48bb14596ec
a7453bc0-b5e5-41a3-9ed4-cf4d8e0908a2,957ef50f-7889-4335-9f40-17878e3d20fe
3689362d-588a-409e-bd2c-d6fdaa361574,9ffe7c8d-9afb-4b24-a5b7-b29a06f6fac7
同じアプローチを使用して、メールアドレスを少し調整することで、メールアドレスのようなデータを生成できます。 echo
声明:
- for i in {1..10}; do echo `uuidgen`@`uuidgen`.com; done
次の出力が表示されます。
Output7dd44050-9df4-43aa-b3b4-3b47eff8fc31@3052e93c-95d1-40f5-b468-3d4e06dd208b.com
cca71187-f666-46ff-81c6-eb3b72ff6972@30f4c9a8-712e-4f4c-ad3a-4b55ef85eee0.com
6ff086ad-493d-4b3a-8ed1-970239d7125b@8302d772-4deb-43d1-8901-0a3b4f747b55.com
f9813daa-6a8e-4543-8708-d42cefdda20a@d586854c-7df9-4046-89f8-51f960973afb.com
a7e9e43b-d2b1-4415-b73d-ff72b713e45f@a7c56c2c-df25-44bc-872d-a893f750b54d.com
0d1d13fe-777d-44d8-b1b2-302ca1e48aa1@7c2d8e6a-fa8b-4fa3-a0ef-8360aa42e730.com
f85d0772-22d2-43d0-8d71-4e6714c2bb20@fb4f74fe-f9f9-4e86-b31d-f148344a97e0.com
f46eb868-0a99-4291-98f2-19d95f1e9fbb@37ef072d-c515-4145-8b8a-edf32ec18bd2.com
eaa4a63e-2646-427a-a892-f8027c2791ed@33daf102-2b5b-4070-88c5-261fe5d96cfa.com
d75f6720-b249-4395-bcc7-9ffe2b67cabb@457b04b4-3c15-4b77-aae2-9afd6803bcfe.com
これらは検証できる実際のメールアドレスではありませんが、出力をもう一度微調整して、2番目のアドレスを入れ替えることができます uuidgen
[ mailinator.com ]( https://mailinator.com ]のような使い捨てのメールアドレスドメインの場合、リアルなデータのリストだけでなく、テストで実際に使用または監視できるメールアドレスのリストになります。 次のコマンドを試してください。
- for i in {1..10}; do echo `uuidgen`@mailinator.com; done
今回は、次のような出力が表示されます。
Output4ba50929-520b-49f7-996d-e369be5d6232@mailinator.com
16deaeae-64bd-45f0-9f73-b32d41ca1bfb@mailinator.com
743701e8-0dc5-4851-8fc4-24d155755bdc@mailinator.com
adff0015-c535-431a-970f-98ffd1fc21eb@mailinator.com
6516fcb3-e54f-4800-a6cc-11d50d756f28@mailinator.com
8a9c5252-bd0c-4c3b-a7c9-4b60ebcc4294@mailinator.com
eed94fd6-b075-493c-8d8e-3acae90d5629@mailinator.com
f4ab80d2-85ca-4722-a260-0f84c37051fd@mailinator.com
53ead1d0-cc70-410f-a91a-4a79b339fba2@mailinator.com
b208e103-d7f1-4f6d-838d-530d6339dce7@mailinator.com
最後に、このコマンドの出力をファイルに保存するために、次のコマンドを追加できます。 > /path/to/some/file
出力をパイプするには:
- for i in {1..10}; do echo `uuidgen`@mailinator.com; done > /tmp/emails.txt
次に、 cat
作成したファイルを表示するコマンド:
- cat /tmp/emails.txt
ファイルが画面に表示されます。
Output826119d2-f590-4fa3-ba7e-0717869d40b1@mailinator.com
795fec1a-76fe-4fed-8a06-ed517c1a5e7d@mailinator.com
14a502ad-0aa9-40e5-a46f-5806264b5316@mailinator.com
c6c2a588-7cce-4675-a490-0101d7bcc614@mailinator.com
7346c15b-0c92-44c4-a854-5de18c0c202d@mailinator.com
c67a535a-e28d-43b1-b553-c203bc22a821@mailinator.com
76d22d18-0f09-405d-9903-eb44ec93b605@mailinator.com
2b631756-21e6-4d95-873b-3245797f9028@mailinator.com
aab686e8-540e-43e9-9e24-ca04fbf4d414@mailinator.com
a577e9c9-0ad1-4934-b5f1-17b68938fff8@mailinator.com
同じアプローチを使用して、このチュートリアルの他の例をファイルに保存できます。
結論
ユニバーサル一意識別子は、ランダムな数値よりも堅牢です。 それらの独自性により、非常に強力になります。 コマンドラインインターフェイスのいくつかのライトシェルスクリプトと組み合わせると、お気に入りのプログラミング言語のパッケージリポジトリをロードすることなく、有用なデータを生成できます。
次回UUIDが必要になったときは、「オンラインUUIDジェネレーター」の検索を保存して、システムの uuidgen
指図。 システムの特定の実装について詳しく知るには uuidgen
、 タイプ man uuidgen
ターミナルでドキュメントを表示するには…