Nodejs 第十三章(os)

news2025/1/2 0:04:25

Nodejs os 模块可以跟操作系统进行交互

var os = require("node:os")
序号API作用
1os.type()它在 Linux 上返回 'Linux',在 macOS 上返回 'Darwin',在 Windows 上返回 'Windows_NT'
2os.platform()返回标识为其编译 Node.js 二进制文件的操作系统平台的字符串。 该值在编译时设置。 可能的值为 'aix''darwin''freebsd''linux''openbsd''sunos'、以及 'win32'
3os.release()返回操作系统的版本例如10.xxxx win10
4os.homedir()返回用户目录 例如c:\user\xiaoman 原理就是 windows echo %USERPROFILE% posix $HOME
5os.arch()返回cpu的架构 可能的值为 'arm''arm64''ia32''mips''mipsel''ppc''ppc64''s390''s390x'、以及 'x64'

获取CPU的线程以及详细信息

const os = require('node:os')
os.cpus()
[
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 252020,
      nice: 0,
      sys: 30340,
      idle: 1070356870,
      irq: 0,
    },
  },
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 306960,
      nice: 0,
      sys: 26980,
      idle: 1071569080,
      irq: 0,
    },
  },
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 248450,
      nice: 0,
      sys: 21750,
      idle: 1070919370,
      irq: 0,
    },
  },
  {
    model: 'Intel(R) Core(TM) i7 CPU         860  @ 2.80GHz',
    speed: 2926,
    times: {
      user: 256880,
      nice: 0,
      sys: 19430,
      idle: 1070905480,
      irq: 20,
    },
  },
] 
//.........
  • model: 表示CPU的型号信息,其中 “Intel® Core™ i7 CPU 860 @ 2.80GHz” 是一种具体的型号描述。

  • speed: 表示CPU的时钟速度,以MHz或GHz为单位。在这种情况下,速度为 2926 MHz 或 2.926 GHz。

  • times: 是一个包含CPU使用时间的对象,其中包含以下属性:

    • user: 表示CPU被用户程序使用的时间(以毫秒为单位)。
    • nice: 表示CPU被优先级较低的用户程序使用的时间(以毫秒为单位)。
    • sys: 表示CPU被系统内核使用的时间(以毫秒为单位)。
    • idle: 表示CPU处于空闲状态的时间(以毫秒为单位)。
    • irq: 表示CPU被硬件中断处理程序使用的时间(以毫秒为单位)。

例如我的电脑是六核十二线程就会获取到12个线程

image.png

获取网络信息

const os = require('node:os')
os.networkInterfaces()
{
  lo: [
    {
      address: '127.0.0.1',
      netmask: '255.0.0.0',
      family: 'IPv4',
      mac: '00:00:00:00:00:00',
      internal: true,
      cidr: '127.0.0.1/8'
    },
    {
      address: '::1',
      netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff',
      family: 'IPv6',
      mac: '00:00:00:00:00:00',
      scopeid: 0,
      internal: true,
      cidr: '::1/128'
    }
  ],
  eth0: [
    {
      address: '192.168.1.108',
      netmask: '255.255.255.0',
      family: 'IPv4',
      mac: '01:02:03:0a:0b:0c',
      internal: false,
      cidr: '192.168.1.108/24'
    },
    {
      address: 'fe80::a00:27ff:fe4e:66a1',
      netmask: 'ffff:ffff:ffff:ffff::',
      family: 'IPv6',
      mac: '01:02:03:0a:0b:0c',
      scopeid: 1,
      internal: false,
      cidr: 'fe80::a00:27ff:fe4e:66a1/64'
    }
  ]
} 
  • address: 表示本地回环接口的IP地址,这里是 '127.0.0.1'
  • netmask: 表示本地回环接口的子网掩码,这里是 '255.0.0.0'
  • family: 表示地址族(address family),这里是 'IPv4',表示IPv4地址。
  • mac: 表示本地回环接口的MAC地址,这里是 '00:00:00:00:00:00'。请注意,本地回环接口通常不涉及硬件,因此MAC地址通常为全零。
  • internal: 表示本地回环接口是否是内部接口,这里是 true,表示它是一个内部接口。
  • cidr: 表示本地回环接口的CIDR表示法,即网络地址和子网掩码的组合,这里是 '127.0.0.1/8',表示整个 127.0.0.0 网络。

