Linux: date 和 随机数

蓝牙Channel Sounding为真正的距离感知赋能 1:工作原理蓝牙™信道探测使用两种经过验证的测距方法——PBR(PBR)和RTT(RTT),实现蓝牙设备之间的安全精密测距。 阅读详情

本节回顾下 date 和随机数的情况吧,前辈们写的都比较好,在此主要对以下几篇博文做简化与总结,方便以后适合自己回顾
重参博文:
1 》》Linux date命令及系统时间设置
2 》》我使用过的Linux命令之date - 显示、修改系统日期时间
3 》》Linux shell实现随机数的多种方法
4 》》Linux cksum用法


  • 显示系统当前的时间
    • date
  • 显示目前的格林威治时间
    • date -u
  • 以指定的格式显示系统当前的时间
    • date +Format
    • date +%Y-%m-%d

Format的形式如下:

  • %Y YYYY格式的年份(Year)
  • %m mm格式的月份(),01-12
  • %d dd格式的日期(day of month),01-31

  • %H HH格式的小时数(),00-23
  • %M MM格式的分钟数(),00-59
  • %S SS格式的秒数(),00-59
  • %p : 显示本地 AM 或 PM

  • %w 星期几,0-6,0表示星期天

  • %u 星期几,1-7,7表示星期天


  • %F YYYY-mm-dd格式的完整日期(Full date),同%Y-%m-%d

  • %T HH-MM-SS格式的时间(Time),同%H:%M:%S

  • %s 自1970年以来的秒数。

  • %N 从上一秒开始到现在的纳秒数

注意以下大小写的区别:

  • %a : 星期几 (Sun-Sat)
  • %A : 星期几 (Sunday-Saturday)
  • %b : 月份 (Jan-Dec)
  • %B : 月份 (January-December)
  • %c : 直接显示日期与时间
  • %d : 日 (01-31)
  • %D : 直接显示日期 (mm/dd/yy)

注意以上格式是可以任意组合的,还可以包括非格式串,比如 date “+今天是%Y-%d-%m,现在是$H:%M:%S”


  • 显示用STRING指定的日期时间
    • date -d STRING
    • date –date=STRING
    • date -d STRING +FORMAT

实例:

  • 指定日期:date -d YYYY-mm-dd
    • date -d “2011-12-23”
  • 指定时间,日期是今天:date -d HH:MM:SS
    • date -d “12:23:56”
  • 指定日期时间:date -d “YYYY-mm-dd HH:MM:SS”
    • date -d “2011-09-21 10:2:4”
  • 指定1970年以来的秒数:
    • date -d ‘1970-01-01 1251734400 sec utc’ (2009年 09月 01日 星期二 00:00:00 CST)
  • 今天:date
    • date -d today
    • date -d now
  • 几(n)天前:date -d “+n days ago”
  • 几(n)天后 : date -d “-n days ago”
  • 几(n)周前:date -d “+n weeks ago”
  • 几(n)周后:date -d “-n weeks ago”
  • 几(n)月前:date -d “+n months ago”
  • 几(n)月后:date -d “-n months ago”
  • 几(n)年前:date -d “+n years ago”
  • 几(n)年后:date -d “-n years ago”
  • 相应的有 时 分 秒

  • 设置当前时间为STRING指定的日期时间。
    • 格式:date -s STRING
    • 格式:date –set=STRING


Linux 产生随机数

1. 通过时间获得随机数
$ date +%s
1287764773
#获得时间戳,当前到:1970-01-01 00:00:00 相隔的秒数
#如果用它做随机数,相同一秒的数据是一样的。在做循环处理,多线程里面基本不能满足要求了。

$ date +%N
738710457
#获得当前时间的纳秒数据,精确到亿分之一秒。
#这个相当精确了,就算在多cpu,大量循环里面,同一秒里面,也很难出现相同结果,不过不同时间里面还会有大量重复碰撞

