node os方法和使用示例

13次阅读

共计 4426 个字符,预计需要花费 12 分钟才能阅读完成。

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
           }
       }
    
正文完
 0