Linux下系统运行时间(uptime)命令使用及代码实现

article/2025/9/6 22:58:55

在Linux系统中,一切都可以通过命令行命令来控制。 从小任务到大任务,您都可以找到一个简单的命令来完成您的工作。如果您是 Linux 新手,并且对系统管理感兴趣,那么您需要对命令行有扎实的了解。在本文中,我们将使用一些易于理解的示例来讨论此命令的基础知识。 最后附上uptime代码实现。

如何使用 uptime 命令

我们知道,uptime 命令为您提供系统启动(或运行)的时间。除了系统的运行时间,您还可以获得系统的其他详细信息,包括当前时间、运行会话的用户数以及过去 1、5 和 15 分钟的系统平均负载。

uptime [options]

uptime 的基本用法非常简单——只需输入命令名称并按回车键即可。

在这里插入图片描述

通过命令行运行 Linux 系统的 uptime 命令,会输出以下信息。

  1. 系统的当前时间。
  2. 系统的总正常运行时间。
  3. 当前正在运行系统的活动用户。
  4. 过去 1、5 和 15 分钟内可用的系统负载的平均值。

“up”表示系统正在运行。

这里的系统负载平均值是处于可运行状态或可运行状态的平均进程数不间断状态。 处于可运行状态的进程要么正在使用 CPU,要么正在等待使用中央处理器。 处于不可中断状态的进程正在等待某些 I/O 访问,例如等待磁盘。

如何查看uptime帮助信息

uptime 命令带有各种选项。 要检查选项,我们可以运行 help 命令。

在这里插入图片描述

除了 help 命令,您还可以运行 man 命令来检查“uptime”命令的使用情况。

在这里插入图片描述

如何让工具以漂亮的格式显示时间

如果您只想知道系统已启动的时间,并且以更易于阅读的格式知道,请使用 -p 命令行选项。

uptime -p

在这里插入图片描述

您可以获得非常清晰的输出,以天数、小时数、分钟数和秒数的格式显示正常运行时间。

我们还可以使用“-s”选项在命令行界面上运行以下命令。
在这里插入图片描述

显示的信息来看,检查系统首次启动的确切时间,而不是自启动以来花费的时间。

uptime代码实现