$ date +%s%N
1287764807051101270
#这个可以说比较完美了,加入了时间戳,又加上了纳秒
1.2 通过时间来获得随机数。
#!/bin/sh
#获得随机数返回值,shell函数里算出随机数后,更新该值

function random(){
    min=$1   #函数内建变量接受传入的第一个参数
    max=$2   #函数内建变量接受传入的第二个参数
    num=$(date +%s%N) #以时间戳和纳秒形式产生一个唯一数
    retnum=$((num%max+nin)) #产生一个[min max]随机数
    #进行求余数运算即可
    echo $retnum
    #这里通过echo 打印出来值,然后获得函数的,stdout就可以获得值
    #还有一种返回,定义全价变量,然后函数改下内容,外面读取
}

#得到1-10的seq数据项
for i in {1..10}
do 
    out=$(random 11 20)//接受函数的标准输出
    echo $i,"[11,20]",$out
done

2. 内部系统变量($RANDOM)

其实,linux已经提供有个系统环境变量了,直接就是随机数,
$ echo $RANDOM
#产生一个[0, 32767)随机数
$RANDOM * $max / 32767 + 1;
#产生一个[1, max) 随机数;
$RANDOM % 900 + 100
#产生一个三位数的随机数;

3. 读取linux 的uuid码

linux的uuid码也是有内核提供的,在/proc/sys/kernel/random/uuid这个文件内,在使用hibernate 生成主键时,我们经常用这个,所以在这就不错介绍了;


$ cat /proc/sys/kernel/random/uuid
dff68213-b700-4947-87b1-d9e640334196

$ cat /proc/sys/kernel/random/uuid
7b57209a-d285-4fd0-88b4-9d3162d2e1bc
#连续2次读取,得到的uuid是不同的

 $ cat /proc/sys/kernel/random/uuid| cksum | cut -d ' ' -f 1

2141807556

#同上方法得到随机整数
OpenClaw小白使用全攻略 OpenClaw全能技能解锁指南:从基础到进阶 摘要: 本文提供OpenClaw AI智能体的完整使用教程,帮助用户从安装后"不知道如何用"到熟练掌握核心功能。教程包含:1)控制台5大区域详解和3个必做初始化设置;2)文件管理、浏览器自动化、文档生成等5大基础功能实操,每个功能配有详细操作步骤、指令模板和效果演示;3)10+高频场景解决方案,如整理文件、搜集资料、写总结等;4)进阶技巧和常见问题解答。通过清晰的图文指引,即使电脑小白也能快速上手,实现办公自动化、提升工作效率。 阅读详情

相关推荐

推荐系统公平性之流行度偏差(fairness in recommender systems -- popularity bias)

主要参考论文:《The Unfairness of Popularity Bias in Recommendation》 RMSE@RecSys 2019 流行度偏差是什么 先定义流行物品和非流行物品。下图是(Movielens 1M)数据集中物品的评分情况。 图的横坐标表示不同物品,纵坐标表示物品的评分次数。可以看出只有少部分物品得到了很多的评分,大部分曲线尾部的物品都只有少量的评分,我们也把这部分物品称为长尾物品。在本文中,我们取曲线的前20%对应的物品为流行物品,剩余的为非流行物品(长尾物品)。 然

beilizhang的博客 5265

linux如何获取当前时间,linux获取当前时间时分秒

在现代软件开发中,时间是一个至关重要的概念。无论是记录事件、处理数据还是调试程序,正确获取和处理时间都是不可或缺的。在 Linux 环境中,我们可以使用 C 语言来高效地获取当前时间和进行时间计算。本文将详细介绍在 Linux 下获取时间的各种方法以及如何处理时间相关的操作。

吻等离子的博客 3561

别再只调电压了!深入理解数控电源的CC/CV模式与双闭环PID控制(以BUCK电路为例)

本文深入解析数控电源的CC/CV模式与双闭环PID控制技术,以BUCK电路为例,探讨如何通过双闭环控制优化负载突变响应和模式切换稳定性。文章详细介绍了电压环与电流环的协同工作原理、PID参数整定技巧及工程实践中的非线性补偿方法,帮助工程师提升电源设计的智能控制能力。

