web-dev-qa-db-ja.com

** pts **と** tty **と**:0 **の違いは何ですか?

Ttyから生成されたguiモードからptsを区別するのを手伝ってください。

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 
     $ who 
     debian8 tty1 2017-01-09 20:22 
     debian8 tty2 2017-01-09 20:23

代わりにwhoの出力がこれではないのはなぜですか?

who 
 debian8 tty1 2017-01-09 20:22 
 debian8:0 2017-01-09 20:23

startxを実行してGUIモードに入り、ttypts/0と言いました。では、なぜwhotty2ではなく:0を出力するのでしょうか。

クサラナンダの説明の後の私の混乱

enter image description here

ttyを実行すると、/dev/pts/0が取得されます。しかし、上記を見てください。 wの出力のTTY列では、startxの行にtty2と表示されます。 Why6が:0ではないのですか?

/dev/pts/0ttyの違いは何ですか?

Xをtty2で開始したときの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を実行して、yield
    $ tty 
    /dev/pts/0
  5. ctrlaltf2 そして、通常のユーザーdebian8でもログインします。
  6. ttyを実行して、yield
    $ tty 
    /dev/pts/1
  7. wを実行します

enter image description here

2つの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の違いは何ですか?

9

graphical.targetで起動する方法で実行します。

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

1.tty7およびtty1-tty6
これは、tty1-tty6などの仮想端末の一種です。
proof1:出力情報ps -el | grep -v?、3行目----tty7
Proof2:man chvt
chvt-フォアグラウンド仮想端末を変更します。 tty1-tty7はSudo chvt nを使用して切り替えることができます(nの範囲は1から7まで)。テキストモードで。

2.pts
ptsは、疑似端末マスターで使用されるpesudo ttyスレーブを意味します。 WebページからTelnetセッションのPTS構造を取得するには

Telnetセッションの説明

図4:Telnetセッションの説明。

enter image description here

私の例では、Xorgでbash(ps、grep)を実行すると、pts構造は次のグラフのようになります(R.Koulaによって啓発され、Telnetセッションの説明の著者)

enter image description here

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

ps -lC lxsessionから、lxsessionが制御端末を持たないデーモンであることは明らかなので、wは、ttynumber(1から7まで)またはpts/numberなどの情報を生成できません。 w収量:0、つまりlocal:display#0、ハードウェア側の事実、local:display#0で実行されているXorg.

4

whoユーティリティは、デフォルトでログインに関連する情報を表示します。ログインした場合、tty2の場合、whoと表示されます。

wコマンドを使用して、現在マシンにログインしているユーザーに関する情報と、ユーザーが何をしているのかを表示します。

更新: " 「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか? は、TTYとPTYの違いを説明しています。 :0 is 特定のホストディスプレイ 接続している。

8
Kusalananda

ptstty:0の違いは何ですか?

  • pts = "p seudo t erminal s lave":ネットワークまたはコンソール(sshなど)経由で接続する場合のログインデバイス)。

  • tty = "t ele ty pe":シリアルまたはコンソール接続(テキストモード)

  • :0 = "local:display#":X11サーバー、グラフィカルログインに使用(gdmなど)

6
jlliagre