一,
关于终端的一些基本概念
tty、pty 和 pts 是在类 Unix 系统(包括 Linux)中与终端交互相关的概念。它们各自代表不同的方面,并且有着密切的关联。
-  
tty (Teletype)
- tty 原指老式的电传打字机,后来泛指任何类型的终端设备。
 - 在现代Linux系统中 
/dev/tty*表示实际或虚拟的终端接口,例如/dev/tty1到/dev/tty6通常是系统的本地控制台(文本模式登录界面),而/dev/tty指向当前进程关联的控制终端,这里请注意,本地这个词是要重点突出的!!!!!!!!!!另一个是真实的服务器,比如下图,我这个就是tty,虽然是VMware的虚拟机 
 
-  
pty (Pseudo-TTY, 伪终端)
- pty 是一种软件模拟的终端设备,它提供了一种机制,使得一个进程可以像操作真正的终端一样与另一个进程进行交互,即使后者不是直接连接到物理TTY设备上。
 - 伪终端由两部分组成:一个“主设备”和一个“从设备”。主设备通常称为 
ptmx(pseudo-terminal master multiplexer),从设备一般表示为/dev/pts/*,如/dev/pts/0、/dev/pts/1等。 - 当应用程序(如 ssh、telnet 或者终端模拟器如 gnome-terminal)打开一个pty时,操作系统会创建一对pty设备,其中一方(slave端,即pts)用于接受用户的输入并显示输出,另一方(master端)则可以被服务端程序读写,从而实现远程或者本地的命令行交互。
 
 -  
pts (Pseudo-Terminal Slave, 伪终端从设备)
- pts 是伪终端的一部分,是用户通过终端模拟器或网络协议(如SSH)登录后使用的那部分逻辑终端,它模拟了物理TTY的行为,允许非本地用户获得类似于本地控制台的交互体验。
 - 当你在 SSH 连接到一台远程服务器时,你实际上是在使用一个 pts 设备,可以通过执行 
tty命令查看当前shell所在的pts设备,例如输出可能是/dev/pts/2。 
 
例如,我这个xshell的登录窗口就是pts了

总结:
- tty 通常指的是所有类型的终端接口,包括物理终端和虚拟终端。
 - pty 是一种软件模拟的终端设备,它可以模拟真实终端的功能,使得远程或本地进程能够像对待真实的TTY那样工作。
 - pts 是 pty 的一部分,具体是指伪终端的从设备,它是与用户交互的实际入口点,在许多情况下用于支持远程登录和本地命令行应用的子进程。
 
二、
终端管理的意义
通过w,who,tty这些命令可以查看到有哪些终端是登录的,登录的终端是否是符合我们的预期,例如,有不怀好意的人登录了云服务器,那么,其实通过w命令,我们是能初步的判断哪些人是非法的,哪些人是合法合规的登录
为什么这么说呢?例如,现在我的服务器有两个登录,一个是tty1,一个是pts/0 ,而pts/0 是从我的网关登录的,那么,这就可以确定,我的网络里只有我自己啦
如果此时把from里的IP封禁掉,自然的就登录不了了
 06:53:46 up 29 min,  2 users,  load average: 0.00, 0.01, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      06:44    9:06   0.00s  0.00s -bash
root     pts/0    192.168.123.1    06:25    2.00s  0.01s  0.00s w
[root@centos7 ~]# who
root     tty1         2024-03-07 06:44
root     pts/0        2024-03-07 06:25 (192.168.123.1)
 
三、
t掉其它终端的用户
这个其实非常简单,一个命令的事情(此命令无回显,也就是输出):
pkill -kill -t tty1 
想要t掉另一个登录,自然就是下面的命令了(此命令无回显,也就是输出):
pkill -kill -t pts/0 
🆗,排查系统重启记录以及登录流水:
[root@centos7 ~]# last
root     pts/0        192.168.123.1    Thu Mar  7 07:12   still logged in   
reboot   system boot  3.10.0-1062.el7. Thu Mar  7 07:11 - 07:21  (00:09)    
root     tty1                          Thu Mar  7 06:44 - 07:09  (00:25)    
root     pts/0        192.168.123.1    Thu Mar  7 06:25 - down   (00:45)    
reboot   system boot  3.10.0-1062.el7. Thu Mar  7 06:24 - 07:10  (00:46)    
root     pts/0        192.168.123.1    Tue Mar  5 23:56 - crash (1+06:28)   
root     pts/0        192.168.123.1    Tue Mar  5 21:44 - 23:44  (02:00)    
root     pts/1        192.168.123.1    Sat Mar  2 19:09 - 08:37  (13:27)    
root     pts/0        192.168.123.1    Sat Mar  2 18:22 - 08:37  (14:14)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  2 18:19 - 07:10 (4+12:51)   
root     pts/1        192.168.123.1    Sat Mar  2 05:53 - crash  (12:26)    
root     pts/0        192.168.123.1    Sat Mar  2 05:19 - crash  (13:00)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  2 05:19 - 07:10 (5+01:51)   
root     pts/1        192.168.123.1    Fri Mar  1 05:42 - crash  (23:37)    
root     pts/0        192.168.123.1    Fri Mar  1 04:57 - crash (1+00:21)   
reboot   system boot  3.10.0-1062.el7. Fri Mar  1 04:57 - 07:10 (6+02:13)   
reboot   system boot  3.10.0-1062.el7. Wed Feb 28 05:11 - 05:11  (00:00)    
root     pts/0        192.168.123.1    Mon Jun 19 02:20 - crash (254+02:50) 
reboot   system boot  3.10.0-1062.el7. Mon Jun 19 02:20 - 05:11 (254+02:51) 
root     pts/0        192.168.123.1    Mon Jun 19 02:11 - crash  (00:08)    
reboot   system boot  3.10.0-1062.el7. Mon Jun 19 02:10 - 05:11 (254+03:01) 
root     pts/0        192.168.123.1    Sun Jun 18 17:55 - crash  (08:14)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:51 - 05:11 (254+11:20) 
root     tty1                          Sun Jun 18 17:50 - 17:51  (00:00)    
root     pts/0        192.168.123.1    Sun Jun 18 17:50 - crash  (00:01)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:43 - 05:11 (254+11:28) 
root     tty1                          Sun Jun 18 17:21 - 17:21  (00:00)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:19 - 17:21  (00:01)    
root     tty1                          Sun Jun 18 16:41 - 09:19  (-7:-21)   
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 16:10 - 17:21  (01:10)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 08:49 - 17:21  (08:32)    
wtmp begins Sun Jun 18 08:49:26 2023
[root@centos7 ~]# date
Thu Mar  7 07:21:27 CST 2024
 
可以看到,最后一次重启时间是7点11重启的,也就是第二行的倒数第三列
🆗,本文仅仅做为一个简单的记录,很多东西不写记不住,感觉稍微有点意思








![LeetCode 刷题 [C++] 第98题.验证二叉搜索树](https://img-blog.csdnimg.cn/direct/0969958fe1194ce59312733623e4c43f.png)