weixin_27017211的博客 261

linux 系统时间date vcs根据时间产生随机种子

首先介绍时间date,再介绍如何根据时间产生随机种子。

qq_42135020的博客 1947

一觉醒后ChatGPT 被淘汰了

近日,AI 界貌似出现了一种新的趋势:自主人工智能。这不是空穴来风,最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归 OpenAI 的 Andrej Karpathy 也为其大力宣传,并在推特赞扬:「AutoGPT 是 prompt 工程的下一个前沿。」

Rocky006的博客 13万+

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1460

Linux命令之date命令

Linux date命令可以用来显示或设定系统的日期与时间。在显示方面使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记。在备份文件的时候我们常结合此命令生成当前日期和时间的文件名。格式符前面以+加号开头,若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。

月生的静心苑 4万+

MT5交易软件系统源码

Manager配置的功能及权限:管理客户、开户,销户、入金、信用额度、修改定单、人工交易报表、设定点差、强制平仓、修改密码,设定持仓交割单或挂单小止盈止损点数;26、修改价格 27、更改K线图历史价格 28、同步历史数据;2、系统设置 3、交易管理 4、交易柜台 5、价格更改 6、多台服。务器联机 7、恢复交易历史 8、数据源调整 9、备份服务调整 10、交易市场设定 11、交易单更改 12、平台时间设定(全世界) 13、可添加商品;15、设置商品利息;独立主机(服务器、VPS、VM)

tutujunjun的博客 904

Linux基础命令-date设置时间

date命令来自于英文单词它自己,也就是时间、时钟的意思,其功能是用于显示或者设置系统日期与时间信息的。运维人员可以根据自己需要的格式来输出系统时间信息。

不吃羊的小灰灰博客 1万+

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色和深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,->最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

ComfyUI安装包运行前准备:安装Git

Git 是一个分布式版本控制系统(Version Control System, VCS),用于跟踪和管理文件(尤其是代码)的变更历史。 简单理解就是,git是用来管理文件的版本的,如果有新的版本,就可以使用git来更新。

聚梦小课堂 2万+

Linux基础命令- date

Linux基础命令- date

m0_67159981的博客 2688

arkts编译报错-arkts-limited-stdlib错误【Bug已完美解决-鸿蒙开发】

在使用 Deveco Studio 4.0 beta2 开发应用时,报错。ERROR: ArkTS:ERROR File: D:/prRevivw/3792/applications_appsamg优快云o”见台难忘Usage of standardlibrary is restricted (arkts-limited-stdlib)这是 ArkTS 新增的语法规则。

一键难忘的博客 3775

linux产生随机数的方法

1.通过系统环境变量($RANDOM)实现 #RANDOM的随机数的范围为:0~32767,加密性不是很好,可以通过在输出的随机数后增加加密字符串的方式来解决,最后在一起执行md5操作并截取最后的n位,这样一来,就无法通过范围来猜测出具体的结果。 2.通过openssl产生随机数 令数字和大小写相结合,并带上特殊的字符,可以达到很长的位数,这样的随机数就很安全 [chengmo@cento...

qq_42024433的博客 617

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

linux系统产生随机数

1.通过系统环境变量($RANDOM)实现 echo $RANDOM RANDOM随机数范围为0~32767,因此,它的加密性不是很好 解决方法:通过再输出随机数后增加加密字符串,再一起执行md5sum操作并截取结果的后n位 echo "nigar-haha$RANDOM" echo "nigar-haha$RANDOM" | md5sum echo "nigar-haha$RANDO...

作死罢了 282

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux系统怎么自动生成字符,linux系统产生随机数或字符的6种方法

方法1:通过系统环境变量($RANDOM)实现示例li@li-pc:~$ echo $RANDOM25600li@li-pc:~$ echo $RANDOM17996方法2:通过openssl产生随机数示例li@li-pc:~$ openssl rand -base64 8lX6o7+VUgsU=li@li-pc:~$ openssl rand -base64 20Fb3dyYyXn0pYJMuf...

