這篇文章主要講解了Node.js API中os模塊的使用方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
os是Node的一個基礎模塊,提供了一些操作系統相關的屬性接口。
通過 const os = require('os'); 的方式引用os模塊,我們接著看下os都有哪些功能
說明:
一個字符串常量,定義操作系統相關的行末標志:POSIX 系統上值為\n,Windows下的值為\r\n
demo:
console.log('abc'+ os.EOL +'123');
//abc
//123說明:
該方法返回一個字符串,來說明當前運行環境的CPU架構,
可能的值有: 'arm', 'arm64', 'ia32', 'mips', 'mipsel', 'ppc', 'ppc64', 's390', 's390x', 'x32', 'x64', 和 'x86'
demo:
console.log(os.arch()); //x64
說明:
此常量是一個包含錯誤碼,處理信號等系統常量的對象。具體描述可以查看:OS 常量
demo:
console.log(os.constants);
// { UV_UDP_REUSEADDR: 4, //libuv 常量
// errno:
// { E2BIG: 7,
// EACCES: 13,
// EADDRINUSE: 48,
// EADDRNOTAVAIL: 49,
// EAFNOSUPPORT: 47,
// EAGAIN: 35,
// EALREADY: 37,
// EBADF: 9,
// EBADMSG: 94,
// EBUSY: 16,
// ECANCELED: 89,
// ECHILD: 10,
// ECONNABORTED: 53,
// ECONNREFUSED: 61,
// ECONNRESET: 54,
// EDEADLK: 11,
// EDESTADDRREQ: 39,
// EDOM: 33,
// EDQUOT: 69,
// EEXIST: 17,
// EFAULT: 14,
// EFBIG: 27,
// EHOSTUNREACH: 65,
// EIDRM: 90,
// EILSEQ: 92,
// EINPROGRESS: 36,
// EINTR: 4,
// EINVAL: 22,
// EIO: 5,
// EISCONN: 56,
// EISDIR: 21,
// ELOOP: 62,
// EMFILE: 24,
// EMLINK: 31,
// EMSGSIZE: 40,
// EMULTIHOP: 95,
// ENAMETOOLONG: 63,
// ENETDOWN: 50,
// ENETRESET: 52,
// ENETUNREACH: 51,
// ENFILE: 23,
// ENOBUFS: 55,
// ENODATA: 96,
// ENODEV: 19,
// ENOENT: 2,
// ENOEXEC: 8,
// ENOLCK: 77,
// ENOLINK: 97,
// ENOMEM: 12,
// ENOMSG: 91,
// ENOPROTOOPT: 42,
// ENOSPC: 28,
// ENOSR: 98,
// ENOSTR: 99,
// ENOSYS: 78,
// ENOTCONN: 57,
// ENOTDIR: 20,
// ENOTEMPTY: 66,
// ENOTSOCK: 38,
// ENOTSUP: 45,
// ENOTTY: 25,
// ENXIO: 6,
// EOPNOTSUPP: 102,
// EOVERFLOW: 84,
// EPERM: 1,
// EPIPE: 32,
// EPROTO: 100,
// EPROTONOSUPPORT: 43,
// EPROTOTYPE: 41,
// ERANGE: 34,
// EROFS: 30,
// ESPIPE: 29,
// ESRCH: 3,
// ESTALE: 70,
// ETIME: 101,
// ETIMEDOUT: 60,
// ETXTBSY: 26,
// EWOULDBLOCK: 35,
// EXDEV: 18 },
// signals:
// { SIGHUP: 1,
// SIGINT: 2,
// SIGQUIT: 3,
// SIGILL: 4,
// SIGTRAP: 5,
// SIGABRT: 6,
// SIGIOT: 6,
// SIGBUS: 10,
// SIGFPE: 8,
// SIGKILL: 9,
// SIGUSR1: 30,
// SIGSEGV: 11,
// SIGUSR2: 31,
// SIGPIPE: 13,
// SIGALRM: 14,
// SIGTERM: 15,
// SIGCHLD: 20,
// SIGCONT: 19,
// SIGSTOP: 17,
// SIGTSTP: 18,
// SIGTTIN: 21,
// SIGTTOU: 22,
// SIGURG: 16,
// SIGXCPU: 24,
// SIGXFSZ: 25,
// SIGVTALRM: 26,
// SIGPROF: 27,
// SIGWINCH: 28,
// SIGIO: 23,
// SIGINFO: 29,
// SIGSYS: 12
// }
// }說明:
該方法返回一個對象數組, 包含每個邏輯 CPU 內核的信息。
demo:
console.log(os.cpus());
// [ { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
// speed: 2900,
// times: {
// user: 96756760, //CPU花費在用戶模式下的毫秒時間數
// nice: 0, //CPU花費在良好模式下的毫秒時間數
// sys: 80507720, //CPU花費在系統模式下的毫秒時間數
// idle: 606147830, //CPU花費在空閑模式下的毫秒時間數
// irq: 0 //CPU花費在中斷請求模式下的毫秒時間數
// }
// },
// { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
// speed: 2900,
// times: { user: 43796970, nice: 0, sys: 37796280, idle: 701811920, irq: 0 }
// },
// { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
// speed: 2900,
// times: { user: 94060830, nice: 0, sys: 68641950, idle: 620702410, irq: 0 }
// },
// { model: 'Intel(R) Core(TM) i5-5287U CPU @ 2.90GHz',
// speed: 2900,
// times: { user: 45641410, nice: 0, sys: 39136540, idle: 698627210, irq: 0 }
// } ]說明:
該方法返回一個字符串,表明Node.js二進制編譯環境的字節順序,可能的值為:'BE'(Big-Endian) 大端模式,'LE'(Little-Endian) 小端模式
大端模式:是指數據的高字節保存在內存的低地址中,數據的低字節保存在內存的高地址中。
小端模式:是指數據的高字節保存在內存的高地址中,數據的低字節保存在內存的低地址中。
以 0x12345678 為例:
demo:
console.log(os.endianness()); //LE
說明:
該方法以整數的形式返回空閑系統內存的字節數
demo:
console.log(os.freemem()); //7155720192
說明:
該方法以字符串的形式返回當前用戶的home目錄
demo:
console.log(os.homedir()); // /Users/xiaoqiang
說明:
該方法以字符串的形式返回操作系統的主機名
demo:
console.log(os.hostname()); //xiaoqiangMacBook-Pro.local
說明:
該方法返回一個數組,包含1, 5, 15分鐘平均負載.
demo:
console.log(os.loadavg()); //[ 2.57080078125, 2.38037109375, 2.30908203125 ] windows下返回[0, 0, 0]
說明:
該方法返回一個對象,包含被賦予網絡地址的網絡接口.
demo:
console.log(os.networkInterfaces());
// {
// lo: [
// {
// address: '127.0.0.1', //被賦予的 IPv4 或 IPv6 地址
// netmask: '255.0.0.0', //IPv4 或 IPv6 子網掩碼
// family: 'IPv4', //IPv4 或 IPv6
// mac: '00:00:00:00:00:00', //網絡接口的MAC地址
// internal: true, //如果 網絡接口是loopback或相似的遠程不能用的接口時, 值為true,否則為false
// cidr: '127.0.0.1/8' //以 CIDR 表示法分配的帶有路由前綴的 IPv4 或 IPv6 地址。如果 netmask 參數不可用,則該屬性是 null
// },
// {
// 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'
// }
// ]
// }說明:
該方法返回Node.js編譯時的操作系統平臺,值可能為:'aix','darwin','freebsd','linux','openbsd','sunos','win32′
demo:
console.log(os.platform()); // darwin
說明:
該方法返回一個字符串, 指定操作系統的發行版.
demo:
console.log(os.release()); // 17.2.0
說明:
該方法返回一個字符串, 指定操作系統的發行版.
demo:
console.log(os.tmpdir()); // /var/folders/xv/4dbb00000gn/T
說明:
該方法以整數的形式返回所有系統內存的字節數.
demo:
console.log(os.totalmem()); //17179869184
說明:
該方法返回一個字符串,表明操作系統的名字
demo:
console.log(os.type()); // Darwin
說明:
該方法在幾秒內返回操作系統的上線時間
demo:
console.log(os.uptime()); // 1293306
說明:
該方法用來獲取當前有效用戶的信息
該方法傳遞一個encoding參數,用來指定返回值的編碼方式,默認utf8,也可以設置為:buffer。
demo:
console.log(os.userInfo());
// {
// uid: 501,
// gid: 20,
// username: 'xiaoqiang',
// homedir: '/Users/xiaoqiang',
// shell: '/bin/bash'
// }
console.log(os.userInfo({encoding: 'buffer'}));
// {
// uid: 501,
// gid: 20,
// username: ,
// homedir: ,
// shell:
// }看完上述內容,是不是對Node.js API中os模塊的使用方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。