- assert - 断言
- async_hooks - 异步钩子
- Buffer - 缓冲器
- child_process - 子进程
- cluster - 集群
- console - 控制台
- crypto - 加密
- debugger - 调试器
- dgram - 数据报
- dns - 域名服务器
- domain - 域
- Error - 错误
- events - 事件触发器
- fs - 文件系统
- global - 全局变量
- http - HTTP
- http2 - HTTP/2
- https - HTTPS
- inspector - 检查器
- module - 模块
- net - 网络
- os - 操作系统
- path - 路径
- perf_hooks - 性能钩子
- process - 进程
- punycode - 域名代码
- querystring - 查询字符串
- readline - 逐行读取
- repl - 交互式解释器
- stream - 流
- string_decoder - 字符串解码器
- timer - 定时器
- tls - 安全传输层
- trace_events - 跟踪事件
- tty - 终端
- url - URL
- util - 实用工具
- v8 - V8引擎
- vm - 虚拟机
- wasi - WASI
- worker_threads - 工作线程
- zlib - 压缩
目录
- os(操作系统)
os.EOLos.arch()os.constantsos.cpus()os.endianness()os.freemem()os.getPriority([pid])os.homedir()os.hostname()os.loadavg()os.networkInterfaces()os.platform()os.release()os.setPriority([pid, ]priority)os.tmpdir()os.totalmem()os.type()os.uptime()os.userInfo([options])os.version()- OS 常量
os(操作系统)#
源代码: lib/os.js
os 模块提供了与操作系统相关的实用方法和属性。
使用方法如下:
const os = require('os');
os.EOL#
操作系统特定的行末标志。
- 在 POSIX 上是
\n。 - 在 Windows 上是
\r\n。
os.arch()#
- 返回: <string>
返回为其编译 Node.js 二进制文件的操作系统的 CPU 架构。
可能的值有:'arm'、 'arm64'、 'ia32'、 'mips'、 'mipsel'、 'ppc'、 'ppc64'、 's390'、 's390x'、 'x32' 和 'x64'。
返回的值等价于 process.arch。
os.constants#
包含错误码、进程信号等常用的操作系统特定的常量。 定义的特定常量在 OS 常量中描述。
os.cpus()#
- 返回: <Object[]>
返回一个对象数组,其中包含有关每个逻辑 CPU 内核的信息。
每个对象上包含的属性有:
[
{
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
}
}
]
nice 的值仅适用于 POSIX。
在 Windows 上,所有处理器的 nice 值始终为 0。
os.endianness()#
- 返回: <string>
返回一个字符串,该字符串标识为其编译 Node.js 二进制文件的 CPU 的字节序。
可能的值有, 'BE' 用于大端字节序, 'LE' 用于小端字节序。
os.freemem()#
- 返回: <integer>
以整数的形式返回空闲的系统内存量(以字节为单位)。
os.getPriority([pid])#
返回由 pid 指定的进程的调度优先级。
如果未提供 pid 或者为 0,则返回当前进程的优先级。
os.homedir()#
- 返回: <string>
返回当前用户的主目录的字符串路径。
在 POSIX 上,使用 $HOME 环境变量(如果有定义)。
否则,使用有效的 UID 来查找用户的主目录。
在 Windows 上,使用 USERPROFILE 环境变量(如果有定义)。
否则,使用当前用户的配置文件目录的路径。
os.hostname()#
- 返回: <string>
以字符串的形式返回操作系统的主机名。
os.loadavg()#
- 返回: <number[]>
返回一个数组,包含 1、5 和 15 分钟的平均负载。
平均负载是系统活动性的测量,由操作系统计算得出,并表现为一个分数。
平均负载是 UNIX 特定的概念。
在 Windows 上,其返回值始终为 [0, 0, 0]。
os.networkInterfaces()#
- 返回: <Object>
返回一个对象,该对象包含已分配了网络地址的网络接口。
返回的对象上的每个键都标识了一个网络接口。 关联的值是一个对象数组,每个对象描述了一个分配的网络地址。
分配的网络地址的对象上可用的属性包括:
address<string> 分配的 IPv4 或 IPv6 地址。netmask<string> IPv4 或 IPv6 的子网掩码。family<string>IPv4或IPv6。mac<string> 网络接口的 MAC 地址。internal<boolean> 如果网络接口是不可远程访问的环回接口或类似接口,则为true,否则为false。scopeid<number> 数值型的 IPv6 作用域 ID(仅当family为IPv6时指定)。cidr<string> 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果netmask无效,则此属性会被设为null。
{
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'
}
]
}
os.platform()#
- 返回: <string>
返回标识操作系统平台的字符串。
该值在编译时设置。
可能的值有 'aix'、 'darwin'、 'freebsd'、 'linux'、 'openbsd'、 'sunos' 和 'win32'。
返回的值等价于 process.platform。
如果 Node.js 在 Android 操作系统上构建,则也可能返回 'android' 值。
Android 的支持是实验性的。
os.release()#
- 返回: <string>
以字符串的形式返回操作系统。
在 POSIX 系统上,操作系统的发行版是通过调用 uname(3) 判断的。
在 Windows 上, 则使用 GetVersionExW()。
详见 https://en.wikipedia.org/wiki/Uname#Examples。
os.setPriority([pid, ]priority)#
尝试为 pid 指定的进程设置调度优先级。
如果未提供 pid 或者为 0,则使用当前进程的进程 ID。
priority 输入必须是 -20(高优先级)到 19(低优先级)之间的整数。
由于 Unix 优先级和 Windows 优先级之间的差异, priority 会被映射到 os.constants.priority 中的六个优先级常量之一。
当检索进程的优先级时,此范围的映射可能导致 Windows 上的返回值略有不同。
为避免混淆,应将 priority 设置为优先级常量之一。
在 Windows 上,将优先级设置为 PRIORITY_HIGHEST 需要较高的用户权限。
否则,设置的优先级将会被静默地降低为 PRIORITY_HIGH。
os.tmpdir()#
- 返回: <string>
以字符串的形式返回操作系统的默认临时文件目录。
os.totalmem()#
- 返回: <integer>
以整数的形式返回系统的内存总量(以字节为单位)。
os.type()#
- 返回: <string>
返回与 uname(3) 返回一样的操作系统名字。
例如,在 Linux 上返回 'Linux',在 macOS 上返回 'Darwin',在 Windows 上返回 'Windows_NT'。
有关在各种操作系统上运行 uname(3) 的输出的更多信息,参见 https://en.wikipedia.org/wiki/Uname#Examples。
os.uptime()#
- 返回: <integer>
返回系统的正常运行时间(以秒为单位)。
os.userInfo([options])#
options<Object>encoding<string> 用于解释结果字符串的字符编码。如果将encoding设置为'buffer',则username、shell和homedir的值将会是Buffer实例。默认值:'utf8'。
- 返回: <Object>
返回关于当前有效用户的信息。
在 POSIX 平台上,这通常是密码文件的子集。
返回的对象包含 username、 uid、 gid、 shell 和 homedir。
在 Windows 上,则 uid 和 gid 字段为 -1,且 shell 为 null。
os.userInfo() 返回的 homedir 的值由操作系统提供。
这与 os.homedir() 的结果不同,其是在返回操作系统的响应之前会先查询主目录的环境变量。
如果用户没有 username 或 homedir,则抛出 SystemError。
os.version()#
- Returns <string>
Returns a string identifying the kernel version.
On POSIX systems, the operating system release is determined by calling
uname(3). On Windows, RtlGetVersion() is used, and if it is not
available, GetVersionExW() will be used. See
https://en.wikipedia.org/wiki/Uname#Examples for more information.
OS 常量#
下面的常量被 os.constants 所输出。
并不是所有的常量在每一个操作系统上都是可用的。
信号常量#
下面的信号常量由 os.constants.signals 导出。
| 常量 | 描述 |
|---|---|
SIGHUP |
发送来表明当一个控制终端关闭或者是父进程退出。 |
SIGINT | 发送来表明当一个用户期望中断一个进程时。((Ctrl+C)). |
SIGQUIT |
发送来表明当一个用户希望终止一个进程并且执行核心转储。 |
SIGILL |
发送给一个进程来通知它已经试图执行一个非法的、畸形的、未知的或特权的指令. |
SIGTRAP |
发送给一个进程当异常已经发生。 |
SIGABRT |
发送给一个进程来请求终止。 |
SIGIOT |
SIGABRT 的同义词 |
SIGBUS |
发送给一个进程来通知它已经造成了总线错误。 |
SIGFPE |
发送给一个进程来通知它已经执行了一个非法的算术操作。 |
SIGKILL |
发送给一个进程来立即终止它。 |
SIGUSR1 SIGUSR2 |
发送给一个进程来确定它的用户定义情况。 |
SIGSEGV |
发送给一个进程来通知段错误。 |
SIGPIPE |
发送给一个进程当它试图写入一个非连接的管道时。 |
SIGALRM |
发送给一个进程当系统时钟消逝时。 |
SIGTERM |
发送给一个进程来请求终止。 |
SIGCHLD |
发送给一个进程当一个子进程终止时。 |
SIGSTKFLT |
发送给一个进程来表明一个协处理器的栈错误。 |
SIGCONT |
发送来通知操作系统继续一个暂停的进程。 |
SIGSTOP |
发送来通知操作系统暂停一个进程。 |
SIGTSTP |
发送给一个进程来请求它停止。 |
SIGBREAK |
发送来表明当一个用户希望终止一个进程。 |
SIGTTIN |
发送给一个进程当它在后台读取 TTY 时。 |
SIGTTOU |
发送给一个进程当它在后台写入 TTY 时。 |
SIGURG |
发送给一个进程当 socket 有紧急的数据需要读取时。 |
SIGXCPU |
发送给一个进程当它超过他在 CPU 使用上的限制时。 |
SIGXFSZ |
发送给一个进程当它使文件成长地比最大允许的值还大时。 |
SIGVTALRM |
发送给一个进程当一个虚拟时钟消逝时。 |
SIGPROF |
发送给一个进程当一个系统时钟消逝时。 |
SIGWINCH |
发送给一个进程当控制终端改变它的大小。 |
SIGIO |
发送给一个进程当 I/O 可用时。 |
SIGPOLL |
SIGIO 的同义词 |
SIGLOST |
发送给一个进程当文件锁丢失时。 |
SIGPWR |
发送给一个进程来通知功率错误。 |
SIGINFO |
SIGPWR 的同义词 |
SIGSYS |
发送给一个进程来通知有错误的参数。 |
SIGUNUSED |
SIGSYS 的同义词 |
错误常量#
下面的错误常量由 os.constants.errno 给出。
POSIX 错误常量#
| 常量 | 描述 |
|---|---|
E2BIG |
表明参数列表比期望的要长。 |
EACCES |
表明操作没有足够的权限。 |
EADDRINUSE |
表明该网络地址已经在使用。 |
EADDRNOTAVAIL |
表明该网络地址当前不能使用。 |
EAFNOSUPPORT |
表明该网络地址簇不被支持。 |
EAGAIN |
表明没有可用数据,稍后再次尝试操作。 |
EALREADY |
表明 socket 有一个即将发生的连接在进行中。 |
EBADF |
表明一个文件描述符不可用。 |
EBADMSG |
表明一个无效的数据信息。 |
EBUSY |
表明一个设备或资源处于忙碌中。 |
ECANCELED |
表明一个操作被取消。 |
ECHILD |
表明没有子进程。 |
ECONNABORTED |
表明网络连接已经被终止。 |
ECONNREFUSED |
表明网络连接被拒绝。 |
ECONNRESET |
表明网络连接被重置。 |
EDEADLK |
表明一个资源死锁已经被避免。 |
EDESTADDRREQ |
表明需要目的地址。 |
EDOM |
表明参数超过了函数的作用域。 |
EDQUOT |
表明已经超过磁盘指标。 |
EEXIST |
表明文件已经存在。 |
EFAULT |
表明一个无效的指针地址。 |
EFBIG |
表明文件太大。 |
EHOSTUNREACH |
表明主机不可达。 |
EIDRM |
表明识别码已经被移除。 |
EILSEQ |
表明一个非法的字节序。 |
EINPROGRESS |
表明一个操作已经在进行中。 |
EINTR |
表明一个函数调用被中断。 |
EINVAL |
表明提供了一个无效的参数。 |
EIO |
表明一个其他的不确定的 I/O 错误。 |
EISCONN |
表明 socket 已经连接。 |
EISDIR |
表明路径是目录。 |
ELOOP |
表明路径上有太多层次的符号连接。 |
EMFILE |
表明有太多打开的文件。 |
EMLINK |
表明文件上有太多的硬连接。 |
EMSGSIZE |
表明提供的信息太长。 |
EMULTIHOP |
表明多跳被尝试。 |
ENAMETOOLONG |
表明文件名太长。 |
ENETDOWN |
表明网络关闭。 |
ENETRESET |
表明连接被网络终止。 |
ENETUNREACH |
表明网络不可达。 |
ENFILE |
表明系统中打开了太多的文件。 |
ENOBUFS |
表明没有有效的缓存空间。 |
ENODATA |
表明在流头读取队列上没有可用的信息。 |
ENODEV |
表明没有这样的设备。 |
ENOENT |
表明没有这样的文件或目录。 |
ENOEXEC |
表明一个执行格式错误。 |
ENOLCK |
表明没有可用的锁。 |
ENOLINK |
表明链接在服务。 |
ENOMEM |
表明没有足够的空间。 |
ENOMSG |
表明想要的数据类型没有信息。 |
ENOPROTOOPT |
表明给定的协议不可用。 |
ENOSPC |
表明该设备上没有可用的空间。 |
ENOSR |
表明没有可用的流资源。 |
ENOSTR |
表明给定的资源不是流。 |
ENOSYS |
表明功能没有被实现。 |
ENOTCONN |
表明 socket 没有连接。 |
ENOTDIR |
表明路径不是目录。 |
ENOTEMPTY |
表明目录是非空的。 |
ENOTSOCK |
表明给定的项目不是 socket。 |
ENOTSUP |
表明给定的操作不受支持。 |
ENOTTY |
表明一个不适当的 I/O 控制操作。 |
ENXIO |
表明没有该设备或地址。 |
EOPNOTSUPP |
表明一个操作不被 socket 所支持。
尽管 ENOTSUP 和 EOPNOTSUPP 在 Linux 上有相同的值,但是根据 POSIX.1 规范,这些错误值应该不同。 |
EOVERFLOW |
表明一个值太大以至于难以用给定的数据类型存储。 |
EPERM |
表明操作没有被许可。 |
EPIPE |
表明破裂的管道。 |
EPROTO |
表明协议错误。 |
EPROTONOSUPPORT |
表明一个协议不被支持。 |
EPROTOTYPE |
表明 socket 错误的协议类型。 |
ERANGE |
表明结果太大了。 |
EROFS |
表明该文件系统是只读的。 |
ESPIPE |
表明无效的查询操作。 |
ESRCH |
表明没有这样的进程。 |
ESTALE |
表明该文件处理是稳定的。 |
ETIME |
表明一个过期的时钟。 |
ETIMEDOUT |
表明该连接超时。 |
ETXTBSY |
表明一个文本文件处于忙碌。 |
EWOULDBLOCK |
表明该操作被屏蔽。 |
EXDEV |
表明一个不合适的连接。 |
Windows 系统特有的错误常量#
下面的错误码与 Windows 系统相关。
| 常量 | 描述 |
|---|---|
WSAEINTR |
表明中断的函数调用。 |
WSAEBADF |
表明一个无效的文件句柄。 |
WSAEACCES |
表明权限不够完成操作。 |
WSAEFAULT |
表明无效的指针地址。 |
WSAEINVAL |
表明无效的参数被传递。 |
WSAEMFILE |
表明有太多打开的文件。 |
WSAEWOULDBLOCK |
表明资源暂时不可用。 |
WSAEINPROGRESS |
表明操作当前正在进行中。 |
WSAEALREADY |
表明操作已经在进行中。 |
WSAENOTSOCK |
表明资源不是 socket。 |
WSAEDESTADDRREQ |
表明需要目的地址。 |
WSAEMSGSIZE |
表明消息太长。 |
WSAEPROTOTYPE |
表明 socket 协议类型错误。 |
WSAENOPROTOOPT |
表明错误的协议选项。 |
WSAEPROTONOSUPPORT |
表明协议不被支持。 |
WSAESOCKTNOSUPPORT |
表明 socket 类型不被支持。 |
WSAEOPNOTSUPP |
表明操作不被支持。 |
WSAEPFNOSUPPORT |
表明协议簇不被支持。 |
WSAEAFNOSUPPORT |
表明地址簇不被支持。 |
WSAEADDRINUSE |
表明网络地址已经在使用。 |
WSAEADDRNOTAVAIL |
表明网络地址不可用。 |
WSAENETDOWN |
表明网络关闭。 |
WSAENETUNREACH |
表明网络不可达。 |
WSAENETRESET |
表明网络连接被重置。 |
WSAECONNABORTED |
表明连接被终止。 |
WSAECONNRESET |
表明连接被同伴重置。 |
WSAENOBUFS |
表明没有可用的缓存空间。 |
WSAEISCONN |
表明 socket 已经连接。 |
WSAENOTCONN |
表明 socket 没有连接。 |
WSAESHUTDOWN |
表明数据在 socket 关闭之后,不能被发送。 |
WSAETOOMANYREFS |
表明有太多的引用。 |
WSAETIMEDOUT |
表明连接超时。 |
WSAECONNREFUSED |
表明连接被拒绝。 |
WSAELOOP |
表明名字不能被翻译。 |
WSAENAMETOOLONG |
表明名字太长。 |
WSAEHOSTDOWN |
表明网络主机关闭。 |
WSAEHOSTUNREACH |
表明没有到网络主机的路由。 |
WSAENOTEMPTY |
表明目录非空。 |
WSAEPROCLIM |
表明有太多的进程。 |
WSAEUSERS |
表明已经超过用户指标。 |
WSAEDQUOT |
表明已经超过磁盘指标。 |
WSAESTALE |
表明一个稳定的文件句柄引用。 |
WSAEREMOTE |
表明项目是远程的。 |
WSASYSNOTREADY |
表明网络子系统尚未准备好。 |
WSAVERNOTSUPPORTED |
表明 winsock.dll 版本在范围之外。 |
WSANOTINITIALISED |
表明成功的 WSAStartup 还没有被执行。 |
WSAEDISCON |
表明一个优雅的关机正在进行。 |
WSAENOMORE |
表明没有更多的结果。 |
WSAECANCELLED |
表明一个操作已经被取消。 |
WSAEINVALIDPROCTABLE |
表明过程调用表是无效的。 |
WSAEINVALIDPROVIDER |
表明无效的服务提供者。 |
WSAEPROVIDERFAILEDINIT |
表明服务提供者初始化失败。 |
WSASYSCALLFAILURE |
表明系统调用失败。 |
WSASERVICE_NOT_FOUND |
表明服务没有被找到。 |
WSATYPE_NOT_FOUND |
表明类类型没有被找到。 |
WSA_E_NO_MORE |
表明没有更多的结果。 |
WSA_E_CANCELLED |
表明调用被取消。 |
WSAEREFUSED |
表明数据库请求被拒绝。 |
dlopen 常量#
如果在操作系统上可用,则以下常量在 os.constants.dlopen 中导出。
有关详细信息,请参见 dlopen(3) 信息。
| 常量 | 描述 |
|---|---|
RTLD_LAZY |
执行延迟绑定。 Node.js 默认设置此标志。 |
RTLD_NOW |
在 dlopen(3) 返回之前解析库中的所有未定义符号。 |
RTLD_GLOBAL |
库定义的符号将可用于后续加载的库的符号解析。 |
RTLD_LOCAL |
与 RTLD_GLOBAL 相反。 如果未指定任何标志,则这是默认行为。 |
RTLD_DEEPBIND |
使一个独立的库使用自己的符号,而不是先前加载的库中的符号。 |
优先级常量#
以下进程调度常量由 os.constants.priority 导出。
| 常量 | 描述 |
|---|---|
PRIORITY_LOW |
最低进程调度优先级。这与 Windows 上的 IDLE_PRIORITY_CLASS 相对应,在所有其他平台上的值为 19。 |
PRIORITY_BELOW_NORMAL |
进程调度优先级高于 PRIORITY_LOW 且低于 PRIORITY_NORMAL。这对应于 Windows 上的 PRIORITY_NORMAL,并且在所有其他平台上的值为 10。 |
PRIORITY_NORMAL |
默认的进程调度优先级。这对应于 Windows 上的 NORMAL_PRIORITY_CLASS,并且在所有其他平台上的值为 0。 |
PRIORITY_ABOVE_NORMAL |
进程调度优先级高于 PRIORITY_NORMAL 且低于 PRIORITY_HIGH。这对应于 Windows 上的 ABOVE_NORMAL_PRIORITY_CLASS,并且在所有其他平台上的值为 -7。 |
PRIORITY_HIGH |
进程调度优先级高于 PRIORITY_ABOVE_NORMAL 且低于 PRIORITY_ABOVE_NORMAL。这对应于 Windows 上的 HIGH_PRIORITY_CLASS,并且在所有其他平台上的值为 -14。 |
PRIORITY_HIGHEST |
最高进程调度优先级。 这对应于 Windows 上的 REALTIME_PRIORITY_CLASS,在所有其他平台上的值为 -20。 |
libuv 常量#
| 常量 | 描述 |
|---|---|
UV_UDP_REUSEADDR |