weixin_36444661的博客 364

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

shell生成随机数的方法

方法1:使用/dev/urandom [root@localhostshell]#tr-dc"0-9"</dev/urandom|head-c10#生成10个数字 5798734885 [root@localhostshell]# [root@localhostshell]#tr-dc"a-z"</dev/urandom|...

weixin_30369041的博客 292

【转】Linux系统产生随机数的6种方法

1、通过系统环境变量($RANDOM)产生随机数 [root@localhost ~]# echo $RANDOM 3849 [root@localhost ~]# echo $RANDOM 14931 [root@localhost ~]# echo $RANDOM 12488 [root@localhost ~]# echo $RANDOM |md5sum |cut -c 1-8 #获取8...

全栈测试笔记 2737

linux下获取随机数的方法

linux下获取随机数的方法 利用纳秒来获取随机九位数 date +%N 随机九位数 date +%N |head -c8 随机8位数字 date +%N | cut -c2-9 date +%N | md5sum | head -c8 随机8位数字带字母 date +%N | cksum | cut -c1-8 随机8位...

黑白一戒 728

Linux下生成随机数与字符串

Linux Shell 产生随机数的多种方法

qq_21239475的博客 1763

linux shell脚本 随机数,shell 生成随机数的实现方法总结

shell 生成随机数的实现方法总结1. 使用系统的 $RANDOM 变量mimvp@ubuntu:~$ echo $RANDOM17617$RANDOM 的范围是 [0, 32767]如需要生成超过32767的随机数,可以用以下方法实现。例:生成400000~500000的随机数#!/bin/bashfunction rand(){min=$1max=$(($2-$min+1))num=$(($...

weixin_39821330的博客 1459

Linux系统产生随机数的方法

Linux系统产生随机数的方法1. 通过系统环境变量($RANDOM)实现2. 通过openssl产生随机数3. 通过date获得随机数4. 实战训练 1. 通过系统环境变量($RANDOM)实现 echo $RANDOM 注意: RANDOM的随机数范围为0 ~ 32767,因此,加密性不是很好。 解决办法: 可以通过在随机数后增加加密字符串(就是和密码生成有关的字符串)的方式解决,最后再一...

kaiser king的博客 463

shell md5sum命令和Linux系统产生随机数

Linux命令之md5sum 在网络传输、设备之间转存、复制大文件等时,可能会出现传输前后数据不- -致的情况。这种情况在网络这种相对更不稳定的环境中,容易出现。那么校验文件的完整性,也是势在必行的。 md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同 md5值是一个128位的二进制数据,转换成16进制则是32...

weixin_45029822的博客 715

linux编写随机数脚本,shell编程中指定范围的随机数生成实现代码示例

1.shell获取指定范围的随机数1.1 获取F范围【1-E】内的随机数echo $((RANDOM%E+1))1.2 获取40范围【1-40】的随机数echo $((RANDOM%40+1))shell脚本生成[4,9]范围内的随机整数,包含边界值4和9,并将随机数序列存放在一个数组中。功能要求:要求不能有重复的随机数. 参考:shell不重复随机数生成方法(模拟彩票随机抽奖)代码示例:#!/b...

weixin_35924003的博客 3328

Linux产生随机数

linux生成随机数

oldboy1999的博客 3253

Linux下产生随机数码的多种方法

文章目录 第一种:借助环境变量$RANDOM 1. 产生0-25范围内的数,用这个环境变量对26取余即可。 2. 产生6位数的整数,用这个环境变量加上100000即可。 3. 产生加密的随机数码,将随机数管道给命令md5sum命令即可。 4. 需要固定位数的随机数码,将随机数管道给命令md5sum命令再管道给cut命令即可。 第二种:通过openssl产生随机数 第三种:通过时间命令date产生随...

张存的博客 872
上一篇: Linux: 变量
下一篇: JAVA: equals 思考
Coder-Qian
博客等级 码龄11年 63粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值