区分/dev/tty、/dev/console、/dev/pts、/dev/ttyn

本文介绍了 Linux 下控制台的工作原理,包括本地控制台 (/dev/ttyN) 和远程控制台 (/dev/pts) 的区别,以及如何通过不同设备文件实现终端切换和远程登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常我们在linux下看到的控制台(console)是由几个设备完成的。分别是/dev/ttyN(其中tty0就是/dev /console,tty1,tty2就是不同的虚拟终端(virtual console)).通常使用热键alt+Fn来在这些虚拟终端之间进行切换。所有的这些tty设备都是由linux/drivers/char /console.c和vt.c对应。

/dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录。由于可能有好几千个用户登陆所以/dev/pts其实是动态生成的不象其他设备文件是构建系统时就已经产生的硬盘节点(如果未使用devfs)
不知道是不是动态建立的?但是在制作文件系统的时候,需要自己手工建立/dev/pts设备目录。
mkdir -p /dev/pts
mkdir -p /dev/shm
/bin/mount -n -t devpts none /dev/pts -o mode=0622
/bin/mount -n -t tmpfs tmpfs /dev/shm
代码来自于mini2440的rootfs中。

第一个用户登陆,console的设备文件为/dev/pts/0第二个为/dev/pts/1以此类推。这里的0、1、2、3不是具体的标准输入或输出而是整个控制台。你可尝试 echo "aaaaaa" > /dev/pts0、1、2……。

/dev/tty指的是当前所处的终端,输出到此的内容只会显示在当前工作的终端显示器上

/dev/console就是tty0

/dev/pts是远程登陆(telnet,ssh等)后创建的控制台设备文件所在的目录
通常板子里的console=ttyAMA0,115200都是用串口端口终端的,所以我们操作板子只是操作串口终端,而不是tty0,例子:console=ttyAMA0, 9600n8,其中波特率、校验位、位数,格式为BBBBPN,其中BBBB表示波特率,P表示校验
(n/o/e),N表示位数,默认options是9600n8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值