linux-16 关于shell(十五)date,clock,hwclock,man,时间管理,命令帮助
想显示一下当前系统上的时间该怎么显示?有一个命令叫做date,来看date命令,如下图,
第一个星期几对吧?然后是月日小时分钟秒,最后一个是年对吧?CST指的是它的时间格式,我这个可以先姑且不用管它。这是我们的时间,当然这个时间由于我们是虚拟机,它很可能跟我们的统时间未必一致,这是虚拟机自己内在的问题,倒不是说我们系统有什么别的问题,或者时间走错了,倒不是这个。需要注意的是,date不但能够显示时间,还可以用来修改时间。data用于时间管理,当然在说时间管理之前,我们还得说一说linux的时间实现方式。
我不知道大家有没有留意过,就算我们的电脑关机了,下一次开机以后那个时间仍然是正确的。
我指的是Windows,这是为什么呢?我们怎么去衡量时间的?时间是个什么东西?大家知道,所谓二维指的是什么?有长和宽是吧?指的是平面结构,那三维指的是?立体,那四维呢?其实第四维就是时间轴。那时间到底是什么?我们能不能穿越?其实指的无非就是穿越时空,当然,你不能看电视,跟那不是同一概念,对吧?那肯定听说过虫洞或者黑洞吗?是吧,黑洞是什么?虫洞是什么?当然,我们不用探讨这些天文问题,就问时间是什么?这个概念,天天在说是吧?好像不是能特别解释的清楚。
但不管怎么讲,我们要进行时间计量的话,该怎么进行实现?那就意味着我们时光流逝一刻,我只要把这个流逝的长度给它记录下来,是不是就行?那怎么能够做的比较精确?像早期的钟表都是机械施工,中间的误差是非常大的,一般一天下来可能慢个一分钟,两分钟都有可能。而现在,计时器是靠什么计时的?靠什么?我们现在有很多表,我们称为叫电子表是吧?或者叫石英表,那到底是什么玩意儿?它是靠晶体振荡器来完成时间计时的,那种振荡器大概每秒钟可以振荡很多次,而且这种次数对于时间长度的衡量是非常非常精确的,能精确到什么程度?比如说专业级别的这种晶体振荡器用来使用的表,它一般来讲万年走错的时差也不会超过一秒。那现在主板上用于计量时间的那个设备就是个振荡器,就是个石英振振荡器或者叫晶体振荡器,但这种振荡器要想振荡起来,必须靠电才能震荡的,所以我们主板上都有一个纽扣电池,不知道有没有见到过?有没有这样的经历,有些手机你关机了,把电池一抠再装上,你会发现时间重置了。有没有发现啊?这些手机就是因为它的主板上没有带电池的原因,所以我们必须得自己修改时间。那它后来是怎么走的呢?没带纽扣电池,但是手机上是不是有电池啊?你把手机电池一抠它就没电了,所以就不能走了。但是我们的电脑关机了,你把电源拔了,他是不是照样可以走呀,这是为什么呢,主板上有块电池,这块电池当然有很多别的作用,能维持这个时钟继续走的也是它的一个重要作用之一,都一定要记得。这个时间我们可以把它称为叫硬件时间,或者称为叫实时时钟,叫RTC,我把它称为叫实时时钟 real time clock。每一次操作系统开机的时候,它都是从那个硬件时钟当中读取的当前时间,然后设置为当前系统时间。能理解了吗?这里面Windows主机每一次开机以后,你发现时间都是正确的,虽然Windows关机了,但是它仍然是正确的,本地的那个时钟虽然看上去很准,但它未必真的准,因为电池扣下来又装上去,中间可能不知道,是不是有可能会走错?那一旦发生这种情况怎么办?有没有留意过现在事实上在Windows里边,它会设置所谓的叫时间服务器。
网络时间服务器对吧,那这个时间服务器称为叫做ntp,我们称为叫网络时间协议,network time protocol。我们可以做一台主机,这台主机上的时间始终走的非常准。那我们的这些客户机呢?都可以以它的时钟作为我们的时钟,我们时钟不准,它通过网络读取别人的时间设定,然后改变本地时间来完成,但是这个在上网以后才行,或者是有时间服务器以后才行,但是这个我们先不管它。
需要注意的是,linux和Windows有一个不同的地方。我们的linux在开机的时候,它会通过rtc读取当前时间,但是一旦读取成功了,就不再使用这个时间了,以后我们的操作系统自身,就是我们内核自身,会通过软件的方式模拟震荡器在在系统内部来维持一个时钟,所以linux开机以后,它有两个时钟,一个叫硬件时钟,一个叫系统时钟,它有两个时间。只要我们操作系统在开机,在运行当中,我们内核在CPU的作用下就会自动进行计时的,所以这两个时钟很可能走的不一样,硬件始终在纽扣电池的供电下,它走的很准,但是我们的系统由于CPU非常繁忙,计时可能会出现误差的,这很有可能,但不管怎么讲,我们的系统时钟和硬件时钟对linux而言是不同的时间。那因此我们使用date命令所看到的时间是系统时间,而非硬件时间,想看硬件时间,可以使用clock命令,
或者使用hwclock叫硬件时间,hardware clock,如下图,
它俩时间还是比较接近的是吧?计时方式,一个是12时,这里显示为AM。PM指的是后半天,AM指的是前半天,这两个时间目前来讲还是一致的,但是如果我们修改了系统时间而没修改硬件时间,它俩时间很可能就不一致了。这个还需要注意,所以这两个时钟未必是同步的,你可以只改硬件,不改系统,也可以只改系统,不改硬件,它俩时间都未必一致。就算它俩刚开始一致,随后走着走着也可能会不一致了。那刚才我们使用date命令来查看了当前系统的时间以及日期等,
那我们如何去使用data修改当前使用时间?好,那顺便我们在此处就来看一看如何去修改,假如说一个命令我不会用,我忘了它该怎么去完成某种功能,该怎么办?我们来获得命令帮助,如何获得命令的使用帮助?获得命令使用帮助的方式可能不尽相同,有许多种,比如之前提到过,Linux命令分成内部命令和外部命令对吧?对于内部命令而言,它的帮助是这样获得的,内部命令有一个特有的方式,我们使用help命令,help本身也是内部命令,help加命令名就可以获得一个内部命令的使用帮助。比如 help command,比如看我help一下CD,如下图,
cd的使用方式给你介绍出来,当然都是英文的啊,Change the current directory to DIR.The variable $HOME is the default DIR. 什么之类的,这就是内部命令的使用帮助,help一下ls,如下图,
很可能就没法用了,看到了吗?这就是内部命令的使用帮助获得方式。另外很多内部命令很可能也支持-h选项,或者你使用-h它,但是它告诉你是它也能够使用帮助,但是这个不是正确的使用方法,知道就行,那再看外部命令怎么获得帮助?如何获得帮助?刚刚说过help ls不行了,那怎么办?ls --help,注意我们使用ls对于外部命令来讲,它都有一个长选项叫杠杠help,大多数的外部命令都支持,注意,不是所有的,一般来讲大多数的都使用杠杠help,Command --help 这是获得它的简要帮助信息的,如下图,
支持哪些选项?以及使用什么样的执行格式也都有详尽的说明。好了,那无论是内部命令还是外部命令。他们都有一个公用的使用帮助方式,我们把它称为叫手册,叫命令手册,也就所谓叫manual,那我们要查看一个命令的手册的话,就是用man命令,使用man,后面跟上一个命令,
就表示打开查看一个命令的命令帮助手册,命令使用手册就像我们买一个电器,买一个设备,是不是都有使用说明啊?就类似于那个使用手册,几乎所有命令都带有使用手册。各位应该明白,既然是使用手册了,它通常都应该是个文件,是不是?而对在我们的linux上,它通常是一个文本文档,但这个文档是压缩存放的,所以我们使用man ls的时候。man ls的时候,它就能够打开ls的那个对应手册文件了,但这个文件在什么地方?以后再说,如下图,
就打开这个手册了,先告诉name,这个命令是什么?以及它的简要使用说明或者功能说明,
SYNOPSIS,它的使用格式说明,description,它的使用描述,有些地方可以带个options,它的各种选项等等,所以它有很多全大写的,这表示分段的说明,手册的分段说明,后面还有什么?作者,REPORTING BUGS,如果当前这个命令发现有bug的话,那么将这个bug报告给谁?给你邮箱地址看到了吗?COPYRIGHT,这是版权,Copyright © 2006 Free Software Foundation, Inc.这叫自由软件基金会,说白了,自有软件基金会就是GNU,它也称为叫自由软件基金会,简写为fsf。然后,SEE ALSO指的是什么呢?如果想获得进一步的信息,请查看,就这意思,另外进行参照,就这意思。所以我们将来要找一些内容的话,找对应的段就行了,如果说某些命令有使用帮助的话,它可能还会出现像examples,也叫使用方法,使用事例等等。比如说还有我们的cd命令,你也可以man cd,但是需要注意,对于内部命令而言,你man的时候它man的不是cd,而man的是这个内部命令所属的shell,man cd,它显示的是bash的帮助,告诉你man是bash的内置命令,然后bash是什么呢?然后给你解释,如下图,
看到了吗?所以内部命令一般很少使用慢去查看,使用help是最简洁的方式。但是有没有发现man ls,有没有发现这个ls后面加了个括号一啊?是不是?看这个,LS(1) ,而且后面有个说明,叫user commands看到了吗?这是什么玩意?好了,那接下来我们要解释man了,要记得man是有章节的,man分章节。第一,后面显示个一就表示那是第一章节的,man的章节有八个,注意,它的常见章节有八个,第一个章节就刚才显示为1的,1表示这是用户命令,就刚才看到的user command,用户命令,什么叫用户命令啊?就是所有用户都可以使用的命令,包括普通用户也是,这是1,第一章节。第二章节表示这叫系统调用,第二章节内容所显示的都是系统调用。比如各位来看,我们man一下read,man read,如下图,
它告诉你这是个内容命令,仍然在第一章节看到了吧?但是我man 2 read,如下图,
那这里是不是显示read(2)了,告诉你这是个系统调用,调用格式,那看man后面可以加数字的,加数字什么意思呢?就是显示第几个章节中的内容,如果没指定章节,它显示哪一个?一二三四五六七往后排,哪一个先出现,就显示哪一个,不是所有命令第一章节都有。谁先出现,显示谁的?你比如man mount,没有给任何章节吧,回车应该显示几?第一次出现在哪个章节中就显示哪个章节,如下图,
所以如果多个章节中都有,它就显示第一次出现的,从小往大进行排序,那因此,多个章节中都有的话,我们就要自己指定后面的章节了。问题是我们怎么知道一个命令在哪些章节中有呢?那我们如何去查看章节?有个命令叫做whatis,后面跟上command可以显示这个命令的摘要信息,以及出现在哪些章节当中了,这个命令很好玩啊,叫what is?比如你看whatis read,如下图,
它说read在这几个章节中有,当然,加p这个我们不用管了,只看1和2,所以这这表示它第一和第二章节中都有,同样的道理,我使用whatis看一下ls,如下图,
是不是只有第一章节中有?1p可以不用看,这就是如何查看一个命令出现在什么章节当中了。第二章节中其实解释的是系统调用。
那然后第三个章节,除了系统调用之外,还有什么调用啊?库调用是吧,第三个章节当中是显示的是库调用,并非所有命令都有库调用,只有库才有库调用,如果碰巧一个命令叫某个名字,一个库也叫某个名字,它俩才会同时出现的,能理解这个意思吧,所以命令并不是库,库也不是命令,
之所以会同时出现,像刚才一个read既有用户命令它又是系统调用,为什么呢?只是它俩碰巧重名了而已。它俩并非是一码事,好,第三个章节是库调用。
第四个章节叫特殊文件,什么是特殊文件?其实设备文件都叫特殊文件,什么是设备文件?之前说过,在dev目录下,有什么块设备和字符设备,还记不记得,每一个块设备都有一个文件,每个字符设备也都有,设备文件是一类比较独特的文件,它在系统上,在你的磁盘上,真正的数据区域里面没有存储任何内容,它只是作为设备的访问入口存在的,那不是一个真正的文件。所以我们称为叫特殊文件,那因此,这里都是解释那些特殊文件是什么?我们来看,我们man tty,看有没有?如下图,
各位应该明白,这是第四个章节的tty,是不是,那tty就表示解释terminal,就是我们终端到底是什么的?我们之前说过终端,告诉你叫controlling terminal,用于控制终端的。对应的设备文件是dev下的tty看到了吧?而且告诉你这是一个字符文件,而且它的主号码是什么次号码是什么等等。当然,这些号码是什么以后会有解释,现在先不用管它,都是初步认识,现有一个大概的概念,好,这是第四个章节。
再看第五个章节,第五个章节中显示是叫文件格式,叫文件格式,什么是文件格式?很多的命令为了定义它的执行特性,可以使用选项,那有些命令它的选项可能不需要用户每一次都指定,或者是这个命令,我希望它开机自动启动,怎么执行呢?如果ls,你用了ls /root,开机就自动执行一次,而且想给它加个选项,但这种执行我们不是通过命令方式来实现,怎么办呢?对于非常复杂的执行文件,它通常都有一个叫做配置文件的文件,在这个配置文件中保存了以往可以通过选项指定的程序的执行特性或者执行属性。这能理解吗?所以这个配置文件当中类似于变量一样,或者什么等于什么的,这种方式来来定义这个程序的执行属性和特征。那问题是这个命令的这个文件到底有什么格式?它怎么使用呢?支持哪些选项?每个选项支持使用什么的取值啊等等。这些我们都需要额外定义的,举个简单例子,大家还记得我们的passwd命令吗?这个用来改用户密码的,那改了密码以后保存在什么地方或者用户的这些相关属性保存什么地方?其实跟用户账号相关的属性有两个文件,一个在etc下叫shadow,一个在etc下叫passwd,跟命令是一个名字,所以这个文件是有格式的,我们来看,cat passwd,如下图,
这里显示第五章节的,告诉你这是用户的密码文件,而且告诉你这冒号隔了几个段,第一段叫什么?第二段叫什么?都有详细解释的,明白吗?所以说这叫文件格式,就是解释某一个命令的对应的配置文件的语法的。说白了就是配置文件的语法,这是第五章节。
第六个叫游戏,这跟游戏相关的,linux是有游戏的,只不过都是一些休闲益智类的游戏,肯定不是DOTA,科学研究发现那种玩游戏时间长了会变笨变傻的,而且身体也会渐渐垮掉了是吧?这是现实表明,所以对于it专业人士而言,玩的游戏都是这种益智类的休闲小游戏,什么贪吃蛇呀,推箱子之类的,扫雷,玩一会就可以了,它这里对游戏的说明,所以这个我们不关心了,或者你可以自己手动装一遍linux,它里边默认带的有游戏,只不过我没装而已,好,这是第六个章节。
第七个叫杂项,不变归类的杂项,叫Miscellaneous,我们称叫杂项,不便归类的命令。
第八个章节实际上是我们将来用的比较多的叫做管理命令,这是管理员才有权限使用命令,通常,它是位于/sbin,/usr/sbin,/usr/local/sbin下的命令。而这里的用户命令,通常指的是于/bin,/usr/bin,/usr/local/bin等等,这些路径下的命令,这一类命令,管理员也可以用,普通用户也可以用。因为他们会修改硬件参数或者硬件工作特性,以及其他的系统级别的配置。之前使用那个mount命令。它就是一个挂载类的命令,它就是管理员的命令。好了,我想知道man命令怎么使用怎么办?那就是man man,想获得man自己的使用手册,如下图,
man formats and displays the on-line manual pages. 这里告诉我们man的使用格式,man还有一些选项,什么-f啊,-k啊,都不太常用,我就不管它了。但是章节的相关概念一定要记清楚。好,那我们接下来解释man对一个命令的描述,我们就以mount为例好了或者以date为例,如下图,
date的使用格式后面,它使用中括号括起来一个内容,在这里使用格式说明当中,中括号括起来的内容表示是可省略,叫做可省略,可以不用,像刚才我们使用data这些都是不是都没加呀?还有你看这些中间加个竖线的,这表示二选一或多选一,只能使用一个,不能同时使用的,叫多选一。除了这些之外,它可能还有别的,有的地方可能还会出现这种尖括号,<>,尖括号这表示必须给出的内容,它跟中括号刚好相反,中括号是可省的,而尖括号则表示必须给出的内容。非可选的,有时候可能在后面还会看到点点,...,可以出现多个,可以使用多次,你比如[option]...什么意思呢?
可以有多个选项,明白这意思吗?这表示可以出现多次,[]叫必选,<>叫是可选,...表示可以出现多次,可以重复多次,就这个意思,!表示多选一,也有花括号对吧?{},花括号其实没有特殊意义,它只是表示分组的,比方说有时候多选一的时候,只是对谁而言,比如说多选一的时候,针对哪一部分内容,他们之间是可选的,是多选一的,限定一个范围的,它是用来分组的,没有特殊意义。好,那我们再对man手册当中那些章节做一下说明,有时候在man中,可能会出现name,name表示什么意思?命令名称,简要使用说明对吧,还有一个叫SYNOPSIS,这表示用法说明,SYNOPSIS是用法说明,这表示命令名称及功能的简要说明,用法说明包括可用的选项,当然,它只是你列出来选项,没说选项是什么意义啊,DESCRIPTION,这指的是什么呢?这是描述,就是详尽描述,命令功能的详尽说明,包括每一个选项的意义,当然,有些命令可能把选项单独列出来,使用options来进行定义,就可能包括可能更精确一点,那有些命令可能直接有一个options,那它不在DESCRIPTION里面描述了,而是直接在这里说明每一个选项有的意义。有的还有个FILES,这表示命令相关的配置文件,bugs解释过了,这是报告bug给谁的,就不用再说了。对我们而言,有一种叫examples,使用示例,这段对我们而言很关键,有些命令你看了很多选项,你也不知道该怎么用,于是使用示例中会有说明,告诉该怎么用,像man lvcreate,如下图,
在最后面是不是有examples?也说明lvcreate怎么用,而且给你解释是什么意思?所以使用示例是很好的帮助。SEE ALSO,刚才已经解释过了,叫另外参照,其实有了man,对linux而言,我们几乎不需要任何额外资料了,任何时候我们使用命令的时候不会用了直接man就可以了,甚至这些选项更容易,你也不用记,只要有man,但是前提是能看得懂。
好,那我们就以date为例来看一下它的使用,如下图,
来看date的使用说明,date [OPTION]... [+FORMAT],后面还可以使用加号跟上,这表示什么意思呢?date指定一个选项,以后还可以使用format指定,比如说,我只想显示秒钟,你想默认的显示什么呢?年月日什么什么都有了,我只想显示秒动你去指定格式的,那问题是都有哪些格式?怎么指啊?它后面会有说明的,看到吗?它说format有哪些呢?看这里,FORMAT controls the output. The only valid option for the second form specifies Coordinated Universal Time. Interpreted sequences are:,看到没有,哪些百分号开头的都是,这就是format。好再往前,date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]],你可以使用date,使用[-u|--utc|--universal]指定这样一个时间去修改系统时间,可以使用date命令修改时间,[]表示可选,所以可以不用指了,后面也可以指定时间,这表示修改当前时间到某个时刻的,怎么改呢?MM表示月,DD表示日,hh表示小时,mm表示分钟,CC|YY表示年,月日小时分钟年,可以使用两位的年,也可以使用四位的年,比方像今年24,或者你写成2024都可以,[.ss],注意这个点不可少,如果你还要跟上秒的话就点儿秒钟,有没有发现都是两位啊?必须是两位,那如果是0,如果是1就写成01,然后回车,改好了,看到了吗?如下图,
就这么简单,当然,大多数都可以省略的,再看下使用格式,[MMDDhhmm[[CC]YY][.ss]],可以只指定月日小时分钟,年可以不用,秒也可以不用,年不指定的话就是当前一年,秒钟不止就是零零,简单吧,那由此知道它该怎么来用了。
先说man的使用格式,大家发现使用man,打开手册页以后,它有很长的内容,对不对?那如何进行翻页?怎么看后面内容?当然,叫翻屏更合适一点,这不是页,是屏,怎么实现翻屏的?怎么向后翻向前翻?像尾部翻屏,以后把它称为叫向后了,向后翻,一屏使用空格键,space,敲空格键,向前翻一屏,使用b键,向后翻一行,使用回车键enter,向前翻一行,是用k键。但是这样一来,就不得不一页一页看了对不对?如果说现在明确想找一下它的事例想看一看,怎么办?
那实际上,它还支持查找功能,那怎么查找呢?它有两种方式,第一,光使用斜杠加上关键字加回车,/keyword ,第二种方式,我们使用问号加敲回车,?keyword ,但它也有区别,一个是自文件首部向尾部搜索,一个是反过来,/keyword是自前向后,?keyword是字后向前。它是从当前位置开始的,有时候可能是这样子,搜索了字符有多个文本?无论是向前还是向后,一搜不当紧,它有多个,那该怎么办呢?敲n键。n键表示下一个,大n是前一个,N键表示前一个,对于斜杠和问号来讲,它的意义是不一样的,是不是方向不一样了?因为问号本来和斜杠的方向就不一样,在里边找一个叫time的这个关键词,我怎么找?回车后面反量显示,我们敲n,n小写,n大写n都倒回去了,如下图,
当前所有显示的这个默认是不区分大小写的。这是它的几个基本使用方法,我们要退出使用q,q表示退出。
我们继续来看它,format这一项格式怎么使用的?比如像这里,我们随便找一个吧,像这里百分号大写的d(%D)表示什么呢?显示日期格式是月日年。那怎么用呢?date +%D,如下图,
月日年看到了吗?那如果我们只想显示秒钟怎么办?只显示年怎么办?只显示时怎么办?
我让你显示时间怎么办?自己试一试,看能不能找到的办法,动手试试,是不是很简单啊?比方说我显示年该怎么办?百分号大写的y是吧?或者小写y都行,比如说date +%y 回车,如下图,
小y只显示两位年份,不但如此,它还可以这样用,比如说今年是什么年?date +"this year is %Y" 如下图,
前面单词还能原样不动的进行显示,直接显示这么一句话,还可以带标点符号,
date +"this year is %Y." ,如下图,
不但如此,还可以换行,今天是什么天?那怎么显示天?date +%d ,如下图,
比方在这里再写个今天是哪一天是不是可以?date +"this year is %Y.today is %d.",如下图,
那大家发现这两行是不是在同一行里边了?也可以让它换行,将这两行显示在不同行当中也可以的,那怎么办呢?在这里百分号n,表示一个新行,看到了吗?来给它加个百分号n,就表示从这个地方开始,它会换一个新回车看到吗?date +"this year is %Y.%ntoday is %d.",如下图,
那如果显示时间,怎么显示,就是小时分钟秒,date +%T,如下图,
懂了吧,这叫小时分钟秒。而使用date +%F,会显示什么?这是什么意思?来看F是什么?
%F full date; same as %Y-%m-%d,是这种格式的,如下图,
年月日,当然这种格式我们也可以这样写,那刚才我们说年怎么写的?大Y是吧?月是小m,日是小d,date +%Y-%m-%d,如下图,
也是年月日效果是不是,一样的,就显示几点几分,怎么写?date +%H:%M,如下图,
大S是什么?大S是秒钟,那小S呢?unix元年计时法从一九七零年1月1号零点零分零秒至此刻为止,所经过的秒数,你可能觉得很奇怪,它为什么要这样计时?但是它这里有说明看到没有?是utc时间,格林威治天文台知道吧,也有人叫做格林尼治是吧?格林威治天文台,那个时间本初子午线所经过的时间,那一刻,为标准时间对不对?然后有东时区和西时区对吧?然后进行偏移计时的,那这个时间就是从格林威治天文台那个时间的零点零分零秒,就是一九七五年1月1号至此刻为止,所经过的时长,大家想象一下,无论你是东八区还是西三区,从格林威治天文台时间一九七零年1月1号零点零分零秒至此刻,所经过的时长一样不一样?一样,但是当地时间一样不一样,不一样,理解什么意思了吗?如果我们现在在数据库中记录数据的话,这是哪一天发生的一笔交交易,大家都应该知道我们现在全球经济一体化对不对?任何我们网站访问可能随时访问国外的网站,如果我们都以当地时间计时的话,进入到数据库里面,可能都是混乱的,能理解了吗?所以我们记录这个时间,并且在显示的时候换算成当地时间,它的时长一致,精确时间是一样的,但是显示的当地时间不一样,因此在很多数据库里边要记录时间的话,通常都使用这种方法来精确记录时间。所以你千万不要以为你看上去是11点13分,那这个时候时间就一定是11点13分,不是这么回事的,我们是东八区偏移时间的,那因此这个东西我们就把它称为叫时间戳,它也是一种时间计时法,那我们来看,我们使用date +%s的显示结果,如下图,
再过两秒钟,显示结果就不一样了,如下图,
看到吗?再过两秒钟可能就不一样了。我们用这个结果,你除以一年是365天是吧?闰年是366天,所以想得到经过的多少年通过直接用除法得到的结果不准确,但不管怎么讲,至少可以算出从一九七零年1月1号到今天为止,经过多少天了是没错的,因为一天只可能是八六四零零秒,没错吧,所以用这个除以八六四零零得到的结果,一定是从一九七零年1月1号起到今天所经过的天数,这应该是没有错的,当然它所经过的天数,今天是不算的,因为今天没过去,好,这就是我们date。我们使用date改一下时间看看,如下图,
我们使用clock来看一下我们硬件时间,如下图,
改了么,没有,所以我们说它是两套时间,对不对?系统改动的时间跟硬件时间,现在以系统为准,硬件是错的,对不对?那就以系统为准,把硬件时间改成系统时间,是不是这意思?那怎么办?hwclock这个命令就可以实现了,使用-w就表示将系统时间同步到硬件去,所谓同步到硬件去,就意味着改硬件,而不是改系统,能理解吧,所以你看让w改一下,再使用clock,hwclock -w,如下图,
那么硬件时间改了吗?看懂了吧,这是hwclock -w,好了,现在硬件时间准了,我改系统时间,现在改个错的,比如说现在是11月15号12点,date 11151132,如下图,
看现在系统时间是错的,但硬件时间是对的,那因此这个时候就需要把系统时间改为硬件时间,
也就是意味着把硬件时间同步到系统上来,对吗?那这时候怎么办呢?仍然使用hwclock,我们使用杠s,读取硬件时钟到系统里边,hwclock -s,来看看,如下图,
对了吗?没问题吧?顺便说另外一个概念,叫hwclock默认情况下,它是显示硬件时钟的而-w表示什么意思?-s这又是什么意思?-w表示将系统时间写到硬件中去,-s表示将硬件写到系统上来,是不是这样子?就表示以谁为准,w就表示以系统为准,s就表示以硬件为准。但是它有一个更长的选项,有详细说明的,来看man一下,如下图,
hwclock -s or hwclock --hctosys,硬件时钟到系统,以硬件为准,hwclock -w or hwclock --systohc,是系统时钟到硬件没错吧?--systohc是它的常选项,所以你使用-w或者--systohc都行,而我们要想显示时间,通常是-r,这表示读取时间,其实不加-r选项效果是一样的。注意,将来我们配置服务器的时候,是非常常见的操作用法,所以务必记住这些命令的使用。
有没有发现我们一个命令搞定了,比敲点鼠标点,下一步下一步要快得多吧?开始慢慢学脚本的时候,会发现可以把一大堆命令放到一个文件里边一并执行,速度非常快。好,这就是我们man命令的使用和hwclock以及date命令的使用。
相关文章:
linux-16 关于shell(十五)date,clock,hwclock,man,时间管理,命令帮助
想显示一下当前系统上的时间该怎么显示?有一个命令叫做date,来看date命令,如下图, 第一个星期几对吧?然后是月日小时分钟秒,最后一个是年对吧?CST指的是它的时间格式,我这个可以先姑…...
厦门凯酷全科技有限公司深耕抖音电商运营
在数字经济飞速发展的今天,抖音电商平台以其独特的社交属性和庞大的用户基础,迅速成为众多品牌和商家的新战场。在这个充满机遇与挑战的市场中,厦门凯酷全科技有限公司凭借其专业的服务、创新的理念和卓越的执行力,成为了抖音电商…...
C++多线程实战:掌握图像处理高级技巧
文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 在当今的计算世界中,…...
CityEngine实践——常用cga文件解析系列(2)
上回书说到了: 3、RULES/COMPONENTS/MASSING/SUBURBAN_BLOCK DETACHED_HOUSES.CGA ROWHOUSES.CGA SEMI_DETACHED_HOUSES.CGA 4、RULES/COMPONENTS/MASSING/URBAN_BLOCK MONOBLOCK.CGA PERIMETER_8_SHAPE.CGA PERIMETER_MULTIPART.CGA 这个cga挺有意思,…...
【人工智能】因果推断与数据分析:用Python探索数据间的因果关系
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 因果推断是数据科学领域的一个重要方向,旨在发现变量间的因果关系,而不仅仅是相关性。本篇文章将从因果推断的理论基础出发,介绍因果关系的定义与建模方法,涵盖因果图(Causal Graph)、d-分离、反事实估计等…...
depth wisepoint wise
文章目录 1. Description2. code 1. Description point wise 1. function: for the separated pixel without pixel confusion 2. kernel size : 3x3 ,star matrix [[0,0,0],[0,1,0],[0,0,0]] depth wise 1. fuction: for the separated channel without channel confusion 2.…...
AI大模型学习笔记|神经网络与注意力机制(逐行解读)
来源分享链接:通过网盘分享的文件:详解神经网络是如何训练的 链接: https://pan.baidu.com/s/12EF7y0vJfH5x6X-0QEVezg 提取码: k924 内容摘要:本文深入探讨了神经网络与注意力机制的基础,以及神经网络参数训练的过程。以鸢尾花数…...
2025软考中级《数据库系统工程师》案例模拟题合集
1.【说明】某销售企业正在实施电商平台项目,主要功能模块包括用户中心、商品中心、交易中心、支付中心、营销中心等。其中支付中心模块包括了一个账户表:Account (ano, aname, balance),其中属性含义分别为:账户号,账户…...
12.10深度学习_经典神经网络_GoogleNet自我理解
为了更清晰地展示 GoogLeNet 中每个卷积层及其相关参数,我们可以将这些信息整理成表格形式。这不仅有助于理解每一层的输入和输出尺寸,还能直观地看到卷积核的数量、大小、步长以及填充方式等关键参数。以下是 GoogLeNet 前几层(包括两个卷积…...
CTFshow-命令执行(Web58-77)
CTFshow-命令执行(Web58-77) Web58 <?php if(isset($_POST[c])){$c $_POST[c];eval($c); }else{highlight_file(__FILE__); }Warning: system() has been disabled for security reasons in /var/www/html/index.php(17) : eval()d code on line 1 本题对于passthru&…...
android全局拖拽效果实现startDragAndDrop
有多种方式实现全角拖拽,我们基于系统标准的api startDragAndDrop 来做介绍 实现步骤: 一、应用的的拖拽 1.1 通过长按触发 holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {Overridepublic boolean onLongClick(View v) {C…...
MySQL之索引与事务
一、索引 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引主要的目的是为了加快查找速度 作用 1、数据库中的表、数据、索引之间的关系&am…...
【OpenCV】基于分水岭算法的图像分割
介绍 分水岭算法(Watershed Algorithm)是一种基于形态学的图像分割方法,它模仿了地理学中的分水岭概念。在图像处理中,分水岭算法通过模拟水流从山顶流向谷底的过程来分割图像,其中局部极小值点被视为“山谷”&#x…...
深度学习:CPU和GPU算力
一、算力 “算力”(Computing Power)通常是指计算机或计算系统执行计算任务的能力。它是衡量系统处理数据、运行算法以及执行计算任务效率的重要指标。根据上下文,算力可以在以下几种场景中具体化: 1. 单机算力 CPU算力&#x…...
android studio 模拟器不能联网?
模拟器路径: C:\Users\Administrator\AppData\Local\Android\Sdk\emulator\emulator.exe.关闭所有AVD设备实例 导航至: C:\Users\userName\AppData\Local\Android\Sdk\emulator查看模拟器名称 AdministratorDESKTOP-6JB1OGC MINGW64 ~/AppData/Local/…...
php.ini 文件上传/执行时间/部分配置新手教程
1、上传文件大小配置 一般需要同时配置“upload_max_filesize”、“post_max_size”,配置格式如下: file_uploads On ;是否允许HTTP文件上传 upload_max_filesize 2M ;设置单个文件上传的最大尺寸 post_max_size 8M ;设置 POST 请求体的最大尺寸&am…...
大模型Qwen面试内容整理-应用场景与案例分析
Qwen模型凭借其强大的自然语言理解和生成能力,在多个实际应用场景中得到了广泛应用。以下是Qwen模型的主要应用场景及一些典型的案例分析,展示了它如何解决具体问题和带来实际价值。 智能对话系统 ● 应用场景 ○ 客服机器人:Qwen被用于开发智能客服机器人,能够理解客户的问…...
网易游戏分享游戏场景中MongoDB运行和分析实践
在游戏行业中,数据库的稳定和性能直接影响了游戏质量和用户满意度。在竞争激烈的游戏市场中,一个优秀的数据库产品无疑能为游戏的开发和后期的运营奠定良好的基础。伴随着MongoDB在不同类型游戏场景中的应用越来越广泛,许多知名的游戏公司都在…...
子查询与嵌套查询
title: 子查询与嵌套查询 date: 2024/12/13 updated: 2024/12/13 author: cmdragon excerpt: 子查询和嵌套查询是关系型数据库中强大的查询工具,允许用户在一个查询的结果中再进行查询。通过使用子查询,用户能够简化复杂的SQL语句,增强查询的灵活性和可读性。本节将探讨子…...
智星云技术文档:GPU测速教程
安装gpu burn git clone https://github.com/wilicc/gpu-burn cd gpu-burn/ make测试 ./gpu_burn 60100.0% procd: 14280 (7373 Gflop/s) - 13390 (6997 Gflop/s) - 15912 (7110 Gflop/s) - 13184 (7055 Gflop/s) - 13464 (7369 Gflop/s) - 13974 (7351 Gflop/s) - 16626 (7…...
(二)多智能体强化学习
目录 前言 一、多智能体强化学习的概念 二、多智能体面临的问题 三、现有算法简介 总结 前言 基于上一篇文章对于强化学习基础概念的介绍,本篇文章针对多智能体强化学习进行介绍和总结,帮助大家了解多智能体的基本概念以及算法,方便大家…...
Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg
Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg 一、全屏截图并保存到StreamingAssets路径下 Texture2D screenShot;//保存截取的纹理public Image image; //显示截屏的Imagepublic void Jietu(){StartCoroutine(ScrrenCapture(new Rect(0, 0, Screen.width…...
linux中给某个文件切换成www用户
要将某个文件的拥有者切换为 www 用户(通常是用于 Web 服务的用户),你可以使用 chown 命令来更改文件的所有者和所属组。以下是相关步骤: ### 1. 确认 www 用户存在 首先确认 www 用户已经存在。可以使用以下命令检查:…...
运维实战:K8s 上的 Doris 高可用集群最佳实践
今天我们将深入探讨::如何在 K8s 集群上部署 Compute storage coupled(存算耦合) 模式的 Doris 高可用集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务: 配…...
家庭网络防御系统搭建-将EDR系统的sysmon和Windows event log集成到security onion
在前面的文章中安装了sysmon,这里,安装了securityonion,这里,本文讲述如何将sysmon以及Windows生成的event log发送到siem security onion之中,供后续的分析,威胁狩猎之用。 通常日志集成的步骤分为如下几步࿱…...
Ubuntu boot-repair安装过程
本教程只是在UBuntu系统无法引导才使用的方法,有可能需要提前使用U盘刻录UBuntu镜像去引导。 假如winUBuntu双系统,找不到紫色的UBuntu界面了,请参考:windows10ubuntu双系统开机引导界面不见的解决办法_双系统不出现引导界面-CSD…...
图计算之科普:BSP计算模型、Pregel计算模型、
一、BSP计算模型 BSP计算模型,即整体同步并行计算模型(Bulk Synchronous Parallel Computing Model),又名大同步模型或BSP模型,是由哈佛大学L.G. Valiant教授(2010年图灵奖得主)在1992年提出的…...
Kafka Stream实战教程
Kafka Stream实战教程 1. Kafka Streams 基础入门 1.1 什么是 Kafka Streams Kafka Streams 是 Kafka 生态中用于 处理实时流数据 的一款轻量级流处理库。它利用 Kafka 作为数据来源和数据输出,可以让开发者轻松地对实时数据进行处理,比如计数、聚合、…...
数据仓库-基于角色的权限管理(RBAC)
什么是基于角色的用户管理? 基于角色的用户管理(Role-Based Access Control,简称RBAC)是通过为角色赋予权限,用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…...
如何使用ERC404协议
ERC404 ERC404协议的性质 ERC404不是一个开发代码工具包,而是一种智能合约标准规范。它就像是一份蓝图或者规则手册,规定了在以太坊区块链上开发特定智能合约应该遵循的接口、函数和事件等规则。如何使用ERC404协议 定义合约接口 首先,在开发智能合约时,要根据ERC404标准定…...
Spring Boot 工程分层实战(五个分层维度)
1、分层思想 计算机领域有一句话:计算机中任何问题都可通过增加一个虚拟层解决。这句体现了分层思想重要性,分层思想同样适用于Java工程架构。 分层优点是每层只专注本层工作,可以类比设计模式单一职责原则,或者经济学比较优势原…...
IIS部署程序https是访问出现403或ERR_HTTP2_PROTOCOL_ERROR
一、说明 在windows server 2016中的IIS程序池里部署一套系统,通过https访问站点,同时考虑到安全问题以及防攻击等行为,就用上了WAF云盾功能,能有效的抵挡部分攻击,加强网站的安全性和健壮性。 应用系统一直能够正常…...
【深度学习入门】深度学习介绍
1.1 深度学习介绍 学习目标 目标 知道深度学习与机器学习的区别了解神经网络的结构组成知道深度学习效果特点 应用 无 区别 特征提取方面 机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识深度学习通常由多个层组成,它们通常将更简…...
node_modules文件夹删除失败解决办法
在前端开发过程中,node_modules 文件夹是一个必不可少的组成部分,里面存放着项目所需的各种依赖包。然而,随着项目的发展,node_modules 文件夹可能会变得异常庞大,甚至有时需要删除它来解决一些依赖冲突或清理空间。但…...
360智脑张向征:共建可信可控AI生态 应对大模型安全挑战
发布 | 大力财经 人工智能的加速发展,有力推动了社会的数智化转型;与此同时,带来的相关安全风险也日益凸显。近日,在北京市举办的通明湖人工智能开发与应用大会上,360智脑总裁张向征以“大模型安全研究与实践”为主题&…...
adb 常用命令笔记
adb connect <ip> #连接指定ip adb disconnect <ip> #断开连接指定ip adb devices #查看连接中的设备 adb install <flie> #安装apk adb uninstall <packageName> #卸载app adb -s install <flie> #指定设备安装 adb shell pm list package…...
uniapp中打包应用后,组件在微信小程序和其他平台实现不同的样式
今天,我们来介绍一下,uniapp中如何实现打包应用后,组件在微信小程序和其他平台不同的样式,在这里,我们使用背景颜色进行演示,使用 UniApp 提供的 uni.getSystemInfoSync() 方法来获取系统信息,包…...
代码随想录算法训练营第三天 | 链表理论基础 | 206.反转链表
从老链表第一个元素开始,逐个取出 第一个取出的元素,让其next指向nullptr。由于改变其指向,会导致后续链表没有指向消失,所以要在这步之前将其后续元素的指向放在一个新变量中再将后续结点的指向当前结点,不断反复运行…...
《数据结构》(非408代码题)
链表 设单链表的表头指针为L,结点结构由data和next两个域构成,其中data域为字符型。试设计算法判断该链表的全部n个字符是否中心对称。例如xyx、xyyx都是中心对称。 分析: 这题完全可以参考19年那题,我们直接找到中间结点然后将后…...
springboot427民航网上订票系统设计和实现(论文+源码)_kaic
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装民航网上订票系统软件来发挥其高效地信息处理的作用&#x…...
UE4_控件蓝图_制作3D生命血条
一:效果图如下: 二、实现步骤: 1、新建敌人 右键蓝图类 选择角色, 重命名为BP_Enemytest。 双击打开,配置敌人网格体 修改位置及朝向 效果如下: 选择合适的动画蓝图类: 人物就有了动作&#x…...
欧拉计划 Project Euler 21题解
欧拉计划21 Project Euler Problem21题干亲和数约数和的计算定义对于任何素数 \( p \):考虑 p a p^a pa:示例可乘性回到示例 Project Euler Problem21 题干 亲和数 记 d ( n ) d(n) d(n) 为 n 的所有真约数(小于 n 且整除 n 的正整数)之和。 如果 d(a) b , d(b) a &…...
python中的Counter函数
在 Python 中,Counter 是 collections 模块中的一个类,用于统计可迭代对象中元素的出现次数,并以字典的形式返回,键为元素,值为对应的计数。它非常适合处理频率统计问题。 用之前必须先导入 from collections import…...
WPF+MVVM案例实战与特效(三十七)- 实现带有水印和圆角的自定义 TextBox 控件
文章目录 1、概述2、案例实现1、基本功能2、代码实现3、控件应用4、案例效果5、源代码下载4、总结1、概述 在开发用户界面时,TextBox 是最常见的输入控件之一。为了提升用户体验,我们经常需要为 TextBox 添加一些额外的功能,例如显示提示文本(水印)和设置圆角边框。本文将…...
SQLServer到MySQL的数据高效迁移方案分享
SQL Server数据集成到MySQL的技术案例分享 在企业级数据管理中,跨平台的数据集成是一个常见且关键的任务。本次我们将探讨如何通过轻易云数据集成平台,将巨益OMS系统中的退款单明细表从SQL Server高效、安全地迁移到MySQL数据库中。具体方案名称为“7--…...
docker快速实现ELK的安装和使用
目录 一、ELK功能原理 二、项目功能展示 三、日志查询展示 四、ELK安装步骤 1、创建elasticsearch、kibana、filebeat相关data、log、conf目录 2、进入/usr/local/elk目录,并创建一个docker网络 3、启动 elasticsearch容器 4、运行kibana容器 5、启动f…...
hbase读写操作后hdfs内存占用太大的问题
hbase读写操作后hdfs内存占用太大的问题 查看内存信息hbase读写操作 查看内存信息 查看本地磁盘的内存信息 df -h查看hdfs上根目录下各个文件的内存大小 hdfs dfs -du -h /查看hdfs上/hbase目录下各个文件的内存大小 hdfs dfs -du -h /hbase查看hdfs上/hbase/oldWALs目录下…...
解决vue2中更新列表数据,页面dom没有重新渲染的问题
在 Vue 2 中,直接修改数组的某个项可能不会触发视图的更新。这是因为 Vue 不能检测到数组的索引变化或对象属性的直接赋值。为了确保 Vue 能够正确地响应数据变化,你可以使用以下几种方法: 1. 使用 Vue.set() 使用 Vue.set() 方法可以确保 …...
Go语言错误分类
错误的分类 在 Go 语言中,错误是通过实现 error 接口的类型表示的,但不同场景下的错误可以按性质和用途进行分类。以下是 Go 语言错误的常见分类,以及每类错误的解释和示例: 标准错误类型 标准库中定义了许多常见的错误类型&…...
使用 Ansys Fluent 对气体泄漏检测进行建模
了解使用 Ansys Fluent 仿真气体泄漏和确保安全的前沿技术。 挑战 气体泄漏对人类安全和环境构成重大风险。及早检测气体泄漏可以防止潜在的灾难,包括爆炸、火灾和有毒物质暴露。有效的气体泄漏检测系统对于石油和天然气、化学加工和住宅基础设施等行业至关重要。…...