Linux---计划任务
本章主要介绍如何创建计划任务
- 使用 at 创建计划任务
- 使用 crontab 创建计划任务
有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种: 一个是at计划任务,另一个是 crontab计划任务。
下面我们分别来看这两种计划任务的使用方法。
at
at计划任务是一次性的,到了指定的时间点就开始执行指定的命令,执行完成之后,不会重复执行这个命令。
首先查看系统中是否存在at计划任务,命令是atq或at -1(字母1),命令如下。
[root@rhel03 ~]# atq
[root@rhel03 ~]#
[root@rhel03 ~]# at -l
[root@rhel03 ~]#
这两个命令都没有任何输出,说明当前系统中并不存在任何计划任务。下面开始创建at计划任务,at的用法如下。
at 时间点 <按 【Enter】键>
> 输入要执行的命令
Ctrl+D 提交
例如,要在2025年12月12日执行hostname命令,命令如下。
[root@rhel03 ~]# at 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 1 at Fri Dec 12 11:48:00 2025
[root@rhel03 ~]#
这里只是指定了日期,并没有指定在2025年12月12日的几点执行。那么,创建这个计划任务时是几点几分,例如,这里是在11点48分创建的at计划任务,那么到了2025年12月12 日的11点48分就要自动执行hostname命令了。
如果要指定某个时间点,格式如下。
at 时间 日期 <按 【Enter】键>
> 输入要执行的命令
Ctrl+D 提交
例如,要在2025年12月12日上午10点执行 hostname命令,命令如下。
[root@rhel03 ~]# at 10:00 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 2 at Fri Dec 12 10:00:00 2025
[root@rhel03 ~]#
注意:
- 这里是24小时制的,所以10:00指的是上午10点,如果想指定下午10点,则要写成22:00。
- 写时间最多只能精确到分,不能精确到秒。
这里上午用am表示,下午用pm表示。例如,要在2025年12月12日下午10点执行 hostname命令,命令如下。
[root@rhel03 ~]# at 10pm 2025-12-12
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 3 at Fri Dec 12 22:00:00 2025
[root@rhel03 ~]#
at也支持某天之后的某个时间点运行一个命令。例如,要在3天之后的下午4点执行, hostname命令,命令如下。
[root@rhel03 ~]# at 4pm +3days
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 4 at Mon Dec 11 16:00:00 2023
[root@rhel03 ~]#
这里“+”两边有没有空格都可以,days可以换成weeks,表示3周之后的下午4点。
如果想在第二天的下午4点执行hostname命令,命令如下。
[root@rhel03 ~]# at 4pm +1days
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 5 at Sat Dec 9 16:00:00 2023
[root@rhel03 ~]#
或者用关键字tomorrow,如果使用关键字tomorrow,则不需要加“+”,命令如下。
[root@rhel03 ~]# at 4pm tomorrow
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 6 at Sat Dec 9 16:00:00 2023
[root@rhel03 ~]#
上面的两条命令都是表示第二天的下午4点执行hostname命令。
这样的关键字还包括today,表示“今天”。例如,要在今天下午10点执行hostname命令,命令如下。
[root@rhel03 ~]# at 10pm today
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 7 at Fri Dec 8 22:00:00 2023
[root@rhel03 ~]#
如果是今天执行一个命令,关键字today是可以不写的,不写日期默认就是“今天”。
[root@rhel03 ~]# at 10pm
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 8 at Fri Dec 8 22:00:00 2023
[root@rhel03 ~]#
如果要表示几分钟或几小时之后,可以用关键字now。例如,要在2小时之后执行 hostname命令,命令如下。
[root@rhel03 ~]# at now+2hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 9 at Fri Dec 8 13:59:00 2023
[root@rhel03 ~]#
如果想1分钟之后删除/opt下面所有的内容,命令如下。
[root@rhel03 ~]# at now+1minutes
warning: commands will be executed using /bin/sh
at> rm -rf /opt/*
at> <EOT>
job 10 at Fri Dec 8 12:01:00 2023
[root@rhel03 ~]#
现在是点12点01分,等一会到12点02分时再次查看/opt中的内容
[root@rhel03 ~]# date ; ls /opt/
2023年 12月 08日 星期五 12:02:45 CST
[root@rhel03 ~]#
可以看到,/opt中的内容已经被清空。
到现在为止已经做了很多个at计划任务了,现在来查看一下有多少个了。通过atq或at -1 都可以查看。
[root@rhel03 ~]# atq
1 Fri Dec 12 11:48:00 2025 a root
2 Fri Dec 12 10:00:00 2025 a root
3 Fri Dec 12 22:00:00 2025 a root
4 Mon Dec 11 16:00:00 2023 a root
5 Sat Dec 9 16:00:00 2023 a root
6 Sat Dec 9 16:00:00 2023 a root
7 Fri Dec 8 22:00:00 2023 a root
8 Fri Dec 8 22:00:00 2023 a root
9 Fri Dec 8 13:59:00 2023 a root
[root@rhel03 ~]#
可以看到,每个at计划任务前都有一个编号。如果要删除某个at计划任务,可以用如下命令。
- atrm N 或
- at ‐d N
这里N指的是atq查看结果中前面的编号。
假设现在要删除编号为9的at计划任务,命令如下。
[root@rhel03 ~]# atrm 9
[root@rhel03 ~]#
如果删除编号为5到8的这些at计划任务,命令如下。
[root@rhel03 ~]# atrm {5..8}
[root@rhel03 ~]#
查看现在还有的at计划任务,命令如下。
[root@rhel03 ~]# atq
1 Fri Dec 12 11:48:00 2025 a root
2 Fri Dec 12 10:00:00 2025 a root
3 Fri Dec 12 22:00:00 2025 a root
4 Mon Dec 11 16:00:00 2023 a root
[root@rhel03 ~]#
可以看到,5到9都已经删除了,现在只剩下1到4了。
查看at计划任务的具体内容,命令如下。
- at ‐c N
这里N指的是 atq查看结果中前面的编号。例如,要查看第一个at计划任务的内容,可以通过如下命令。
[root@rhel03 ~]# at -c 1 | tail -3
${SHELL:-/bin/sh} << 'marcinDELIMITER05cc464a'
hostname
marcinDELIMITER05cc464a
[root@rhel03 ~]#
这里at -c 1的结果太多,所以通过管道传递给tail 命令,获取最后3行的内容。可以看到, 第一个at计划任务中执行的命令是hostname。
任何用户都是可以创建at计划任务的,下面使用tom用户创建一个at计划任务。在第二个终端中使用tom登录,然后用atq查看是否有at计划任务。
[tom@rhel03 ~]$ atq
[tom@rhel03 ~]$
可以看到,tom用户并没有at计划任务。下面使用tom用户随便创建一个at计划任务,例如,要在3小时之后执行hostname命令。
[tom@rhel03 ~]$ at now+3hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 12 at Fri Dec 8 15:13:00 2023
[tom@rhel03 ~]$
这里是可以正常创建的,如果要禁止哪个用户创建at计划任务,只要把这个用户名写 入/etc/at.deny中即可,一行一个用户。下面练习禁止 tom用户创建at计划任务,使用root 做如下操作。
[root@rhel03 ~]# echo tom > /etc/at.deny
[root@rhel03 ~]# cat /etc/at.deny
tom
[root@rhel03 ~]#
凡是出现在/etc/at.deny文件中的用户都是不允许创建at计划任务的。切换到tom用户创 建at计划任务。
[tom@rhel03 ~]$ at now+1hours
You do not have permission to use at.
[tom@rhel03 ~]$
可以看到,tom用户已经没有权限创建了。
如果想继续允许tom用户创建at计划任务,有以下两种方法。
(1)把tom用户从/etc/at.deny中删除。
(2)把 tom用户添加到/etc/at.allow中。
/etc/at.allow这个文件默认不存在,需要创建出来,且at.allow 的优先级要高于 at.deny,所以tom 如果同时出现在这两个文件中,那么at.allow生效。
下面设置tom用户可以创建at计划任务,使用root做如下操作。
[root@rhel03 ~]# echo tom > /etc/at.allow
[root@rhel03 ~]# cat /etc/at.allow
tom
[root@rhel03 ~]# cat /etc/at.deny
tom
[root@rhel03 ~]#
现在tom用户在at.allow 和 at.deny中都存在,at.allow生效,所以 tom用户是可以创建 at计划任务的。切换到tom用户创建at计划任务。
[tom@rhel03 ~]$ at now+1hours
warning: commands will be executed using /bin/sh
at> hostname
at> <EOT>
job 13 at Fri Dec 8 13:18:00 2023
[tom@rhel03 ~]$
这里可以看到at提示符,说明tom用户可以创建at计划任务了,按【Ctrl+C】组合键终止。
crontab
at计划任务是一次性的,执行完成就结束,不会重复执行。如果想定期执行某个任务,例如,每周日凌晨2点执行一个命令,这时就要用到crontab了。
查看当前用户是否有 crontab计划任务,可以用crontab-1命令。如果要查看其他用户是否有crontab计划任务,可以用“crontab -1-u用户名”命令,不过-u选项只有root才能 用。
使用root用户查看自己有没有crontab计划任务,命令如下。
[root@rhel03 ~]# crontab -l
no crontab for root
[root@rhel03 ~]#
使用root用户查看tom用户是否有crontab计划任务,命令如下。
[root@rhel03 ~]# crontab -l -u tom
no crontab for tom
[root@rhel03 ~]#
创建crontab计划任务的命令是crontab -e,如果为其他用户创建crontab计划任务,则用“crontab -e -u用户名”命令。当使用crontab-e命令时,会打开一个临时文件,用与 vim 一样的语法来编辑此文件即可。先按【i】键进入插入模式,编辑完成之后,按【Esc】 键退回到命令模式,在末行模式中输入“wq”保存退出。在此文件中凡是以“#”开头的,都 是注释行。
crontab定义计划任务的语法如下。
- 分 时 天 月 周 命令
注意:因为在crontab中使用的并非系统的PATH变量,所以此处语法中要执行的命令最好能加上路径, 例如,要执行ifconfig命令,则写作/sbin/ifconfig;要执行hostname命令,则写作 bin/hostname。命令的路径可以通过which命令来查询。
几个时间单位的意义如下。
- 分:几点几分的分。
- 时:几点,24小时制。
- 天:几号。
- 月:几月份。
- 周:星期几。
这几个时间单位可以用空格,也可以用【Tab】键来分隔。
如果不考虑某个时间单位,例如,不管今天是几号,只要不是周末我们就上班,不考虑“天”的情况下,那么可以用*表示。
这里每个时间点都可以写多个值,用英文逗号“,”隔开,例如,在分的位置写“0,1.,5,10", 表示0分、1分、5分、10分。
也可以用横杠“-”表示“到”的意思,例如,在分的位置写“0-10”,表示0到10分。
这里“0-10”的完整写法是“0-10/1”,表示从0分到10分的每一分钟,从0开始每次增加1,然后到10。如果表示“每N分钟”,则写成“0-10/N”,例如,0到10中每2分钟,则 写成“0-10/2”,表示0分、2分、4分、6分、8分、10分。
练习1:每天上午7点整执行hostname命令,如果写成如下命令。
# 分 时 天 月 周* 7 * * * /usr/bin/hostname
这种写法是不对的,第一个位置是分,这里写成了*,表示7点的每一分,包括0分、1 分……但是所谓7点整的意思是7点0分,所以要写成如下命令。
# 分 时 天 月 周0 7 * * * /usr/bin/hostname
练习2:每周一到周五的上午7点整执行hostname命令,命令如下。
# 分 时 天 月 周0 7 * * 1,2,3,4,5 /usr/bin/hostname
这里可以写成如下命令。
# 分 时 天 月 周0 7 * * 1-5 /usr/bin/hostname
这里1-5表示周一到周五,如果是周六的上午7点整,就不会执行hostname命令。
练习3:第一季度中每周一到周五的上午7点整执行hostname命令,命令如下。
# 分 时 天 月 周0 7 * 1-3 1-5 /usr/bin/hostname
一年的第一季度是1到3月份,这里分、时、月、周(没有天)是“和”的关系,这4个时间单位必须都满足才能执行hostname命令。
所以,5月份的周三上午7点整是不会执行hostname命令的,因为“月”没有满足条件。
练习4:第一季度中每月上旬的上午7点整执行hostname命令,命令如下。
# 分 时 天 月 周0 7 1-10 1-3 * /usr/bin/hostname
一年的第一季度是1到3月份,每月上旬是1到10日,这里分、时、天、月(没有周) 是“和”的关系,这4个时间单位必须都满足才能执行hostname命令。
所以,5月8日上午7点整是不会执行hostname命令的,因为“月”没有满足条件。大家 要记住,“天”和“周”是“或”的关系,即
(1)分、时、月、周同时满足了,即使“天”不满足条件,也会执行指定的命令。
(2)分、时、天、月同时满足了,即使“周”不满足条件,也会执行指定的命令。
练习5:在5个时间点都写的情况,命令如下。
# 分 时 天 月 周0 7 1-10 1-3 1-5 /usr/bin/hostname
这里天和周的位置都写了,本句的意思并不是说每年1到3月份的上旬,且要满足周一到周五的上午7点整才执行hostname命令。
这句的意思是每年的1到3月份这3个月,每月1到10日或周一到周五(二者满足其一),上午 7点整都会执行hostname命令。这条其实综合了上面练习3和练习4中的意思。
现在最终的crontab计划任务内容如下。
[root@rhel03 ~]# crontab -l
# 分 时 天 月 周0 7 * * * /usr/bin/hostname0 7 * * 1,2,3,4,5 /usr/bin/hostname0 7 * * 1-5 /usr/bin/hostname0 7 * 1-3 1-5 /usr/bin/hostname0 7 1-10 1-3 * /usr/bin/hostname0 7 1-10 1-3 1-5 /usr/bin/hostname
[root@rhel03 ~]#
如果要编辑 crontab计划任务,通过crontab -e来重新编辑;如果要删除,执行 crontab - r命令即可,命令如下。
[root@rhel03 ~]# crontab -r
[root@rhel03 ~]# crontab -l
no crontab for root
[root@rhel03 ~]#
普通用户也是可以创建crontab计划任务的,如果不想让这个用户创建crontab计划任务, 则把这个用户写入/etc/cron.deny中即可,一行一个用户。这个文件默认为空,命令如下。
[root@rhel03 ~]# cat /etc/cron.deny
[root@rhel03 ~]#
如果不希望tom用户创建crontab计划任务,则把tom用户写入这个文件中,命令如下。
[root@rhel03 ~]# echo tom > /etc/cron.deny
[root@rhel03 ~]# cat /etc/cron.deny
tom
[root@rhel03 ~]#
在第二个标签中用tom登录,然后测试创建一个crontab计划任务,命令如下。
[tom@rhel03 ~]$ crontab -e
You (tom) are not allowed to use this program (crontab)
See crontab(1) for more information
[tom@rhel03 ~]$
可以看到,tom用户现在无法创建crontab计划任务了。
如果又想让 tom用户可以创建crontab计划任务,有以下两种方法。
- 把tom用户从/etc/cron.deny 中删除,这种方法大家自行练习。
- 创建/etc/cron.allow,这个文件默认不存在,把tom用户名写到此文件中,命令如下。
[root@rhel03 ~]# ls /etc/cron.allow
ls: 无法访问'/etc/cron.allow': 没有那个文件或目录
[root@rhel03 ~]# echo tom > /etc/cron.allow
[root@rhel03 ~]#
现在tom既出现在/etc/cron.allow中,又出现在/etc/cron.deny中,命令如下。
[root@rhel03 ~]# cat /etc/cron.allow
tom
[root@rhel03 ~]# cat /etc/cron.deny
tom
[root@rhel03 ~]#
此时cron.allow生效。
在第二个标签中用tom登录,crontab计划任务是能够创建的。
系统中也自带一些crontab计划任务,在/etc 中存在几个以cron开头的目录,命令如下。
[root@rhel03 ~]# ls /etc/cron*
/etc/cron.allow /etc/cron.deny /etc/crontab/etc/cron.d:
0hourly raid-check/etc/cron.daily:
logrotate/etc/cron.hourly:
0anacron/etc/cron.monthly:/etc/cron.weekly:
[root@rhel03 ~]#
每天都会执行一次/etc/crondaily中的脚本,每小时都会执行一次/etc/cron.hourly中的 脚本,每月都会执行一次/etc/cron.monthly中的脚本,每周都会执行一 次/etc/cron.weekly中的脚本。
相关文章:
Linux---计划任务
本章主要介绍如何创建计划任务 使用 at 创建计划任务使用 crontab 创建计划任务 有时需要在某个指定的时间执行一个操作,此时就要使用计划任务了。计划任务有两种: 一个是at计划任务,另一个是 crontab计划任务。 下面我们分别来看这两种计划…...
.NET微信网页开发之通过UnionID机制解决多应用用户帐号统一问题
背景 随着公司微信相关业务场景的不断拓展,从最初的一个微信移动应用、然后发展成微信公众号应用、然后又有了微信小程序应用。但是随着应用的拓展,如何保证相同用户的微信用户在不同应用中登录的同一个账号呢?今天的主题就来了.NET微信网页…...
【docker】docker入门与安装
Docker 一、入门 Docker的主要目标是:Build, Ship and Run Any App, Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能做到一次镜像,处处运行。 Docker运行速度快的原因 Docker有比虚拟…...
视觉学习笔记12——百度飞浆框架的PaddleOCR 安装、标注、训练以及测试
系列文章目录 虚拟环境部署 参考博客1 参考博客2 参考博客3 参考博客4 文章目录 系列文章目录一、简单介绍1.OCR介绍2.PaddleOCR介绍 二、安装1.anaconda基础环境1)anaconda的基本操作2)搭建飞浆的基础环境 2.安装paddlepaddle-gpu版本1)安装…...
深入分析ClassLocader工作机制
文章目录 一、ClassLoader简介1. 概念2. ClassLoader类结构分析 二、ClassLoader的双亲委派机制三、Class文件的加载流程1. 简介2. 加载字节码到内存3. 验证与解析4. 初始化Class对象 四、常见加载类错误分析1. ClassNotFoundException2. NoClassDefFoundError3. UnsatisfiledL…...
算法通关村第十二关—字符串转换(青铜)
一、转换成小写字母 LeetCode709.给你一个字符串s,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 示例1: 输入:s"Hello" 输出:"hello" 示例2: 输入:s&qu…...
C#基础与进阶扩展合集-基础篇(持续更新)
目录 本文分两篇,进阶篇点击:C#基础与进阶扩展合集-进阶篇 一、基础入门 Ⅰ 关键字 Ⅱ 特性 Ⅲ 常见异常 Ⅳ 基础扩展 1、哈希表 2、扩展方法 3、自定义集合与索引器 4、迭代器与分部类 5、yield return 6、注册表 7、不安全代码 8、方法…...
ReactJs笔记摘录
文章目录 前言目录结构组件动态组件高阶组件 Hook函数useStateuseEffectuseContextuseReduceruseCallbackuseMemo JSX语法根元素与斜杠使用变量推荐使用className替代class属性写法三元表达式 vs &&antd和tailwindcss 组件通信父传子:props和自定义函数事件…...
2023 re:Invent使用 PartyRock 和 Amazon Bedrock 安全高效构建 AI 应用程序
前言 本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 “Your Data, Your AI, Your Future.(你的数据,你的AI&…...
Mac 打不开github解决方案
序言 github 时有打不开的情况,为此很是烦恼,这里分享一下如何解决这种问题,其实问题的本质是在访问github网页时无法通过github.com的二级域名进行动态域名解析。 解决方案 手动配置静态文件hosts,将该域名和IP的映射关系添加…...
十五 动手学深度学习v2计算机视觉 ——全连接神经网络FCN
文章目录 FCN FCN 全卷积网络先使用卷积神经网络抽取图像特征,然后通过卷积层将通道数变换为类别个数,最后通过转置卷积层将特征图的高和宽变换为输入图像的尺寸。 因此,模型输出与输入图像的高和宽相同,且最终输出通道包含了该空…...
elementUI中的 “this.$confirm“ 基本用法,“this.$confirm“ 调换 “确认“、“取消“ 按钮的位置
文章目录 前言具体操作总结 前言 elementUI中的 "this.$confirm" 基本用法,"this.$confirm" 调换 "确认"、"取消" 按钮的位置 具体操作 基本用法 <script> this.$confirm(这是数据(res.data࿰…...
K8S 常用命令
获取所有的pod资源: kubectl get pod 获取所有的命名空间: kubectl get namespace 获取所有的Deployment资源: kubectl get deployment 删除指定的deploy: kubectl delete deploy nginx 获取所有的服务: kubectl get serv…...
12.使用 Redis 优化登陆模块
目录 1. 使用 Redis 优化登陆模块 1.1 使用 Redis 存储验证码 1.2 使用 Redis 存储登录凭证 1.3 使用 Redis 缓存用户信息 1. 使用 Redis 优化登陆模块 使用 Redis 存储验证码:验证码需要频繁的访问与刷新,对性能要求较高;验证码不需要永…...
Nacos-NacosRule 负载均衡—设置集群使本地服务优先访问
userservice: ribbon: NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则 NacosRule 权重计算方法 目录 一、介绍 二、示例(案例截图) 三、总结 一、介绍 NacosRule是AlibabaNacos自己实现的一个负载均衡策略&…...
软件设计师——信息安全(二)
📑前言 本文主要是【信息安全】——软件设计师——信息安全的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄…...
Unity中实现ShaderToy卡通火(原理实现篇)
文章目录 前言一、我们在片元着色器中,实现卡通火的大体框架1、使用 noise 和 _CUTOFF 判断作为显示火焰的区域2、_CUTOFF : 用于裁剪噪波范围的三角形3、noise getNoise(uv, t); : 噪波函数 二、顺着大体框架依次解析具体实现的功能1、 uv.x * 4.0; : …...
引迈信息-JNPF平台怎么样?值得入手吗?
目录 1.前言 2.引迈低代码怎么样? 3.平台亮点展示 4.引迈产品特点 5.引迈产品技术栈: 1.前言 低代码是近几年比较火的一种应用程序快速开发方式,它能帮助用户在开发软件的过程中大幅减少手工编码量,并通过可视化组件加速应用…...
大数据云计算——使用Prometheus-Operator进行K8s集群监控
大数据云计算——使用Prometheus-Operator进行K8s集群监控 一、 背景 在非operator配置的普罗中我们监控k8s集群都是通过配置configmap进行服务发现和指标拉取。切换到prometheus-operator难免会有些使用问题。不少用户已经习惯底层配置自动发现的方式。当过渡到servicemonit…...
[蓝桥杯刷题]合并区间、最长不连续子序列、最长不重复数组长度
前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录: 成功的关键在于对目标的持久追求。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 数据库 文章目录 前言合并区间问题📕现实应用大致思路代码实现代码讲解 最长不连续子序列&a…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
