node os方法和使用示例

os(操做系統)

提供了操做系統相關的實用方法
使用方法: const os = require('os');

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.uptime()
    在幾秒內返回操做系統的上線時間
    eg:
  • 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.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
           }
       }
相關文章
相關標籤/搜索