什么是终端
终端就是与系统进行人机交互的设备
所以,终端支持输入(人—>机)
终端也有输出(机—>人)
分类
ptsn (n属于[0, 15])
- 如果我们用ssh,telnet一类的工具连接上系统,则系统会给我们分配一个伪终端pty(pts是pty的实现方法)
ttyn (n属于[1, 6])
- 如果我们显示器直连系统,则系统会给我们分配一个物理终端tty
如何查看
查看终端上登录了哪些账号
我们用jojo这个账号直接服务器,系统会给我们分配一个tty
我们用jojo这个账号通过ssh登录服务器,系统会给我们分配一个pts
然后我们用who 查看所有当前登录的设备
who
jojo tty1 2021-06-02 15:35
jojo pts/1 2021-06-02 15:35 (192.168.200.8)
我们知道,终端是人机交互设备,那么我们可以将我们要显示的内容输出给另一个终端
比如在tty1上,我们运行以下命令,那么在pts/1的终端上我们将看到hello
echo hello > /dev/pts/1
# 或者,你也可以玩得花一点,用专门的命令与另一个终端交互
write jojo pts/1
hello, how are you?
查看终端在执行的操作
我们登录上设备后,
在我们退出设备前
我们可以看到另一个终端上在执行的操作
比如我们在tty1上执行top命令,我们在pts/1上可以ps -a查看
ps -a
PID TTY TIME CMD
1293127 pts/1 00:00:00 sudo
1293128 pts/1 00:00:00 su
1293129 pts/1 00:00:00 bash
1295219 tty1 00:00:00 top
1296164 pts/1 00:00:00 ps
在我们退出设备后
我们在终端上运行的后台进程会显示为?
可以用ps -e查看,如下
ps -e | head
PID TTY TIME CMD
1 ? 00:01:58 systemd
2 ? 00:00:00 kthreadd
4 ? 00:00:00 kworker/0:0H
5 ? 00:00:00 kworker/u64:0
6 ? 00:00:01 ksoftirqd/0
7 ? 00:00:00 migration/0
8 ? 00:00:00 rcu_bh
9 ? 00:12:01 rcu_sched
10 ? 00:00:00 lru-add-drain