os(操作系统)
提供了操作系统相关的实用方法
使用方法:const os = require('os');
os 提供的方法和使用示例
-
os.type()
以字符串的形式返回操作系统的名字
eg:> os.type() 'Linux'
Linux 系统:’Linux’
macOS 系统:’Darwin’
Windows 系统:’Windows_NT’ -
os.hostname()
以字符串的形式返回操作系统的主机名
eg:> os.hostname() 'ocean-VirtualBox'
-
os.release()
以字符串的形式返回操作系统的发行版
eg:> os.release() '4.4.0-142-generic'
-
os.platform()
以字符串的形式返回 Node.js 编译时的操作系统平台
等价于 process.platform
eg:> os.platform() 'linux'
-
os.endianness()
以字符串的形式返回 Node.js 二进制编译环境的字节顺序
eg:> os.endianness() 'LE'
- os.uptime()
在几秒内返回操作系统的上线时间
eg: -
os.totalmem()
以整数的形式返回所有系统内存的字节数
eg:> os.totalmem() 1040474112
-
os.freemem()
以整数的形式回空闲系统内存 的字节数
eg:> os.freemem() 100966400
-
os.tmpdir()
以字符串的形式返回操作系统的默认临时文件目录.
eg:> os.tmpdir() '/tmp'
-
os.homedir()
以字符串的形式返回当前用户的 home 目录> os.homedir() '/root'
-
os.getPriority([pid])
返回 pid 指定的进程的计划优先级
pid 默认值:0.
eg:> os.getPriority() 0
- os.setPriority([pid,]priority)
设置 pid 指定的进程的计划优先级
如果未提供 pid, 或者为 0, 则使用当前进程的优先级
priority 必须是 -20 (高优先级) 和 19 (低优先级) 之间的整数 -
os.arch()
返回一个字符串, 表明 Node.js 二进制编译所用的 操作系统 CPU 架构
等价于 process.arch
可能取值: ‘arm’, ‘arm64’, ‘ia32’, ‘mips’, ‘mipsel’, ‘ppc’, ‘ppc64’, ‘s390’, ‘s390x’, ‘x32’, ‘x64’
eg:> os.arch() 'x64'
-
os.cpus()
返回一个对象数组, 包含每个逻辑 CPU 内核的信息.
eg:> os.cpus() [ {model: 'Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz', speed: 1800, times:{user: 4382300, nice: 22200, sys: 679200, idle: 20595000, irq: 0} } ]
-
os.loadavg()
返回一个数组, 包含 1, 5, 15 分钟平均负载.
eg:> os.loadavg() [0.71142578125, 0.47509765625, 0.224609375]
-
os.networkInterfaces()
返回一个对象, 包含只有被赋予网络地址的网络接口
internal: 如果网络接口是 loopback 或相似的远程不能用的接口时, 值为 true, 否则为 false
scopeid:IPv6 数字领域识别码 (只有当 family 是 IPv6 时可用)
cidr:以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 参数不可用,则该属性是 null。
eg:{ 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', 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', internal: false, cidr: 'fe80::a00:27ff:fe4e:66a1/64' } ] }
-
os.userInfo([options])
返回当前有效用户的信息
在 POSIX 平台上:> os.userInfo() { uid: 0, gid: 0, username: 'root', homedir: '/root', shell: '/bin/bash' }
在 Windows 上:uid 和 gid 为 -1, shell 为 null
> os.userInfo() { uid: -1, gid: -1, username: 'yangy', homedir: 'C:\\Users\\yangy', shell: null }
- os.EOL
以字符串的形式返回操作系统相关的行末标志
在 POSIX 系统上值为:n
在 Windows 系统上值为:rn
- os.EOL
-
os.constants
返回一个包含错误码, 处理信号等通用的操作系统特定常量的对象
eg:> os.constants [Object: null prototype] { UV_UDP_REUSEADDR: 4,//libuv 常量 dlopen: [Object: null prototype] {//dlopen 常量 RTLD_LAZY: 1, RTLD_NOW: 2, RTLD_GLOBAL: 256, RTLD_LOCAL: 0, RTLD_DEEPBIND: 8 }, errno: [Object: null prototype] {// 错误常量 E2BIG: 7, EACCES: 13, EADDRINUSE: 98, EADDRNOTAVAIL: 99, EAFNOSUPPORT: 97, EAGAIN: 11, EALREADY: 114, EBADF: 9, EBADMSG: 74, EBUSY: 16, ECANCELED: 125, ECHILD: 10, ECONNABORTED: 103, ECONNREFUSED: 111, ECONNRESET: 104, EDEADLK: 35, EDESTADDRREQ: 89, EDOM: 33, EDQUOT: 122, EEXIST: 17, EFAULT: 14, EFBIG: 27, EHOSTUNREACH: 113, EIDRM: 43, EILSEQ: 84, EINPROGRESS: 115, EINTR: 4, EINVAL: 22, EIO: 5, EISCONN: 106, EISDIR: 21, ELOOP: 40, EMFILE: 24, EMLINK: 31, EMSGSIZE: 90, EMULTIHOP: 72, ENAMETOOLONG: 36, ENETDOWN: 100, ENETRESET: 102, ENETUNREACH: 101, ENFILE: 23, ENOBUFS: 105, ENODATA: 61, ENODEV: 19, ENOENT: 2, ENOEXEC: 8, ENOLCK: 37, ENOLINK: 67, ENOMEM: 12, ENOMSG: 42, ENOPROTOOPT: 92, ENOSPC: 28, ENOSR: 63, ENOSTR: 60, ENOSYS: 38, ENOTCONN: 107, ENOTDIR: 20, ENOTEMPTY: 39, ENOTSOCK: 88, ENOTSUP: 95, ENOTTY: 25, ENXIO: 6, EOPNOTSUPP: 95, EOVERFLOW: 75, EPERM: 1, EPIPE: 32, EPROTO: 71, EPROTONOSUPPORT: 93, EPROTOTYPE: 91, ERANGE: 34, EROFS: 30, ESPIPE: 29, ESRCH: 3, ESTALE: 116, ETIME: 62, ETIMEDOUT: 110, ETXTBSY: 26, EWOULDBLOCK: 11, EXDEV: 18 }, signals: [Object: null prototype] {// 信号常量 SIGHUP: 1,// 发送以指示控制终端何时关闭或父进程退出。SIGINT: 2, SIGQUIT: 3, SIGILL: 4, SIGTRAP: 5, SIGABRT: 6, SIGIOT: 6, SIGBUS: 7, SIGFPE: 8, SIGKILL: 9, SIGUSR1: 10, SIGSEGV: 11, SIGUSR2: 12, SIGPIPE: 13, SIGALRM: 14, SIGTERM: 15, SIGCHLD: 17, SIGSTKFLT: 16, SIGCONT: 18, SIGSTOP: 19, SIGTSTP: 20, SIGTTIN: 21, SIGTTOU: 22, SIGURG: 23, SIGXCPU: 24, SIGXFSZ: 25, SIGVTALRM: 26, SIGPROF: 27, SIGWINCH: 28, SIGIO: 29, SIGPOLL: 29, SIGPWR: 30, SIGSYS: 31, SIGUNUSED: 31 }, priority: [Object: null prototype] {//Priority 常量 PRIORITY_LOW: 19,// 最低的进程调度优先级,对应 Windows 上的 IDLE_PRIORITY_CLASS PRIORITY_BELOW_NORMAL: 10,// 进程调度优先级介于 PRIORITY_LOW 和 PRIORITY_NORMAL 之间,对应 Windows 上的 BELOW_NORMAL_PRIORITY_CLASS PRIORITY_NORMAL: 0,// 默认的进程调度优先级,对应 Windows 上的 NORMAL_PRIORITY_CLASS PRIORITY_ABOVE_NORMAL: -7,// 进程调度优先级介于 PRIORITY_NORMAL 和 PRIORITY_HIGH 之间,对应 Windows 上的 ABOVE_NORMAL_PRIORITY_CLASS PRIORITY_HIGH: -14,// 进程调度优先级介于 PRIORITY_ABOVE_NORMAL 和 PRIORITY_HIGHEST 之间,对应 Windows 上的 HIGH_PRIORITY_CLASS PRIORITY_HIGHEST: -20 // 最高的进程调度优先级,对应 Windows 上的 REALTIME_PRIORITY_CLASS } }