如何/dev/(u)random
在Ubuntu或任何* nix系统上使用?
我尝试了此操作,但它表示拒绝权限。
注意:我也以root用户身份尝试过。
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
如何/dev/(u)random
在Ubuntu或任何* nix系统上使用?
我尝试了此操作,但它表示拒绝权限。
注意:我也以root用户身份尝试过。
/dev/(u)random
sudo /dev/(u)random
sudo -s; /dev/(u)random
Answers:
这是一个类似于设备的文件,因此您可以执行cat或从中复制之类的操作。例如:
dd if=/dev/urandom of=~/urandom_test count=4 bs=1024
创建一个包含4K随机字节的文件。
cat /dev/urandom > ~/urandom_test2
将继续向该文件中写入随机字节,直到您按Ctrl-C。不要在性能低下的系统上执行此操作...
head -30 /dev/urandom > ~/urandom_test3
将写入30行随机字节
bytes terminated by a \n
。你的是啥呢?head -30 /dev/urandom
将为您提供30行随机字节。这些行的长度肯定是随机的。wc -l
如果不确定,请尝试在输出文件上运行。
/dev/urandom
限制为32 MIB每read()
而dd
不会重试多读一次/dev/urandom
产量的32 MIB,所以你要打电话dd
跟iflag=fullblock
。看到dd产生的是32 MB随机文件,而不是1 GB
如果您需要一定数量的随机字节,请从中读取该字节数/dev/urandom
。
这是一个“特殊文件”,类似于读取随机数的文件。
使用 cat
读取/dev/urandom
是一个坏主意,因为它将尝试读取/dev/urandom
到结尾-但它不会结束。
您可以使用head
。但是要注意按字节读取,而不要按行读取-因为行将被随机的换行字节随机分隔。
因此,要将30个随机字节读入文件random.bytes
,请使用:
head -c 30 /dev/urandom > random.bytes
您可以以普通用户的身份阅读。
通常,您要使用/dev/urandom
,而不是/dev/random
。
问题是 /dev/random
很难以正确的方式使用-并且容易以错误的方式使用。起初使用错误会起作用,但后来会产生奇怪的-甚至随机的性能问题。有时。
当您使用时/dev/urandom
,它会在/dev/random
内部使用并处理棘手的部分。
RANDOM
以创建随机正整数:echo $RANDOM
,以及shuf
生成随机排列的程序,例如从播放列表中按随机顺序播放。