来源:Node.js

os

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

os.type

os.type()在Linux上返回'Linux'、在MacOS上返回 'Darwin'、在Windows上返回 'Windows_NT'

os.platform

os.platform()返回编译Node.js二进制文件的操作系统平台的字符串,该值在编译时设置

可能的值为 'aix''darwin''freebsd''linux''openbsd''sunos''win32'

os.release

os.release()返回操作系统的版本

os.homedir

os.homedir()返回用户目录,例如'C:/user/cheriko'

原理:Windows echo %USERPROFILE%;posix $HOME

os.arch

os.arch()返回CPU的架构

可能的值为 'arm''arm64''ia32''mips''mipsel''ppc''ppc64''s390''s390x''x64'

最常在安卓应用中使用

os.cpus

os.cpus()获取CPU的线程及详细信息,可以用于计算CPU利用率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[
{
model: '11th Gen Intel(R) Core(TM) i7-1195G7 @ 2.90GHz',
speed: 2918,
times: {
user: 90971812,
nice: 0,
sys: 42956203,
idle: 1070091562,
irq: 6274093
}
},
{
model: '11th Gen Intel(R) Core(TM) i7-1195G7 @ 2.90GHz',
speed: 2918,
times: {
user: 73356421,
nice: 0,
sys: 22691343,
idle: 1107971531,
irq: 975515
}
},
// ......以下省略
]
  • model:CPU的型号信息
  • speed:CPU的时钟速度,以MHz或GHz为单位
  • times:一个包含CPU使用时间的对象,都以毫秒ms为单位
    • user:CPU被用户程序使用的时间
    • nice:CPU被优先级较低的用户程序使用的时间
    • sys:CPU被系统内核使用的时间
    • idle:CPU处于空闲状态的时间
    • irq:CPU被硬件中断处理程序使用的时间

os.networkInterfaces

os.networkInterfaces()获取网络信息

1
2
3
4
5
6
7
8
9
// 我的敏感信息不能给你看(
{
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:IP地址
  • netmask:子网掩码
  • family:地址族( address family ),IP协议版本
  • mac:MAC地址(网卡地址),本地回环接口通常不涉及硬件,因此MAC地址通常为全零
  • internal:是否为内网
  • cidr:IP地址段,CIDR表示法,即网络地址和子网掩码的组合

案例

运行项目时打开浏览器(打包工具配置项open的原理)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 子进程,exec可以执行shell命令
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脚本
}
}

// 打开浏览器
openBrowser('https://cheriko.fun/')