dd if=/dev/urandom of=a.log bs=1M count=2
问题:如果此代码^给我随机数,我如何才能获得随机非单词(难以理解),例如“hgcqw”。
问题2:shuf命令可以和dd命令配合使用吗?
谢谢!
6/21 更新。(父亲节)
@Serg 我的目标是首先获得数字。比如说,从 01-100 中随机抽取两位数字。输入命令并运行代码。最终它会给我 14、17、21、35(我正在编造我得到的随机数)。接下来,我想得到这些数字的平均值。在这种情况下,平均值将是 21.75(22)。目标是停止循环,直到找到我正在寻找的特定平均值。在这种情况下,平均值将是 25。我的第二个目标是获取随机单词,然后计算出使用了哪些单词。
@ terdon
单词是“buck”、“duck”或“good old luck”。基本上字典里的任何单词都可以。长度可以是任意长度,但如果我们将限制限制为 5 个字母,我不介意学习如何操作?
什么是单词?我猜你的意思只是 az 和 AZ,但长度是多少?liwyduglashvdbalishfvgapivflakhf 是一个单词吗?ksjdas-asd-asd-asd 怎么样?- 可以用单词表示。请编辑并澄清。– terdon 昨天
答案1
生成一个随机字母字符。
tr -cd '[:alpha:]' < /dev/urandom | fold -w1 | head -n1
生成一个长度为 10 个字符的随机字母字符串。
tr -cd '[:alpha:]' < /dev/urandom | fold -w10 | head -n1
alpha
可以代替in使用的替代 POSIX 字符类[:alpha:]
包括:
alnum - 字母数字字符
alpha - 字母字符
digit - 数字
graph - 可见字符
lower - 小写字符
upper - 大写字符
生成特定范围内的随机数(例如1-10)。
shuf -i 1-10 -n1
与前两个 bash 示例相比,该shuf
命令提供的生成随机字符串的选项较少,但shuf
可用于生成随机排列。
答案2
dd if=/dev/urandom of=a.log bs=1M count=2
这不会给你随机数。这会让你随机字节。您可以将其编码为数字:
hexdump -v -e '"%d\n"' /dev/urandom | dd of=a.log bs=1M count=2
(早期版本使用od
,但od
的输出格式相当不灵活。)
直接使用/dev/random
可能相当浪费,因为它是字节流。您可以将其编码为base64
,然后删除非字母,这样平均仍可获得 80% 的输入数据:
base64 /dev/urandom | tr -cd '[[:alpha:][:space:]]'
这往往会留下相当长的行。您可以用换行符替换数字:
base64 /dev/urandom | sed 's/[^[:alpha:]]\+/\n/g'
答案3
生成一个 2MB 的随机字母小写字符串(包括空格):
< /dev/urandom tr -dc 'a-z ' | head -c 2000000 > a.log
对于恒定流:
< /dev/urandom tr -dc 'a-z '
生成一个 2MB 的随机字母混合大小写字符串(包括空格):
< /dev/urandom tr -dc 'A-Za-z ' | head -c 2000000 > a.log
对于恒定流:
< /dev/urandom tr -dc 'A-Za-z '
答案4
这是我的想法。mkpasswd
经常用于生成加密密码,因此那里的字符串应该已经无法理解了。小问题是它生成的字符串带有数字。通过使用 sed,我们可以摆脱这些数字。
mkpasswd | sed 's/[0-9]/YOLO/g'
YOLO 可以是任何你想要替换的数字。你也可以直接删除它们:
mkpasswd | sed 's/[0-9]//g'
这是另一种方法:
$ date | md5pass | sed 's/[0-9]//g'
$$NG.dLw$vcpGCylnDtmptDtogDr/
正如 muru 在下面的评论中所建议的,您也可以安装pwgen
、使用sudo apt-get install pwgen
并运行pwgen -0
。-0 标志告诉命令避免使用数字
这是 sha1pass + sed 组合:
sha1pass | sed 's/[[:digit:]]//g' | sed 's/[[:punct:]]//g'
结果:PoXGAlAWjzMHgmfzHiYHGpemzqE
使用 $RANDOM 变量的另一种方法:echo $RANDOM | tr '0-9' 'a-z'
总的来说,如果你的目标是生成密码,我建议你阅读这篇文章:
http://www.howtogeek.com/howto/30184/10-ways-to-generate-a-random-password-from-the-command-line/