松岗网站的建设,网站搭建申请,建设部网站中煤三建,专业的南昌网站建设1 tty的由来
在 1830 年代和 1840 年代#xff0c;开发了称为电传打字机#xff08;teletypewriters#xff09;的机器#xff0c;这些机器可以将发件人在键盘上输入的消息“沿着线路”发送在接收端并打印在纸上。
电传打字机的名称由teletypewriters#xff0c; 缩短为…1 tty的由来
在 1830 年代和 1840 年代开发了称为电传打字机teletypewriters的机器这些机器可以将发件人在键盘上输入的消息“沿着线路”发送在接收端并打印在纸上。
电传打字机的名称由teletypewriters 缩短为teletypes并最终缩短为 TTY。 电传打字机teletypewriters → teletypes → tty 在电子计算机问世后电传打字机成为那个时代与大型小型计算机和大型计算机交互的默认方式并在软件中模拟演变为伪电传打字机或虚拟电传打字机 (PTSpseudo terminal device。
在 Linux 和其他类 Unix 操作系统如 macOS的桌面环境中终端窗口和应用程序如 x-term 和 Konsole都是虚拟电传打字机的示例。
2 linux中的tty
在Linux中我们的终端窗口是电传打字机 (TTY) 的软件仿真作为伪电传打字机 (PTS) 连接到伪电传打字机多路复用器。
Linux的设备一般位于/dev目录下我们可以使用命令
ls /dev/tty*
来查看系统中的tty设备。如 csdn edu zsh $ ls /dev/tty* /dev/tty csdn edu zsh $ bash [csdn ~]$ ls /dev/tty* /dev/tty 在csdn提供的Linux测试环境中只有1个tty设备。
在实际的Linux系统中可能存在多个tty设备如 user host bash $ls /dev/tty* /dev/tty /dev/tty23 /dev/tty39 /dev/tty54 /dev/ttyAMA3 /dev/ttyS0 /dev/tty0 /dev/tty24 /dev/tty4 /dev/tty55 /dev/ttyp0 /dev/ttyS1 /dev/tty1 /dev/tty25 /dev/tty40 /dev/tty56 /dev/ttyp1 /dev/ttyS10 /dev/tty10 /dev/tty26 /dev/tty41 /dev/tty57 /dev/ttyp2 /dev/ttyS11 /dev/tty11 /dev/tty27 /dev/tty42 /dev/tty58 /dev/ttyp3 /dev/ttyS12 /dev/tty12 /dev/tty28 /dev/tty43 /dev/tty59 /dev/ttyp4 /dev/ttyS13 /dev/tty13 /dev/tty29 /dev/tty44 /dev/tty6 /dev/ttyp5 /dev/ttyS14 /dev/tty14 /dev/tty3 /dev/tty45 /dev/tty60 /dev/ttyp6 /dev/ttyS15 /dev/tty15 /dev/tty30 /dev/tty46 /dev/tty61 /dev/ttyp7 /dev/ttyS2 /dev/tty16 /dev/tty31 /dev/tty47 /dev/tty62 /dev/ttyp8 /dev/ttyS3 /dev/tty17 /dev/tty32 /dev/tty48 /dev/tty63 /dev/ttyp9 /dev/ttyS4 /dev/tty18 /dev/tty33 /dev/tty49 /dev/tty7 /dev/ttypa /dev/ttyS5 /dev/tty19 /dev/tty34 /dev/tty5 /dev/tty8 /dev/ttypb /dev/ttyS6 /dev/tty2 /dev/tty35 /dev/tty50 /dev/tty9 /dev/ttypc /dev/ttyS7 /dev/tty20 /dev/tty36 /dev/tty51 /dev/ttyAMA0 /dev/ttypd /dev/ttyS8 /dev/tty21 /dev/tty37 /dev/tty52 /dev/ttyAMA1 /dev/ttype /dev/ttyS9 /dev/tty22 /dev/tty38 /dev/tty53 /dev/ttyAMA2 /dev/ttypf user host bash $ 2.1 tty命令的功能、格式和说明
tty 命令将打印您的伪电传从属设备用于连接到主设备的设备文件的名称。实际上这就是您的终端窗口的编号。输入命令 tty --help可以查看tty命令的帮助信息其中包括了命令格式和说明 user edu bash $ tty --help Usage: tty [OPTION]... Print the file name of the terminal connected to standard input. -s, --silent, --quiet print nothing, only return an exit status --help display this help and exit --version output version information and exit GNU coreutils online help: http://www.gnu.org/software/coreutils/ Report tty translation bugs to http://translationproject.org/team/ For complete documentation, run: info coreutils tty invocation 2.1.1 命令格式 tty [-s][--help][--version] 2.1.2 参数说明 -s或--silent或--quiet 不显示任何信息只回传状态代码。--help 在线帮助。--version 显示版本信息。 下面我们结合实例来看看tty命令。
2.2 tty命令的实例
2.2.1 tty不带参数显示当前终端 csdn edu bash $ tty /dev/pts/1 在终端输入tty命令可以看到我们我们已连接到位于 /dev/pts/1 的设备文件。
2.2.2 tty -s
-s静默选项让 tty 不生成任何输出。但它执行完成后仍会产生一个退出值。
在bash中 csdn edu bash $ tty -s; if [ $? ]; then echo $? :is in a tty; else echo $? :is not in a tty; fi 0 :is in a tty 在zsh中 csdn edu zsh $ tty -s; if [ $? ]; then; echo $? :is in a tty; else echo $? :is not in a tty; fi 0 :is in a tty 可以看到tty -s顺利执行后退出值为0。
其实tty命令的退出值还有可能是 0如果标准输入来自 模拟的或物理的TTY 设备。1如果标准输入不是来自 TTY 设备。2语法错误使用了不正确的命令行参数。3发生写入错误。 所以我们可以对上面的实例使用 case in语句 做进一步的修改 csdn edu zsh $ tty -s; case $? in; 0) echo 0-ok;; 1) echo 1-no tty;; 2) echo 2-bad cmd;; 3) echo 3-write error;; esac 0-ok