提供了操做系統相關的實用方法 使用方法: const os = require('os');
os.type()
以字符串的形式返回操做系統的名字
eg:linux
> os.type() 'Linux'
Linux系統:'Linux'
macOS 系統:'Darwin'
Windows系統:'Windows_NT'shell
os.hostname()
以字符串的形式返回操做系統的主機名
eg:數組
> os.hostname() 'ocean-VirtualBox'
os.release()
以字符串的形式返回操做系統的發行版
eg:bash
> 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.totalmem()
以整數的形式返回全部系統內存的字節數
eg:oop
> os.totalmem() 1040474112
os.freemem()
以整數的形式回空閒系統內存 的字節數
eg:ui
> os.freemem() 100966400
os.tmpdir()
以字符串的形式返回操做系統的默認臨時文件目錄.
eg:操作系統
> os.tmpdir() '/tmp'
os.homedir()
以字符串的形式返回當前用戶的home目錄.net
> os.homedir() '/root'
os.getPriority([pid])
返回 pid 指定的進程的計劃優先級
pid默認值:0.
eg:
> os.getPriority() 0
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.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 } }