void getloadavg(char *loadavg, size_t nelem)
{char command[512] = {0};snprintf(command, sizeof(command), "%s |%s %s|%s -F: '%s'", "w","grep", "load", "awk","{print $4}");FILE *fp = popen(command, "r");if (fp == NULL){printf("popen failed!\n");return;}fread(loadavg, nelem-1, 1, fp);fclose(fp);
}static void print_uptime(void)
{FILE *fp;time_t time_now;time_t uptime = 0;long int updays;int uphours;int upmins;struct tm *tmn;struct utmp *u;int utmp_num = 0;char sz_loadavg[64] = {0};fp = fopen ("/proc/uptime", "r");if (fp != NULL){char buf[BUFSIZ];char *b = fgets (buf, BUFSIZ, fp);if (b != NULL){char *end_ptr;double upsecs = strtod (buf, &end_ptr);//printf("buf: %s\n",buf);//printf("end_ptr: %s\n",end_ptr);if (buf != end_ptr)uptime = (0 <= upsecs && upsecs < TYPE_MAXIMUM (time_t)? upsecs : -1);}fclose (fp);}while((u = getutent())){if(u->ut_type == USER_PROCESS){++utmp_num;//printf("%d %s %s %s \n", u->ut_type, u->ut_user, u->ut_line, u->ut_host);}}time_now = time (NULL);if (uptime == 0){printf("couldn't get boot time\n");}updays = uptime / 86400;uphours = (uptime - (updays * 86400)) / 3600;upmins = (uptime - (updays * 86400) - (uphours * 3600)) / 60;tmn = localtime (&time_now);//printf("uphours: %d\n",uphours);//printf("upmins: %d\n",upmins);printf("%2d:%2d:%2d\t", tmn->tm_hour, tmn->tm_min, tmn->tm_sec); /* 这将打印当前时钟时间 */printf("up %2d:%2d\t",uphours,upmins);printf("%lu users\t",utmp_num);getloadavg(sz_loadavg,sizeof(sz_loadavg));printf ("load average: %s\t",sz_loadavg);
}

运行结果

在这里插入图片描述

当前输出以下信息:当前时间,系统多长时间已运行,当前登录的用户数,以及过去的系统平均负载1、5 和 15 分钟。

总结

uptime命令易于理解和使用。 它不提供很多功能(或命令行选项),希望本篇文章对你有帮助,如果你有任何疑问,可以查看man手册。

欢迎关注微信公众号【程序猿编码】,需要源代码欢迎添加本人微信号(17865354792)交流学习。


http://chatgpt.dhexx.cn/article/NmMSKdpj.shtml

相关文章

Linux命令(26)之uptime

Linux命令之uptime 1.uptime介绍 linux命令uptime是用来为用户提供系统从开启到当前运行uptime命令时系统已运行的时长信息&#xff0c;除此之外&#xff0c;还提了系统启动时间&#xff0c;当前登录用户&#xff0c;系统平均负载信息。 2.uptime用法 uptime [参数] uptime…

uptime 命令介绍

Linux 小白&#xff0c;若对系统管理有兴趣&#xff0c;或想成为资深用户&#xff0c;就需要对命令行有扎实的功底。你需要知道很多命令&#xff0c;其中一个就是 uptime。文本我们会通过一些容易理解的案例来讲解一下这个命令的基本用法。 Linux uptime 命令 望名生义&#xf…

linux基本功系列之uptime命令实战

文章目录 一. uptime命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示当前系统运行负载情况3.2 显示机器正常运行的时间3.3 显示机器启动时间3.4 关于平均负载的介绍 总结 前言&#x1f680;&#x1f680;&#x1f680; 想要学好Linux&#xff0c;命令是基本功&#xff0c;…

如何快速学习android开发的(一)

因为项目需要&#xff0c;8月中旬开始决定做安卓的程序&#xff0c;所以马上就开始学习安卓方面的开发知识&#xff0c;把最近的学习实践经历和大家分享分享。不要一开始就下载一大堆资料&#xff0c;视频&#xff0c;然后就不知道做什么了&#xff0c;要给自己定个目标&#x…

安卓学习之

表格布局包含一系列的 TableRow对象&#xff0c;用于定义行&#xff08;实际上你也可以使用其它子对象&#xff0c;将在后面进行解释&#xff09;。表格布局不为它的行、列和单元格显示表格线。每个行可以包含0个以上&#xff08;包括0&#xff09;的单元格&#xff1b; 每个单…

通过安卓逆向来学习安卓开发

记一次逆向学习的过程 起因&#xff1a;最近在做bilibili缓存视频合并工具&#xff0c;适配Android 11时需要获取Android/data目录的读取权限&#xff0c;根据APP“清浊”开发者的帖子&#xff1a; 如何评价在Android11中&#xff0c;/Android/data文件夹无法读写&#xff1f;…

初学安卓framework系列 一 (怎么科学的学习安卓系统的framework)

相信大家在找工作的时候&#xff0c;肯定或多或少都被面试官问到过安卓的八股文。比如ActivityManagerService(简称AMS)&#xff0c;或者WindowManagerService(WMS) 怎么实现的啊&#xff0c;有些什么细节需要注意啊&#xff0c;View被加入到ViewRoot的流程啊等等。每每看到这些…

关于自己学习安卓的体会

笔者学习了一段时间的安卓&#xff0c;有几个特别深的感触。 第一点。安卓开发虽然用的是JAVA语言&#xff08;虽然有Kotlin但是笔者还没接触到&#xff09;&#xff0c;但是在大部分的开发过程中&#xff0c;基本都是重写各种类&#xff0c;自己写的东西比较少&#xff08;这只…

【0】开始学习安卓了

说好的学习安卓&#xff0c;于是我就要开始学习安卓了&#xff0c;敢问安卓学习哪家强&#xff1f;&#xff1f; 一、准备好开发工具 &#xff08;1&#xff09;安卓SDK&#xff0c;建议用迅雷下载 &#xff08;2&#xff09;JDK&#xff0c;win764位的请到官网下载64位的 下载…

Android 学习(一)

安卓基本学习 架构体系 安卓的系统体系架构采用的是分层的架构 Kemel层&#xff1a; Android平台的基础。有线程管理和内存管理等功能。 HAL层&#xff1a; HAL的目的是为了把framework与Kernel隔开&#xff0c;让Android不至于过度依赖kernel&#xff0c;对kernel的简单封装…

安卓的学习

文章目录 第一节课&#xff1a;动/静态图片第二节课&#xff1a;一&#xff1a;按键监听事件二&#xff1a;界面中的文本框控件的文本内容自动与文本标签内容保持一致 第三节课一&#xff1a;点击增加的进度条二、获取按钮的信息二 可点击的列表 第一节课&#xff1a;动/静态图…

安卓基础学习

文章目录 前言工具创建项目简单控件即UI一、界面显示与逻辑处理二、文本三、布局 四、按钮五、控件综合训练(简易计算器)六、Activity七. 中级控件八、综合案列(登录与找回密码)数据存储一、SharedPreferences二、SQLite 九、外部存储空间十、Jetpack Room十一、正文字数太多&a…

【ANDROID学习】

Eclipse开发Android程序DEBUG 一 .虚拟机启动失败 报错信息&#xff1a; emulator: ERROR: x86_64 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: Please disable Hyper-V befo…

Android基础学习整理知识点

注&#xff1a;本文内容有自己理解部分&#xff0c;若有不对的地方&#xff0c;欢迎指出。 Android四大组件 Activity 什么是Activity? 是应用程序的组件&#xff0c;用于显示用户界面&#xff0c;可以与用户交互完成相关的操作。App中可以有很多个Activity。 Activity存储…

Android基础知识点学习总结

Android基础知识点学习总结 安卓基础知识个人学习笔记分享~ 一、Android系统架构 Linux内核层→系统运行层→应用框架层→应用层 1、Linux内核层&#xff1a;Android系统是基于Linux内核的&#xff0c;这一层为硬件提供了底层的驱动&#xff0c;例如显示驱动&#xff0c;音…

锚点的作用及用法

锚点的作用及用法 HTML中的a标签大家都非常熟悉&#xff0c;它是超链接标签&#xff0c;通过a标签能够跳转到href中指定的页面及指定的位置&#xff0c;a标签可以做到单页面跳转或多页面跳转&#xff0c;锚点能够跳转到当前页面中指定的位置&#xff0c;也能够跳转到指定的…

vue锚点的用法

一、锚点效果 二、示例 跳转到当前页面中指定的位置 <a href"#demo1">跳转到一的位置</a> <a href"#demo2">>跳转到二的位置</a> <a href"#demo3">>跳转到三的位置</a><div id"demo1"…

用html语句超链接锚点使用,HTML 锚点超链接

先介绍下场景: 我做了一个博客管理 首页界面如下: 标题是超链接,点击标题,进入博客详情页面: 博客标题下面有一个"返回"超链接,点击回到博客列表,超链接代码: 返回 说明:com.whuang.hsj.hrefClickCount的初始值为-1 , 后来我发现有的博客很长,从博客底部回到标题那儿…

UGUI锚点适配

UGUI锚点设置 UGUI锚点锚点图锚点类型锚点类型一&#xff1a;相对于父节点的某一点的位置锚点类型二&#xff1a;与父节点的两边保持固定距离与父节点的左右两边保持固定距离与父节点的上下两边保持固定距离 锚点类型三&#xff1a;与父节点的4边保持固定距离 Anchors锚点数值P…

目标检测:锚点介绍及应用

目标检测&#xff1a;锚点介绍及应用 介绍应用生成锚点图步骤 锚点匹配步骤 介绍 锚点相当于在待预测的特征数据上预设出可能的物体边界框&#xff0c;即预设出特征数据可能代表的物体区域&#xff0c;每个区域通常由两个属性构成——尺度&#xff08;scale或size&#xff09;和…