# 生成随机字符串
# 使用uuidgen命令
uuidgen
如果没有安装uuidgen命令,可以使用apt-get install uuid-runtime安装。
生成效果如下:
$ uuidgen
a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d
# 使用openssl命令
openssl rand -hex 16
如果没有安装openssl命令,可以使用apt-get install openssl安装。
生成效果如下:
$ openssl rand -hex 16
a1b2c3d4e5f67a8b9c0d1e2f3a4b5c6d
命令中的16表示生成 16 个字节的随机字符串,也就是 32 个字符。所以如果要生成 8 个字节的随机字符串,可以使用openssl rand -hex 8。
# 使用head命令
head -c 16 /dev/urandom | xxd -p
如果没有安装xxd命令,可以使用apt-get install xxd安装。
生成效果如下:
$ head -c 16 /dev/urandom | xxd -p
a1b2c3d4e5f67a8b9c0d1e2f3a4b5c6d
命令中的16表示生成 16 个字节的随机字符串,也就是 32 个字符。所以如果要生成 8 个字节的随机字符串,可以使用head -c 8 /dev/urandom | xxd -p。
# 使用tr命令
tr -dc A-Za-z0-9 </dev/urandom | head -c 16
生成效果如下:
$ tr -dc A-Za-z0-9 </dev/urandom | head -c 16
a1b2c3d4e5f67a8b
TIP
tr命令的-dc参数表示删除所有不在A-Za-z0-9范围内的字符,</dev/urandom表示从/dev/urandom文件中读取数据,head -c 16表示只输出前 16 个字符。
在 macOS 上, tr命令不支持-dc参数,可以使用tr -d -c A-Za-z0-9代替。
$ tr -d -c A-Za-z0-9 </dev/urandom | head -c 16
a1b2c3d4e5f67a8b