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