**pts** 和 **tty** 和 **:0** 有什么区别?

sho*_*key 10 tty who pty

请帮我区分pts和tty生成的gui模式。

启动到 multi-user.target

我这样做了:

  1. sudo systemctl set-default multi-user.target
  2. 重启
  3. 使用普通用户 debian8 登录
  4. ctrlaltf2 并使用普通用户 debian8 登录。
  5. 运行startx切换到gui
  6. 运行ttywho,它说:
    $ tty
    /dev/pts/0
    $谁
    debian8 tty1 2017-01-09 20:22
    debian8 tty2 2017-01-09 20:23

为什么who不是 this的输出呢?

WHO
debian8 tty1 2017-01-09 20:22
debian8 :0 2​​017-01-09 20:23

我已经运行startx进入gui模式,并ttypts/0。那么,为什么who输出tty2:0

Kusalananda 解释后我的困惑

在此处输入图片说明

tty运行时,我们得到的/dev/pts/0。但是看看上面的。w在行输出的 TTY 列中startxtty2. 为什么6不是:0

/dev/pts/0和 和有tty什么区别?

tty2当我以 X 开头时的输出xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc :0 vt2 -auth /tmp/serverauth.451rqHm1NC- 是不是 pts?它输出

$ tty
/dev/pts/0

这说明这里的 tty 是 pts,我想。

启动到 graphical.target

我这样做了:

  1. sudo systemctl set-default graphical.target
  2. 重启
  3. 使用普通用户 debian8 登录
  4. 运行tty, 屈服
    $ tty
    /dev/pts/0
  5. ctrlaltf2 并使用普通用户 debian8 登录。
  6. 运行tty, 屈服
    $ tty
    /dev/pts/1
  7. w

在此处输入图片说明

有两个gui。它们可以在ctrlaltf1和之间切换ctrlaltf2

运行命令tty,两个终端都说/dev/pts/0/dev/pts/1。但是看看w上面的输出。为什么终端栏会/usr/bin/lxsession -s LXDE -e LXDE:0?为什么xinit /etc/X11/xinit/xinitrc -- /etc/X11/xinit/xserverrc :1 vt2 -auth /tmp/serverauth.k7JPJJEAHJ要说终端栏tty2

ptstty:0 有什么区别?

Kus*_*nda 8

who实用程序默认显示与登录相关的信息。如果您登录了tty2,那么who会这样说。

使用该w命令显示有关当前登录到机器的用户以及他们在什么终端上做什么的信息。

更新:“ ‘终端’、‘外壳’、‘tty’和‘控制台’之间的确切区别是什么? ”描述了 TTY 和 PTY 之间的一些区别。:0是您连接到的特定主机显示器


jll*_*gre 6

是什么区别pts,并tty:0

  • pts=“ p seudo端子小号澡”:登录设备通过网络或控制台连接时(例如,SSH)。

  • tty=“ELE TY PE”:串行或控制台连接(文字模式)

  • :0 = "local:display # 0 ": X11 服务器,用于图形登录(例如 gdm)


sho*_*key 4

按照以图形化目标方式启动的方式进行操作。

ps -el |grep -v ?
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   683     1  0  80   0 -  4867 -      tty1     00:00:00 agetty
4 S     0   901   686  1  80   0 - 63109 -      tty7     00:00:10 Xorg
0 S  1000  2390  2388  0  80   0 -  7368 -      pts/0    00:00:00 bash
0 R  1000  2465  2390  0  80   0 -  3935 -      pts/0    00:00:00 ps
0 S  1000  2466  2390  0  80   0 -  4446 -      pts/0    00:00:00 grep
Run Code Online (Sandbox Code Playgroud)

1.tty7和tty1-tty6
它是一种虚拟终端,例如tty1-tty6。
证明1:在输出信息中 ps -el |grep -v ? ,在第三行---- tty7
证明2:man chvt
chvt - 更改前台虚拟终端。您可以在 tty1-tty7 之间切换sudo chvt n(n 的范围从 1 到 7)。 tty7 属于 tty 家族,是一种虚拟终端,处于 gui 模式,与处于文本模式的 tty1-tty6 不同。

2.pts
pts 表示 pesudo tty 从机,与伪终端主机一起使用。从网页获取telnet会话的pts结构

Telnet 会话的描述

图 4:telnet 会话的描述。

在此输入图像描述

在我的示例中,当 bash (ps,grep) 在 Xorg 上运行时,pts 结构如下图所示(由《Description of a telnet session》的作者 R.Koula 启发)

在此输入图像描述

bash(ps,grep) 的控制终端是 pts/0。

3.:0

w
 09:36:09 up 24 min,  1 user,  load average: 0.11, 0.25, 0.29
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
debian8  :0       :0               09:12   ?xdm?   5:13   0.13s /usr/bin/lxsess

ps -lC lxsession
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S  1000  1585  1574  0  80   0 - 91715 -      ?        00:00:00 lxsession
Run Code Online (Sandbox Code Playgroud)

ps -lC lxsession可以明显看出,lxsession 是一个没有控制终端的守护进程,因此我们无法生成诸如 ttynumber(从 1 到 7)或 pts/number 之类的信息。 w yield :0 ,意思是local:display #0,描述硬件方面的事实,Xorg 运行在local:display #0