Shell / Pty / TTY

Shell:Shell 是操作系统的一个接口,允许用户与操作系统进行交互。它可以接收用户的命令,然后调用操作系统的服务来执行这些命令。常见的 shell 有 bash,zsh,csh,ksh 等。

**Pty (Pseudo Terminal)**:Pty 是 Unix 和 Unix-like 系统中的一个软件设备,模仿了传统硬件终端的功能。Pty 有两个端点,一个是 master,一个是 slave。master 端通常由一个进程(如终端模拟器)控制,而 slave 端则被另一个进程(如 shell)使用,这样就可以模拟用户在真实终端上的操作。

**TTY (Teletypewriter)**:TTY 是 Unix 和 Unix-like 系统中的一个概念,用来表示任何一个可以进行用户输入和输出的设备。Pty 就是 TTY 的一种。

Shell,Pty,和 TTY 之间的关系可以这样描述:用户在 TTY (例如一个 Pty) 上输入命令,然后这些命令被发送到 Shell 进程,Shell 进程解析这些命令,然后调用操作系统的服务来执行它们。执行结果再通过 TTY 发送回用户。