# OS
# TTY
“tty” 原意是指 “teletype” 即打字机, “pty” 则是 “pseudo-teletype” 即伪打字机. 在 Unix 中, /dev/tty* 是指任何表现的像打字机的设备, 例如终端 (terminal).
你可以通过 w 命令查看当前登录的用户情况, 你会发现每登录了一个窗口就会有一个新的 tty.
$ w
11:49:43 up 482 days, 19:38, 3 users, load average: 0.03, 0.08, 0.07
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
dev pts/0 10.0.128.252 10:44 1:01m 0.09s 0.07s -bash
dev pts/2 10.0.128.252 11:08 2:07 0.17s 0.14s top
root pts/3 10.0.240.2 11:43 7.00s 0.04s 0.00s w
@前端进阶之旅: 代码已经复制到剪贴板
使用 ps 命令查看进程信息中也有 tty 的信息:
$ ps -x
PID TTY STAT TIME COMMAND
5530 ? S 0:00 sshd: dev@pts/3
5531 pts/3 Ss+ 0:00 -bash
11296 ? S 0:00 sshd: dev@pts/4
11297 pts/4 Ss 0:00 -bash
13318 pts/4 R+ 0:00 ps -x
23733 ? Ssl 2:53 PM2 v1.1.2: God Daemon
@前端进阶之旅: 代码已经复制到剪贴板
其中为 ? 的是没有依赖 TTY 的进程, 即守护进程.
在 Node.js 中你可以通过 stdio 的 isTTY 来判断当前进程是否处于 TTY (如终端) 的环境.
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
@前端进阶之旅: 代码已经复制到剪贴板
# OS
通过 OS 模块可以获取到当前系统一些基础信息的辅助函数.
| 属性 | 描述 |
|---|---|
| os.EOL | 根据当前系统, 返回当前系统的 End Of Line |
| os.arch() | 返回当前系统的 CPU 架构, 如 'x86' 和 'x64' |
| os.constants | 返回系统常量 |
| os.cpus() | 返回 CPU 每个核的信息 |
| os.endianness() | 返回 CPU 字节序, 如果是大端字节序返回 BE, 小端字节序则 LE |
| os.freemem() | 返回系统空闲内存的大小, 单位是字节 |
| os.homedir() | 返回当前用户的根目录 |
| os.hostname() | 返回当前系统的主机名 |
| os.loadavg() | 返回负载信息 |
| os.networkInterfaces() | 返回网卡信息 (类似 ifconfig) |
| os.platform() | 返回编 |