案例

知道这些信息有什么用?

非常经典的例子 webpack vite 大家应该都用过 他们有一个配置项可以打开浏览器 open:true 我们来简单复刻一下

const { exec } = require('child_process');
const os = require('os');

function openBrowser(url) {
  if (os.platform() === 'darwin') {  // macOS
    exec(`open ${url}`); //执行shell脚本
  } else if (os.platform() === 'win32') {  // Windows
    exec(`start ${url}`); //执行shell脚本
  } else {  // Linux, Unix-like
    exec(`xdg-open ${url}`); //执行shell脚本
  }
}

// Example usage
openBrowser('https://www.juejin.cn');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/916418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI流程图教程,小白也能轻松画!

流程图是一种图形化的工具,用于展示和描述一个过程中的各个步骤、活动和决策。它通过使用不同的图形符号和箭头表示,清晰地展示了流程的顺序和流动路径。流程图通常用于可视化和沟通复杂的业务流程、系统操作流程或项目流程。它帮助人们更好地理解和分析…

oracle警告日志\跟踪日志磁盘空间清理

oracle警告日志\跟踪日志磁盘空间清理 问题现象: 通过查看排查到alert和tarce占用大量磁盘空间 警告日志 /u01/app/oracle/diag/rdbms/orcl/orcl/alert 跟踪日志 /u01/app/oracle/diag/rdbms/orcl/orcl/trace 解决方案: 用adrci清除日志 确定目…

APSIM模型应用与参数优化、批量模拟

APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生长模拟模型之一。APSIM模型有Classic和Next Generation两个系列模型,能模拟几十种农作物、牧草和树木的土壤-植物-大气过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安…

Pandas字符串操作的各种方法速度测试

由于LLM的发展, 很多的数据集都是以DF的形式发布的,所以通过Pandas操作字符串的要求变得越来越高了,所以本文将对字符串操作方法进行基准测试,看看它们是如何影响pandas的性能的。因为一旦Pandas在处理数据时超过一定限制&#xf…

Kali 分析和管理网络

查看网络 ifconfig 命令 ┌──(root㉿kali)-[~] # eth0:有线网卡 └─# ifconfig eth0: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 192.168.56.128 netmask 255.255.255.0 broadcast 192.168.56.255inet6 fe80::20c:29ff:feb3:7991 prefixlen 64 …

DataFrame.plot函数详解(一)

DataFrame.plot函数详解&#xff08;一&#xff09; 1.函数定义 使用pandas.DataFrame的plot方法绘制图像会按照数据的每一列绘制一条曲线&#xff0c;默认按照列columns的名称在适当的位置展示图例 。 DataFrame.plot(xNone, yNone, kindline, axNone, subplotsFalse, shar…

什么是XGBoost

什么是XGBoost XGBoost是GBDT的优秀版本。XGBoost的整体结构和GBDT一致&#xff0c;都是在训练出一棵树的基础上&#xff0c;再训练下一棵树&#xff0c;预测它与真实分布间的差距&#xff0c;通过不断训练用来弥补差距的树&#xff0c;最终用树的组合实现对真实分布的模拟。 …

怎么把AVI视频转GIF动图?教你几种简单好用方法

将视频转成GIF动图有很多好处。首先&#xff0c;GIF动图可以自动循环播放&#xff0c;这使得它们更易于分享和观看。相比于视频&#xff0c;GIF动图的体积更小&#xff0c;加载速度更快&#xff0c;更利于在社交媒体等平台上分享。此外&#xff0c;GIF动图还可以作为一种有趣的…

【地理图库】世界小麦产量分布

