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 } }