linux下隨機數字的生成

2021-09-04 09:52:14 字數 1028 閱讀 7099

方法一:

命令大致如下:

echo $((16#`dd if=/dev/urandom bs=1 count=4 2>/dev/null| od -a n -t x4|sed s/[^1-9a-fa-f]//g`))

分開來看:

echo $((16#abc))  意思是將十六進製制數abc轉換成十進位制數

`command` 意思是兩個`中間的命令執行結果做為外殼命令的引數

/dev/urandom 是個生成隨機數的裝置,比/dev/random稍不安全,但產生速度極快

dd if=/dev/urndom bs=1 count=4 從隨機數裝置中取前4個位元組(32位數)

2>/dev/null 意思是將錯誤資訊重定向到空裝置中

od -a n -t x4 意思是將dd過來的資料(乙個隨機的32位值)進行轉換輸出,-a n是不輸出偏移標誌,-t x4是將數字用16進製制輸出,並且4個位元組一組,這樣就以16進製制輸出乙個32位的數

sed s/[^1-9a-fa-f]//g 意思是去年輸出檔案中非十六進製制可接受的字元(此例中主要是刪除行前的空格,也可以用tr -d ' ' 或 awk ''處理)

方法二:

date  --rfc-3339=ns|sed -n "s/.*\.0*\(.*\)+.*/\1/p"

利用date命令生成的納秒數作為隨機數

命令也可以用:

date  --rfc-3339=ns|sed "s/\.0*\|+/\n/g"|sed -e 1d -e 3d 或

date  --rfc-3339=ns|awk -f "[ \t.+]" ''

可以用 echo 表示式|bc 生成特定運算結果,比如:

echo $((16#`dd if=/dev/urandom bs=1 count=4 2>/dev/null| od -a n -t x4|sed s/[^1-9a-fa-f]//g`)) %1024|bc 可以生成0-1023範圍內的隨機數

linux下隨機數字的生成

方法一 命令大致如下 echo 16 dd if dev urandom bs 1 count 4 2 dev null od a n t x4 sed s 1 9a fa f g 分開來看 echo 16 abc 意思是將十六進製制數abc轉換成十進位制數 command 意思是兩個 中間的命令執...

python生成隨機數字

random random.sample range 0,10 10 生成 0 10 之間不重複的10個整數,不是小數 random.sample range 0,30 10 np.random np.random.randint 0,20,size 10 隨機生成 0,20 之間 10 個整數 n...

Linux 隨機數生成

使用dd命令擷取 dev urandom dd if dev urandom bs 1 count 20 2 dev null base64 rev cut bytes 3 rev 生成10個小寫字母 dev urandom tr dc a z head bytes 10 echo生成10個大寫字母...