声明&#xff1a;来源网络&#xff0c;仅供学习&#xff01;

Git企业开发控制理论和实操-从入门到深入(二)|Git的基本操作

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总https://blog.csdn.net/yu_cblog/cate…

气传导蓝牙耳机哪款好?推荐几款很不错的气传导耳机

​气传导耳机在音质、舒适度和耐久性方面的表现相当出色&#xff0c;能够满足你的各种需求。然而面对市面上这么多气传导耳机&#xff0c;不知道该如何挑选时&#xff0c;也不用过于担心&#xff0c;我先来安利几款很不错的气传导耳机给大家来参考参考&#xff0c;看看有没有心…

Redis过期数据的删除策略

1 介绍 Redis 是一个kv型数据库&#xff0c;我们所有的数据都是存放在内存中的&#xff0c;但是内存是有大小限制的&#xff0c;不可能无限制的增量。 想要把不需要的数据清理掉&#xff0c;一种办法是直接删除&#xff0c;这个咱们前面章节有详细说过&#xff1b;另外一种就是…

冠达管理:水产、食品检测概念股强势拉升 日本将启动福岛核污染水排海

受日本将发动福岛核污染水排海事情刺激&#xff0c;水产股23日盘中大幅拉升&#xff0c;截至发稿&#xff0c;大湖股份涨停&#xff0c;国联水产涨超6%&#xff0c;獐子岛、百洋股份涨超3%。 核污染防治概念亦走强&#xff0c;截至发稿&#xff0c;中电环保涨超11%&#xff0c;…

删除链表的中间节点

题目&#xff1a; 示例&#xff1a; 思路&#xff1a; 这个题类似于寻找链表中间的数字&#xff0c;slow和fast都指向head&#xff0c;slow走一步&#xff0c;fast走两步&#xff0c;也许你会有疑问&#xff0c;节点数的奇偶不考虑吗&#xff1f;while执行条件写成fast&&…

重磅GPT-3.5 Turbo开放微调功能,专属GPT来了

8月22日&#xff0c;OpenAI官网发布最新公告&#xff1a;GPT-3.5 Turbo 的微调现已推出&#xff0c;GPT-4 的微调将于今年秋天推出。 此更新使开发人员能够自定义更适合其自身的模型&#xff0c;并大规模运行这些自定义模型。早期测试表明&#xff0c;GPT-3.5 Turbo 的微调版本…

flask获取请求对象的get和post参数

前言 get请求参数是在URL里面的&#xff0c;post请求参数是放在请求头里面的 get请求&#xff1a; index_page.route("/get") def get():var_a request.args.get("a", "jarvis")return "request:%s,params:%s,var_a:%s" %(request…

生态经济学领域里的R语言机器学(数据的收集与清洗、综合建模评价、数据的分析与可视化、数据的空间效应、因果推断等)

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

前端界面设计

目录 1.设计一个兴趣展示网站1.效果2.代码展示 2.设计一个优美的登录网页1.效果2.代码展示 3. 自己写过的一些前端界面设计Demo整理。 1.设计一个兴趣展示网站 1.效果 2.代码展示 工程截图&#xff1a; index.html代码&#xff1a; <!DOCTYPE html> <html lang"…

基于MATLAB开发AUTOSAR软件应用层Code mapping专题-part 6 Data Transfers标签页介绍

这篇文章我们介绍下Data Transfers页的配置,这里边包含的内容是IRV,我之前的文章里有讲解过IRV就是 Inter-Runnable Variables,内部runnable的之间传递数据的变量,在讲解Data Store memory的文章里我们提到了,irv也可以使用Data Store memory的方式来实现,我们先看下IRV如何…

OceanBase:谁动了我得参数?

作者&#xff1a;郑增权 爱可生南区数据库工程师&#xff0c;爱可生 DBA 团队成员&#xff0c;负责数据库相关技术支持。爱好&#xff1a;桌球、羽毛球、咖啡、电影。 本文来源&#xff1a;原创投稿 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转…