<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hikyae</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hikyae"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Hikyae"/>
	<updated>2026-04-12T02:09:39Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Nushell&amp;diff=41326</id>
		<title>Nushell</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Nushell&amp;diff=41326"/>
		<updated>2026-02-11T17:04:37Z</updated>

		<summary type="html">&lt;p&gt;Hikyae: 解説内でもmath sumに合わせる&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:コマンドラインシェル]]&lt;br /&gt;
[[en:Nushell]]&lt;br /&gt;
[https://www.nushell.sh/ nushell]は、新しいタイプのシェルです。配列、テーブル、レコード、数値/ブール型などの構造化・型付けされたデータをネイティブにサポートし、シェルのようなワークフローで様々なデータ型の問い合わせ、フィルタ、ソート、変換、その他の操作を容易にする構文とビルトインを提供し、多くのビルトインまたはユーザー定義フォーマットでの入力と出力をサポートします。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|nushell}} パッケージを[[インストール]]します。&lt;br /&gt;
&lt;br /&gt;
== 機能概要 ==&lt;br /&gt;
&lt;br /&gt;
=== 構造化データのサポート === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; のビルトインは複雑なデータ型を理解し出力します。例えば、{{ic|ls}} ビルトインは、{{ic|name}}, {{ic|size}}, {{ic|type}} という属性を持つファイルを表す項目の配列を出力する。({{ic|file}}, {{ic|dir}}, {{ic|symlink}}, etc.), {{ic|modified}} などの属性を持ちます。&lt;br /&gt;
&lt;br /&gt;
また、従来のシェルのようにテキストとしてではなく、データとして問い合わせたり操作したりするためのビルトインが多数提供されており、シェルらしいワークフローが実現されている。例えば、{{ic|where}} ビルトインは、配列やテーブルの中身をフィルタリングすることができます：&lt;br /&gt;
&lt;br /&gt;
 $ ls | where type == file and size &amp;gt; 10mb&lt;br /&gt;
&lt;br /&gt;
stdinで受信したデータをフィルタリングし、stdoutで出力するため、上記のように複数のフィルタを連鎖させることができる。もう一つの例：&lt;br /&gt;
&lt;br /&gt;
 $ ls | where type == file | get size | math sum&lt;br /&gt;
&lt;br /&gt;
{{ic|get}} ビルトインは、オブジェクトから属性にアクセスするために使用されます。この例では、stdin 経由でオブジェクトの配列を与えているので、配列の各要素の {{ic|size}} プロパティを取得し、数値の配列を生成しています。最後に、その配列を {{ic|math sum}} に渡して、それらの合計を計算させます。&lt;br /&gt;
&lt;br /&gt;
=== 出力 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; は極めて多彩な出力機能を備えています。箱から出してすぐに、カラー、アスキーアート、詳細なエラーメッセージを備えたモダンな外観を誇っています。&lt;br /&gt;
&lt;br /&gt;
==== テキストで出力する ====&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、{{ic|ls}} のようなコマンドの出力は、列挙された行を持つ色付きの ASCII テーブルとして表示されます。(構造化オブジェクトの配列を生成する) のようなコマンドの出力は、各ファイルが行、各属性が列である列挙された行を持つ色付きの  ASCII テーブルとして表示されます。例：&lt;br /&gt;
&lt;br /&gt;
 /usr/lib&amp;gt; ls | where name =~ &amp;quot;.*(alsa|pulse|pipewire).*&amp;quot; | first 10&lt;br /&gt;
 ╭───┬────────────────────────────┬─────────┬──────────┬──────────────╮&lt;br /&gt;
 │ # │            name            │  type   │   size   │   modified   │&lt;br /&gt;
 ├───┼────────────────────────────┼─────────┼──────────┼──────────────┤&lt;br /&gt;
 │ 0 │ alsa-lib                   │ dir     │   4.1 KB │ 2 days ago   │&lt;br /&gt;
 │ 1 │ alsa-topology              │ dir     │   4.1 KB │ 3 months ago │&lt;br /&gt;
 │ 2 │ libdrumstick-alsa.so       │ symlink │     22 B │ 7 months ago │&lt;br /&gt;
 │ 3 │ libdrumstick-alsa.so.2     │ symlink │     26 B │ 7 months ago │&lt;br /&gt;
 │ 4 │ libdrumstick-alsa.so.2.7.2 │ file    │ 335.3 KB │ 7 months ago │&lt;br /&gt;
 │ 5 │ libgvncpulse-1.0.so        │ symlink │     21 B │ 9 months ago │&lt;br /&gt;
 │ 6 │ libgvncpulse-1.0.so.0      │ symlink │     25 B │ 9 months ago │&lt;br /&gt;
 │ 7 │ libgvncpulse-1.0.so.0.0.1  │ file    │  14.1 KB │ 9 months ago │&lt;br /&gt;
 │ 8 │ libpipewire-0.3.so         │ symlink │     20 B │ 2 weeks ago  │&lt;br /&gt;
 │ 9 │ libpipewire-0.3.so.0       │ symlink │     26 B │ 2 weeks ago  │&lt;br /&gt;
 ╰───┴────────────────────────────┴─────────┴──────────┴──────────────╯&lt;br /&gt;
&lt;br /&gt;
==== データ形式での出力 ====&lt;br /&gt;
Data can also be output in any various data formats, including JSON, YAML, TOML, HTML, XML, SQL, CSV, Markdown tables, and others. The user can also define their own custom viewers to support arbitrary data types.&lt;br /&gt;
&lt;br /&gt;
To output data in a given format, simply pipe the data to {{ic|to &#039;&#039;FORMAT&#039;&#039;}}:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib&amp;gt; ls | where name =~ &amp;quot;.*alsa.*&amp;quot; | first 3 | to yaml&lt;br /&gt;
 - name: alsa-lib&lt;br /&gt;
   type: dir&lt;br /&gt;
   size: 4096&lt;br /&gt;
   modified: 2023-05-03 16:04:35.544273606&lt;br /&gt;
 - name: alsa-topology&lt;br /&gt;
   type: dir&lt;br /&gt;
   size: 4096&lt;br /&gt;
   modified: 2023-01-13 19:29:45.179245376&lt;br /&gt;
 - name: libdrumstick-alsa.so&lt;br /&gt;
   type: symlink&lt;br /&gt;
   size: 22&lt;br /&gt;
   modified: 2022-10-02 13:28:57&lt;br /&gt;
&lt;br /&gt;
To save the output of a command in a file, pipe it to the {{ic|save}} builtin:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls | to json | save my-file.json&lt;br /&gt;
&lt;br /&gt;
If the output file already exists, {{ic|save}} will refuse to overwrite it. You can force overwriting files using the {{ic|-f}} switch.&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;nushell&#039;&#039;&#039; defaults to producing pretty-printed JSON. To output JSON without pretty-printing, use {{ic|to json --raw}}.&lt;br /&gt;
&lt;br /&gt;
See {{ic|to --help}} for a list of supported formats.&lt;br /&gt;
&lt;br /&gt;
==== エラー出力 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; prints colorized and detailed error messages that pinpoint the exact source of the error and suggest solutions. Example error message:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls -a --never-gonna-give-you-up /tmp&lt;br /&gt;
 Error: nu::parser::unknown_flag&lt;br /&gt;
 &lt;br /&gt;
  × The `ls` command doesn&#039;t have flag `never-gonna-give-you-up`.&lt;br /&gt;
    ╭─[entry #24:1:1]&lt;br /&gt;
  1 │ ls -a --never-gonna-give-you-up /tmp&lt;br /&gt;
    ·       ────────────┬────────────&lt;br /&gt;
    ·                   ╰── unknown flag&lt;br /&gt;
    ╰────&lt;br /&gt;
   help: Available flags: --help(-h), --all(-a), --long(-l),&lt;br /&gt;
         --short-names(-s), --full-paths(-f), --du(-d), --directory(-D),&lt;br /&gt;
         --mime-type(-m). Use `--help` for more information.&lt;br /&gt;
&lt;br /&gt;
=== 入力 ===&lt;br /&gt;
&lt;br /&gt;
==== データファイルからの入力 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; has native support for reading data in various formats, including JSON, YAML, TOML, SQL, HTML/XML, and others, allowing the user to utilize its powerful data querying and manipulation capabilities on data read from any file format. The user can also add support for new formats by adding plugins.&lt;br /&gt;
&lt;br /&gt;
Data is read from files using the {{ic|open}} builtin. For example, assuming we have a file {{ic|movies.yaml}} with the following contents:&lt;br /&gt;
&lt;br /&gt;
 - movie: Matrix&lt;br /&gt;
   genre: Action&lt;br /&gt;
 - movie: Lord of the Rings&lt;br /&gt;
   genre: [Action, Fantasy]&lt;br /&gt;
 - movie: Independence Day&lt;br /&gt;
   genre: [Action, Sci-Fi]&lt;br /&gt;
&lt;br /&gt;
Then executing {{ic|open movies.yaml}} would produce the following output:&lt;br /&gt;
&lt;br /&gt;
 ╭───┬───────────────────┬─────────────────╮&lt;br /&gt;
 │ # │       movie       │      genre      │&lt;br /&gt;
 ├───┼───────────────────┼─────────────────┤&lt;br /&gt;
 │ 0 │ Matrix            │ Action          │&lt;br /&gt;
 │ 1 │ Lord of the Rings │ ╭───┬─────────╮ │&lt;br /&gt;
 │   │                   │ │ 0 │ Action  │ │&lt;br /&gt;
 │   │                   │ │ 1 │ Fantasy │ │&lt;br /&gt;
 │   │                   │ ╰───┴─────────╯ │&lt;br /&gt;
 │ 1 │ Independence Day  │ ╭───┬─────────╮ │&lt;br /&gt;
 │   │                   │ │ 0 │ Action  │ │&lt;br /&gt;
 │   │                   │ │ 1 │ Sci-Fi  │ │&lt;br /&gt;
 │   │                   │ ╰───┴─────────╯ │&lt;br /&gt;
 ╰───┴───────────────────┴─────────────────╯&lt;br /&gt;
&lt;br /&gt;
==== Input from external programs ====&lt;br /&gt;
&lt;br /&gt;
For external programs, which typically produce their output as plain text, &#039;&#039;&#039;nushell&#039;&#039;&#039; offers the ability to parse their output and convert it into a structured datatype, so that the user can utilize &#039;&#039;&#039;nushell&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039;s full native data processing capabilities even on arbitrary output generated by agnostic programs.&lt;br /&gt;
&lt;br /&gt;
===== Using parse with regular expression =====&lt;br /&gt;
&lt;br /&gt;
Parsing external program output can be easily performed using the {{ic|parse}} builtin. One typical workflow is using the {{ic|-r}} switch, which tells {{ic|parse}} to use a [[Wikipedia:Regular_expression|regular expression]] for extracting fields out of each line of text in the input. For example, to parse the output of [[pacman]]&#039;s {{ic|-Si}} [[pacman#Querying package databases|command]], one might do something like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; pacman -Si rclone | parse -r &#039;(?P&amp;lt;name&amp;gt;.*\w) +: (?P&amp;lt;value&amp;gt;.+)&#039;&lt;br /&gt;
 ╭────┬────────────────┬─────────────────────────────────────────────────╮&lt;br /&gt;
 │  # │      name      │                    value                        │&lt;br /&gt;
 ├────┼────────────────┼─────────────────────────────────────────────────┤&lt;br /&gt;
 │  0 │ Repository     │ extra                                           │&lt;br /&gt;
 │  1 │ Name           │ rclone                                          │&lt;br /&gt;
 │  2 │ Version        │ 1.62.2-1                                        │&lt;br /&gt;
 │  3 │ Description    │ Sync files to and from Google Drive, S3, Swift, │&lt;br /&gt;
 │    │                │ Cloudfiles, Dropbox and Google Cloud Storage    │&lt;br /&gt;
 │  4 │ Architecture   │ x86_64                                          │&lt;br /&gt;
 │  5 │ URL            │ &amp;lt;nowiki&amp;gt;https://rclone.org/&amp;lt;/nowiki&amp;gt;                             │&lt;br /&gt;
 │  6 │ Licenses       │ MIT                                             │&lt;br /&gt;
 │  7 │ Groups         │ None                                            │&lt;br /&gt;
 │  8 │ Provides       │ None                                            │&lt;br /&gt;
 │  9 │ Depends On     │ glibc                                           │&lt;br /&gt;
 │ 10 │ Optional Deps  │ fuse2: for rclone mount                         │&lt;br /&gt;
 │ 11 │ Conflicts With │ None                                            │&lt;br /&gt;
 │ 12 │ Replaces       │ None                                            │&lt;br /&gt;
 │ 13 │ Download Size  │ 18.12 MiB                                       │&lt;br /&gt;
 │ 14 │ Installed Size │ 75.93 MiB                                       │&lt;br /&gt;
 │ 15 │ Packager       │ Morten Linderud &amp;lt;foxboron@archlinux.org&amp;gt;        │&lt;br /&gt;
 │ 16 │ Build Date     │ Sun 02 Apr 2023 14:09:44 EEST                   │&lt;br /&gt;
 │ 17 │ Validated By   │ MD5 Sum  SHA-256 Sum  Signature                 │&lt;br /&gt;
 ╰────┴────────────────┴─────────────────────────────────────────────────╯&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt; uses a Perl-like regular expression syntax, which is provided by the [https://github.com/rust-lang/regex Regex crate] (of the [[Rust]] programming language). The syntax is described in the [https://docs.rs/regex/latest/regex/#syntax crate&#039;s documentation].&lt;br /&gt;
&lt;br /&gt;
===== Using parse with template string =====&lt;br /&gt;
&lt;br /&gt;
Another way, which does not require regular expression knowledge, is by omitting the {{ic|-r}} switch and providing {{ic|parse}} with a template string. However, depending on the case, it may necessitate extra steps for pre- and post-processsing the results. For example:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; pacman -Si just | lines | parse &#039;{field} : {value}&#039; | str trim&lt;br /&gt;
&lt;br /&gt;
Here we performed the same task as the above, but with three differences. Aside from using a template string rather than regular expression (i.e. without the {{ic|-r}} switch), the first notable difference is that when {{ic|parse}} is given a a template strings, it acts on the entirety of its input rather than on each line in it. So in order to parse the input on a per-line basis, we must first split it into an array of lines using the {{ic|lines}} builtin.&lt;br /&gt;
&lt;br /&gt;
The second difference is that template strings do not automatically trim surplus whitespace, which results in the matched fields containing all extra whitespace surrounding them, so we had to post-process the output with {{ic|str trim}}, which conveniently acts on all fields for all items in the provided array.&lt;br /&gt;
&lt;br /&gt;
=== Data manipulation ===&lt;br /&gt;
&lt;br /&gt;
==== Conversion ====&lt;br /&gt;
&lt;br /&gt;
The combination of its {{ic|open}} and {{ic|save}} builtins allow it to be easily used to convert data files across any supported formats. For example:&lt;br /&gt;
&lt;br /&gt;
The data can then be freely manipulated or converted by piping it to other commands. For example:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; open movies.yaml | first 2 | to json --raw&lt;br /&gt;
 [{&amp;quot;movie&amp;quot;: &amp;quot;Matrix&amp;quot;,&amp;quot;genre&amp;quot;: &amp;quot;Action&amp;quot;},{&amp;quot;movie&amp;quot;: &amp;quot;Lord of the Rings&amp;quot;,&amp;quot;genre&amp;quot;:[&amp;quot;Action&amp;quot;,&amp;quot;Fantasy&amp;quot;]}]&lt;br /&gt;
 &amp;gt; open movies.yaml | first 2 | to json --raw | save movies.json&lt;br /&gt;
 &amp;gt; cat movies.json&lt;br /&gt;
 &#039;&#039;(same output as above)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Comparison with traditional shells ==&lt;br /&gt;
&lt;br /&gt;
{{Expansion|Needs to elaborate on some of the points enumerated in the first paragraph.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; is not a POSIX shell, and has significant differences from traditional/POSIX-compatible shells in various ways, including its syntax, supported builtins, the way builtins work, the command-line options they accept, the type of data they consume and produce, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
Redirecting output to a file cannot be done using {{ic|&amp;gt;}} like in other shells. Instead, you must use the {{ic|save}} builtin. If the output in question happens to be a complex data structure (like the output of its builtin {{ic|ls}}), then you must first serialize it into a textual representation using the {{ic|to}} builtin.&lt;br /&gt;
&lt;br /&gt;
So rather than:&lt;br /&gt;
&lt;br /&gt;
 ls &amp;gt; file.txt&lt;br /&gt;
&lt;br /&gt;
You must use:&lt;br /&gt;
&lt;br /&gt;
 ls | to yaml | save file.yaml&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/ &#039;&#039;&#039;nushell&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt; プロジェクトホームページ]&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/book/ Nushell&#039;s Introductory Book] その特徴や側面について詳しく解説しています。&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/commands/ Nushell コマンドリファレンス]&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/cookbook/ Nushell&#039;s Cookbook] &#039;&#039;&#039;nushell&#039;&#039;&#039; の様々なカテゴリからタスクを実行する方法についての例が含まれています。&lt;/div&gt;</summary>
		<author><name>Hikyae</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Nushell&amp;diff=41324</id>
		<title>Nushell</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Nushell&amp;diff=41324"/>
		<updated>2026-02-10T14:29:06Z</updated>

		<summary type="html">&lt;p&gt;Hikyae: 冗長なパイプをandでまとめる。sumでは人間にとって意味のある数値が表示されないのでmath sumを使う。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lowercase title}}&lt;br /&gt;
[[Category:コマンドラインシェル]]&lt;br /&gt;
[[en:Nushell]]&lt;br /&gt;
[https://www.nushell.sh/ nushell]は、新しいタイプのシェルです。配列、テーブル、レコード、数値/ブール型などの構造化・型付けされたデータをネイティブにサポートし、シェルのようなワークフローで様々なデータ型の問い合わせ、フィルタ、ソート、変換、その他の操作を容易にする構文とビルトインを提供し、多くのビルトインまたはユーザー定義フォーマットでの入力と出力をサポートします。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|nushell}} パッケージを[[インストール]]します。&lt;br /&gt;
&lt;br /&gt;
== 機能概要 ==&lt;br /&gt;
&lt;br /&gt;
=== 構造化データのサポート === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; のビルトインは複雑なデータ型を理解し出力します。例えば、{{ic|ls}} ビルトインは、{{ic|name}}, {{ic|size}}, {{ic|type}} という属性を持つファイルを表す項目の配列を出力する。({{ic|file}}, {{ic|dir}}, {{ic|symlink}}, etc.), {{ic|modified}} などの属性を持ちます。&lt;br /&gt;
&lt;br /&gt;
また、従来のシェルのようにテキストとしてではなく、データとして問い合わせたり操作したりするためのビルトインが多数提供されており、シェルらしいワークフローが実現されている。例えば、{{ic|where}} ビルトインは、配列やテーブルの中身をフィルタリングすることができます：&lt;br /&gt;
&lt;br /&gt;
 $ ls | where type == file and size &amp;gt; 10mb&lt;br /&gt;
&lt;br /&gt;
stdinで受信したデータをフィルタリングし、stdoutで出力するため、上記のように複数のフィルタを連鎖させることができる。もう一つの例：&lt;br /&gt;
&lt;br /&gt;
 $ ls | where type == file | get size | math sum&lt;br /&gt;
&lt;br /&gt;
{{ic|get}} ビルトインは、オブジェクトから属性にアクセスするために使用されます。この例では、stdin 経由でオブジェクトの配列を与えているので、配列の各要素の {{ic|size}} プロパティを取得し、数値の配列を生成しています。最後に、その配列を {{ic|sum}} に渡して、それらの合計を計算させます。&lt;br /&gt;
&lt;br /&gt;
=== 出力 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; は極めて多彩な出力機能を備えています。箱から出してすぐに、カラー、アスキーアート、詳細なエラーメッセージを備えたモダンな外観を誇っています。&lt;br /&gt;
&lt;br /&gt;
==== テキストで出力する ====&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、{{ic|ls}} のようなコマンドの出力は、列挙された行を持つ色付きの ASCII テーブルとして表示されます。(構造化オブジェクトの配列を生成する) のようなコマンドの出力は、各ファイルが行、各属性が列である列挙された行を持つ色付きの  ASCII テーブルとして表示されます。例：&lt;br /&gt;
&lt;br /&gt;
 /usr/lib&amp;gt; ls | where name =~ &amp;quot;.*(alsa|pulse|pipewire).*&amp;quot; | first 10&lt;br /&gt;
 ╭───┬────────────────────────────┬─────────┬──────────┬──────────────╮&lt;br /&gt;
 │ # │            name            │  type   │   size   │   modified   │&lt;br /&gt;
 ├───┼────────────────────────────┼─────────┼──────────┼──────────────┤&lt;br /&gt;
 │ 0 │ alsa-lib                   │ dir     │   4.1 KB │ 2 days ago   │&lt;br /&gt;
 │ 1 │ alsa-topology              │ dir     │   4.1 KB │ 3 months ago │&lt;br /&gt;
 │ 2 │ libdrumstick-alsa.so       │ symlink │     22 B │ 7 months ago │&lt;br /&gt;
 │ 3 │ libdrumstick-alsa.so.2     │ symlink │     26 B │ 7 months ago │&lt;br /&gt;
 │ 4 │ libdrumstick-alsa.so.2.7.2 │ file    │ 335.3 KB │ 7 months ago │&lt;br /&gt;
 │ 5 │ libgvncpulse-1.0.so        │ symlink │     21 B │ 9 months ago │&lt;br /&gt;
 │ 6 │ libgvncpulse-1.0.so.0      │ symlink │     25 B │ 9 months ago │&lt;br /&gt;
 │ 7 │ libgvncpulse-1.0.so.0.0.1  │ file    │  14.1 KB │ 9 months ago │&lt;br /&gt;
 │ 8 │ libpipewire-0.3.so         │ symlink │     20 B │ 2 weeks ago  │&lt;br /&gt;
 │ 9 │ libpipewire-0.3.so.0       │ symlink │     26 B │ 2 weeks ago  │&lt;br /&gt;
 ╰───┴────────────────────────────┴─────────┴──────────┴──────────────╯&lt;br /&gt;
&lt;br /&gt;
==== データ形式での出力 ====&lt;br /&gt;
Data can also be output in any various data formats, including JSON, YAML, TOML, HTML, XML, SQL, CSV, Markdown tables, and others. The user can also define their own custom viewers to support arbitrary data types.&lt;br /&gt;
&lt;br /&gt;
To output data in a given format, simply pipe the data to {{ic|to &#039;&#039;FORMAT&#039;&#039;}}:&lt;br /&gt;
&lt;br /&gt;
 /usr/lib&amp;gt; ls | where name =~ &amp;quot;.*alsa.*&amp;quot; | first 3 | to yaml&lt;br /&gt;
 - name: alsa-lib&lt;br /&gt;
   type: dir&lt;br /&gt;
   size: 4096&lt;br /&gt;
   modified: 2023-05-03 16:04:35.544273606&lt;br /&gt;
 - name: alsa-topology&lt;br /&gt;
   type: dir&lt;br /&gt;
   size: 4096&lt;br /&gt;
   modified: 2023-01-13 19:29:45.179245376&lt;br /&gt;
 - name: libdrumstick-alsa.so&lt;br /&gt;
   type: symlink&lt;br /&gt;
   size: 22&lt;br /&gt;
   modified: 2022-10-02 13:28:57&lt;br /&gt;
&lt;br /&gt;
To save the output of a command in a file, pipe it to the {{ic|save}} builtin:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls | to json | save my-file.json&lt;br /&gt;
&lt;br /&gt;
If the output file already exists, {{ic|save}} will refuse to overwrite it. You can force overwriting files using the {{ic|-f}} switch.&lt;br /&gt;
&lt;br /&gt;
Note that &#039;&#039;&#039;nushell&#039;&#039;&#039; defaults to producing pretty-printed JSON. To output JSON without pretty-printing, use {{ic|to json --raw}}.&lt;br /&gt;
&lt;br /&gt;
See {{ic|to --help}} for a list of supported formats.&lt;br /&gt;
&lt;br /&gt;
==== エラー出力 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; prints colorized and detailed error messages that pinpoint the exact source of the error and suggest solutions. Example error message:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls -a --never-gonna-give-you-up /tmp&lt;br /&gt;
 Error: nu::parser::unknown_flag&lt;br /&gt;
 &lt;br /&gt;
  × The `ls` command doesn&#039;t have flag `never-gonna-give-you-up`.&lt;br /&gt;
    ╭─[entry #24:1:1]&lt;br /&gt;
  1 │ ls -a --never-gonna-give-you-up /tmp&lt;br /&gt;
    ·       ────────────┬────────────&lt;br /&gt;
    ·                   ╰── unknown flag&lt;br /&gt;
    ╰────&lt;br /&gt;
   help: Available flags: --help(-h), --all(-a), --long(-l),&lt;br /&gt;
         --short-names(-s), --full-paths(-f), --du(-d), --directory(-D),&lt;br /&gt;
         --mime-type(-m). Use `--help` for more information.&lt;br /&gt;
&lt;br /&gt;
=== 入力 ===&lt;br /&gt;
&lt;br /&gt;
==== データファイルからの入力 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; has native support for reading data in various formats, including JSON, YAML, TOML, SQL, HTML/XML, and others, allowing the user to utilize its powerful data querying and manipulation capabilities on data read from any file format. The user can also add support for new formats by adding plugins.&lt;br /&gt;
&lt;br /&gt;
Data is read from files using the {{ic|open}} builtin. For example, assuming we have a file {{ic|movies.yaml}} with the following contents:&lt;br /&gt;
&lt;br /&gt;
 - movie: Matrix&lt;br /&gt;
   genre: Action&lt;br /&gt;
 - movie: Lord of the Rings&lt;br /&gt;
   genre: [Action, Fantasy]&lt;br /&gt;
 - movie: Independence Day&lt;br /&gt;
   genre: [Action, Sci-Fi]&lt;br /&gt;
&lt;br /&gt;
Then executing {{ic|open movies.yaml}} would produce the following output:&lt;br /&gt;
&lt;br /&gt;
 ╭───┬───────────────────┬─────────────────╮&lt;br /&gt;
 │ # │       movie       │      genre      │&lt;br /&gt;
 ├───┼───────────────────┼─────────────────┤&lt;br /&gt;
 │ 0 │ Matrix            │ Action          │&lt;br /&gt;
 │ 1 │ Lord of the Rings │ ╭───┬─────────╮ │&lt;br /&gt;
 │   │                   │ │ 0 │ Action  │ │&lt;br /&gt;
 │   │                   │ │ 1 │ Fantasy │ │&lt;br /&gt;
 │   │                   │ ╰───┴─────────╯ │&lt;br /&gt;
 │ 1 │ Independence Day  │ ╭───┬─────────╮ │&lt;br /&gt;
 │   │                   │ │ 0 │ Action  │ │&lt;br /&gt;
 │   │                   │ │ 1 │ Sci-Fi  │ │&lt;br /&gt;
 │   │                   │ ╰───┴─────────╯ │&lt;br /&gt;
 ╰───┴───────────────────┴─────────────────╯&lt;br /&gt;
&lt;br /&gt;
==== Input from external programs ====&lt;br /&gt;
&lt;br /&gt;
For external programs, which typically produce their output as plain text, &#039;&#039;&#039;nushell&#039;&#039;&#039; offers the ability to parse their output and convert it into a structured datatype, so that the user can utilize &#039;&#039;&#039;nushell&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039;s full native data processing capabilities even on arbitrary output generated by agnostic programs.&lt;br /&gt;
&lt;br /&gt;
===== Using parse with regular expression =====&lt;br /&gt;
&lt;br /&gt;
Parsing external program output can be easily performed using the {{ic|parse}} builtin. One typical workflow is using the {{ic|-r}} switch, which tells {{ic|parse}} to use a [[Wikipedia:Regular_expression|regular expression]] for extracting fields out of each line of text in the input. For example, to parse the output of [[pacman]]&#039;s {{ic|-Si}} [[pacman#Querying package databases|command]], one might do something like this:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; pacman -Si rclone | parse -r &#039;(?P&amp;lt;name&amp;gt;.*\w) +: (?P&amp;lt;value&amp;gt;.+)&#039;&lt;br /&gt;
 ╭────┬────────────────┬─────────────────────────────────────────────────╮&lt;br /&gt;
 │  # │      name      │                    value                        │&lt;br /&gt;
 ├────┼────────────────┼─────────────────────────────────────────────────┤&lt;br /&gt;
 │  0 │ Repository     │ extra                                           │&lt;br /&gt;
 │  1 │ Name           │ rclone                                          │&lt;br /&gt;
 │  2 │ Version        │ 1.62.2-1                                        │&lt;br /&gt;
 │  3 │ Description    │ Sync files to and from Google Drive, S3, Swift, │&lt;br /&gt;
 │    │                │ Cloudfiles, Dropbox and Google Cloud Storage    │&lt;br /&gt;
 │  4 │ Architecture   │ x86_64                                          │&lt;br /&gt;
 │  5 │ URL            │ &amp;lt;nowiki&amp;gt;https://rclone.org/&amp;lt;/nowiki&amp;gt;                             │&lt;br /&gt;
 │  6 │ Licenses       │ MIT                                             │&lt;br /&gt;
 │  7 │ Groups         │ None                                            │&lt;br /&gt;
 │  8 │ Provides       │ None                                            │&lt;br /&gt;
 │  9 │ Depends On     │ glibc                                           │&lt;br /&gt;
 │ 10 │ Optional Deps  │ fuse2: for rclone mount                         │&lt;br /&gt;
 │ 11 │ Conflicts With │ None                                            │&lt;br /&gt;
 │ 12 │ Replaces       │ None                                            │&lt;br /&gt;
 │ 13 │ Download Size  │ 18.12 MiB                                       │&lt;br /&gt;
 │ 14 │ Installed Size │ 75.93 MiB                                       │&lt;br /&gt;
 │ 15 │ Packager       │ Morten Linderud &amp;lt;foxboron@archlinux.org&amp;gt;        │&lt;br /&gt;
 │ 16 │ Build Date     │ Sun 02 Apr 2023 14:09:44 EEST                   │&lt;br /&gt;
 │ 17 │ Validated By   │ MD5 Sum  SHA-256 Sum  Signature                 │&lt;br /&gt;
 ╰────┴────────────────┴─────────────────────────────────────────────────╯&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt; uses a Perl-like regular expression syntax, which is provided by the [https://github.com/rust-lang/regex Regex crate] (of the [[Rust]] programming language). The syntax is described in the [https://docs.rs/regex/latest/regex/#syntax crate&#039;s documentation].&lt;br /&gt;
&lt;br /&gt;
===== Using parse with template string =====&lt;br /&gt;
&lt;br /&gt;
Another way, which does not require regular expression knowledge, is by omitting the {{ic|-r}} switch and providing {{ic|parse}} with a template string. However, depending on the case, it may necessitate extra steps for pre- and post-processsing the results. For example:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; pacman -Si just | lines | parse &#039;{field} : {value}&#039; | str trim&lt;br /&gt;
&lt;br /&gt;
Here we performed the same task as the above, but with three differences. Aside from using a template string rather than regular expression (i.e. without the {{ic|-r}} switch), the first notable difference is that when {{ic|parse}} is given a a template strings, it acts on the entirety of its input rather than on each line in it. So in order to parse the input on a per-line basis, we must first split it into an array of lines using the {{ic|lines}} builtin.&lt;br /&gt;
&lt;br /&gt;
The second difference is that template strings do not automatically trim surplus whitespace, which results in the matched fields containing all extra whitespace surrounding them, so we had to post-process the output with {{ic|str trim}}, which conveniently acts on all fields for all items in the provided array.&lt;br /&gt;
&lt;br /&gt;
=== Data manipulation ===&lt;br /&gt;
&lt;br /&gt;
==== Conversion ====&lt;br /&gt;
&lt;br /&gt;
The combination of its {{ic|open}} and {{ic|save}} builtins allow it to be easily used to convert data files across any supported formats. For example:&lt;br /&gt;
&lt;br /&gt;
The data can then be freely manipulated or converted by piping it to other commands. For example:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; open movies.yaml | first 2 | to json --raw&lt;br /&gt;
 [{&amp;quot;movie&amp;quot;: &amp;quot;Matrix&amp;quot;,&amp;quot;genre&amp;quot;: &amp;quot;Action&amp;quot;},{&amp;quot;movie&amp;quot;: &amp;quot;Lord of the Rings&amp;quot;,&amp;quot;genre&amp;quot;:[&amp;quot;Action&amp;quot;,&amp;quot;Fantasy&amp;quot;]}]&lt;br /&gt;
 &amp;gt; open movies.yaml | first 2 | to json --raw | save movies.json&lt;br /&gt;
 &amp;gt; cat movies.json&lt;br /&gt;
 &#039;&#039;(same output as above)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Comparison with traditional shells ==&lt;br /&gt;
&lt;br /&gt;
{{Expansion|Needs to elaborate on some of the points enumerated in the first paragraph.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;nushell&#039;&#039;&#039; is not a POSIX shell, and has significant differences from traditional/POSIX-compatible shells in various ways, including its syntax, supported builtins, the way builtins work, the command-line options they accept, the type of data they consume and produce, and so on.&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
&lt;br /&gt;
Redirecting output to a file cannot be done using {{ic|&amp;gt;}} like in other shells. Instead, you must use the {{ic|save}} builtin. If the output in question happens to be a complex data structure (like the output of its builtin {{ic|ls}}), then you must first serialize it into a textual representation using the {{ic|to}} builtin.&lt;br /&gt;
&lt;br /&gt;
So rather than:&lt;br /&gt;
&lt;br /&gt;
 ls &amp;gt; file.txt&lt;br /&gt;
&lt;br /&gt;
You must use:&lt;br /&gt;
&lt;br /&gt;
 ls | to yaml | save file.yaml&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/ &#039;&#039;&#039;nushell&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt; プロジェクトホームページ]&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/book/ Nushell&#039;s Introductory Book] その特徴や側面について詳しく解説しています。&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/commands/ Nushell コマンドリファレンス]&lt;br /&gt;
&lt;br /&gt;
* [https://www.nushell.sh/cookbook/ Nushell&#039;s Cookbook] &#039;&#039;&#039;nushell&#039;&#039;&#039; の様々なカテゴリからタスクを実行する方法についての例が含まれています。&lt;/div&gt;</summary>
		<author><name>Hikyae</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E4%B9%B1%E6%95%B0%E7%94%9F%E6%88%90&amp;diff=40516</id>
		<title>乱数生成</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E4%B9%B1%E6%95%B0%E7%94%9F%E6%88%90&amp;diff=40516"/>
		<updated>2025-07-04T18:10:20Z</updated>

		<summary type="html">&lt;p&gt;Hikyae: タイポ修正。英語版の対応する箇所ではone remaining differenceと書かれています。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:暗号]]&lt;br /&gt;
[[en:Random number generation]]&lt;br /&gt;
[[Wikipedia:Random number generation]] より:&lt;br /&gt;
:&#039;&#039;乱数生成器 (RNG) とはパターンの存在しない (つまりランダムな) 数字や記号の羅列を生成するための計算法または物理デバイスのこと。&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ランダムなデータの生成はアプリケーションによってはとても重要なことです。([[ディスク暗号化]]などに用いる) 暗号鍵の作成や[[ディスクの完全消去|ディスクの完全消去]]、暗号化された[[ソフトウェアアクセスポイント]]など。&lt;br /&gt;
&lt;br /&gt;
== カーネル内蔵の RNG ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Linux RNG は近年大幅に改良されており、4.x および 5.x カーネルシリーズでは多くの変更が加えられています。そのため、それについて存在する情報の多くは古いものです。このページでは、Arch Linux の [[カーネル#公式にサポートされているカーネル|公式にサポートされているカーネル]] を含む最新のカーネルに適用できる現在の実装と動作について説明します。}}&lt;br /&gt;
&lt;br /&gt;
[https://github.com/torvalds/linux/blob/master/drivers/char/random.c Linux カーネルの組み込み RNG] は、暗号的に安全な擬似乱数データを生成します。これは、ハードウェア RNG、割り込み、CPU ベースのジッターエントロピーなどのさまざまなソースから [[wikipedia:Entropy_(information_ Theory)|entropy]] を収集することによって機能します。単一のエントロピーソースのみに依存することはありません。エントロピーは [[wikipedia:ja:BLAKE_(hash_function)#BLAKE2|BLAKE2s 暗号化ハッシュ関数]] を使用して抽出され、[[wikipedia:ja:Salsa20#ChaCha_variant|ChaCha20]] CRNG (暗号化乱数ジェネレーター) をシードするために使用されます。カーネルが実行されている限り、エントロピーは収集され続け、CRNG は定期的に再シードされます。&lt;br /&gt;
&lt;br /&gt;
Linux RNG は、ユーザー空間がランダムデータを取得するための 3 つのインターフェイスを提供します:&lt;br /&gt;
&lt;br /&gt;
* {{man|2|getrandom}} system call&lt;br /&gt;
* {{ic|/dev/random}}&lt;br /&gt;
* {{ic|/dev/urandom}}&lt;br /&gt;
&lt;br /&gt;
歴史的に、{{ic|/dev/random}} は {{ic|/dev/urandom}} よりも強力な乱数を提供すると考えられてきた。しかし、{{ic|/dev/random}} と {{ic|/dev/urandom}} の挙動は時間とともに収束し、x86-64 システム上では同等になっています。Arch Linux は x86-64 しかサポートしていないので、Arch Linux では {{ic|/dev/random}} は {{ic|/dev/urandom}} は等価です。(これは全ての x86-64 CPU に RDTSC 命令が存在するということは、[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c?h=v6.1#n1205 CPU ベース jitterentropy アルゴリズム] が常にエントロピーを生成できるということであり、言うまでもなくほとんどの x86-64 CPU は [[wikipedia:RDRAND|RDRAND]] もサポートしているからです)&lt;br /&gt;
&lt;br /&gt;
他のアーキテクチャ (具体的には、高速サイクルカウンターを持たないアーキテクチャ) では、1 つの違いが残っています。それは、カーネルが CRNG が適切に初期化されたと推定するまで、{{ic|/dev/random}} ブロックをブロックすることです。 {{ic|/dev/urandom}} はそうではありません。したがって、一般的な場合、ユーザーとアプリケーションは、長期暗号鍵を生成するときに {{ic|/dev/random}} を使用するか、デフォルトで {{man|2|getrandom}} を使用するという従来のガイダンスに従う必要があります。&lt;br /&gt;
&lt;br /&gt;
{{ic|/dev/random}} は真のランダム データを提供することを目的とするのではなく、むしろ暗号的に安全なランダムデータ (現実世界のすべてのユースケースに十分なデータ) を提供することを目的としているため、それを読み取ってもカーネルのエントロピープールが枯渇することはなくなりました。したがって、{{ic|/proc/sys/kernel/random/entropy_avail}} には常に 256 が含まれている必要があります。これは、ChaCha20 キーのビット単位のサイズです。このファイルにさらに大きな値が含まれることを期待したり、値が &amp;quot;低すぎる&amp;quot; 場合にユーザーがアクションを実行することを期待した過去の文書は無視できます。&lt;br /&gt;
&lt;br /&gt;
== 代替案 ==&lt;br /&gt;
&lt;br /&gt;
暗号的に安全な乱数を必要としないアプリケーションは、単純に非暗号化乱数生成器 (例:{{man|3|random}}) を使用できます。&lt;br /&gt;
&lt;br /&gt;
暗号的に安全な乱数を必要とするアプリケーションの場合、通常、カーネルの RNG 以外には何も必要ありません。歴史的に、カーネルの RNG はかなり遅く、可能な限り多くのエントロピーソースを活用していませんでしたが、その後、x86-64 で最大 400 MB/秒のスループットを提供し、より多くのエントロピーソースを利用できるように改良されました。[[ディスクの完全消去|ディスクの完全消去]] など、かなり高いスループットの乱数を必要とする場合でも、{{ic|/dev/urandom}} から読み取るだけで問題なく動作します。&lt;br /&gt;
&lt;br /&gt;
カーネルの RNG を直接使用しないことが合理的となるケースには、次のようなものがあります:&lt;br /&gt;
&lt;br /&gt;
* まれに、アプリケーションは、&#039;&#039;&#039;非常に&#039;&#039;&#039; 高いスループット、またはシステムコールのオーバーヘッドが許容できない非常に低いレイテンシーを備えた、暗号的に安全な乱数を必要とします。ユーザースペース CRNG はこの問題を解決できます。  ユーザー空間 CRNG は、再シードなどのモジュロを考慮して、カーネルの RNG と少なくとも同等の安全性を確保するために、カーネルの RNG からシードする必要があります。&lt;br /&gt;
&lt;br /&gt;
* 一部のアプリケーションは、ユーザー空間 CRNG を使用して暗号的に安全な乱数を生成するための十分に確立された API がすでに存在するドメインで動作します。たとえば、アプリケーションが [[OpenSSL]] を使用している場合、OpenSSL の {{man|3|RAND_bytes}} を使用することが合理的である可能性があります。アプリケーションが Java で書かれている場合、[https://docs.oracle.com/javase/8/docs/api/java/security/SecureRandom.html {{ic|java.security.SecureRandom}}] を使用するのが合理的かもしれません。通常、これらの API の基礎となるユーザー空間 CRNG は、カーネルの RNG を使用して自動的にシードされます。&lt;br /&gt;
&lt;br /&gt;
* カーネルの RNG にまだ組み込まれていない追加のエントロピーソースを使用したい場合は、カーネルの RNG を直接使用しない方が合理的かもしれません。たとえば、[[Haveged]] は、ジッターエントロピーを使用して生成されたランダムデータを提供できます。可能であれば、追加のエントロピーソースはカーネルの RNG を置き換えるのではなく、追加のエントロピーソースとカーネルの RNG の両方からユーザー空間 CRNG をシードすることによって、カーネルの RNG と組み合わせて使用​​する必要があります。追加のエントロピーを {{ic|/dev/random}} に書き込んでカーネルの RNG に組み込むことも可能ですが、カーネルの CRNG 再シードスケジュールにより、これが有効になるまでに最大 60 秒かかる場合があります。注: カーネルはすでに [[wikipedia:RDRAND|RDSEED]] およびその他のハードウェア乱数生成器をエントロピーソースとして使用しています。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* カーネル RNG の改善:&lt;br /&gt;
** [https://git.kernel.org/linus/e192be9d9a30555a random: replace non-blocking pool with a Chacha20-based CRNG] - ChaCha20 CRNG 導入(2016年)&lt;br /&gt;
** [https://git.kernel.org/linus/50ee7529ec4500c8 random: try to actively add entropy rather than passively wait for it] - CPU ベースのジッターエントロピーをフォールバックとして使用できるようにしました (2019)&lt;br /&gt;
** [https://lwn.net/Articles/808575/ Removing the Linux /dev/random blocking pool] - {{ic|/dev/random}} に {{ic|/dev/urandom}} と同様に CRNG を使用させ、&amp;quot;真&amp;quot; のランダム性を提供しようとしませんでした (2020)&lt;br /&gt;
** [https://www.zx2c4.com/projects/linux-rng-5.17-5.18/ Random number generator enhancements for Linux 5.17 and 5.18] (2022)&lt;br /&gt;
** [https://git.kernel.org/linus/186873c549df11b6 random: use simpler fast key erasure flow on per-cpu keys] - CRNG 設計の簡素化と最適化 (2022)&lt;br /&gt;
** [https://git.kernel.org/linus/e85c0fc1d94c5248 random: do not pretend to handle premature next security model] - 新しいエントロピーをより迅速に使用できるようにしました (2022)&lt;br /&gt;
** [https://git.kernel.org/linus/48bff1053c172e6c random: opportunistically initialize on /dev/urandom reads] - x86 では {{ic|/dev/urandom}} を {{ic|/dev/random}} と同じくらい安全にしました (2022)&lt;br /&gt;
* [https://www.random.org/randomness/ Randomness] - さまざまな RNG について説明した人気の科学記事&lt;br /&gt;
* [https://www.fourmilab.ch/random/ ENT] - ランダムシーケンス (エントロピー、カイ二乗検定、モンテカルロ、相関など) をテストするための簡単なプログラム&lt;br /&gt;
* [https://eprint.iacr.org/2016/367 An Analysis of OpenSSL&#039;s Random Number Generator] - OpenSSL 機能における RNG 再シードのリスクに関する論文&lt;/div&gt;</summary>
		<author><name>Hikyae</name></author>
	</entry>
</feed>