linux shell指令执行不要回显,慢慢欣赏linux 命令行终端输入输出回显之谜

本文揭示了如何通过telnet和串口连接Linux嵌入设备,理解shell进程如何操作pts和console设备实现命令行交互。重点讲解了进程管理、设备文件系统和输入输出过程的原理。

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

linux嵌入设备命令行界面,无论是通过串口还是telnet链接IP地址,都可以通过键盘键入Linux各种命令,各种命令会显示在终端并可以执行。这是怎么做到的呢。

先说telnet IP地址,登陆成功之后进入shell界面,查看messages日志,发现提示打开新的pts设备

然后 ls -l /proc/*/fd > test.txt 搜索pts发现有如下搜索结果

/proc/11614/fd

0 -> /dev/pts/0

1 -> /dev/pts/0

2 -> /dev/pts/0

/proc/self/fd

0 -> /dev/pts/0

1 -> /dev/pts/0

2 -> /dev/pts/0

再通过ps查看11614正是当前的shell

ps | grep 11614

11614 root 2536 S  -sh

self也是11614进程。

我们再看看telnet

在串口下敲tty回车显示console

同上在test.txt 搜索console发现有如下搜索结果

/proc/1118/fd

0 -> /dev/console

1 -> /dev/console

2 -> /dev/console

/proc/self/fd

0 -> /dev/console

1 -> /dev/console

2 -> /dev/console

通过ps查看1118正是当前的shell

ps | grep 1118

1118 root 2536 S  -/bin/sh

self在console下也就是1118进程。

综上所述,无论通过telnet链接设备的IP地址还是直接通过串口链接设备,成功之后,生成新的进程也就是shell进程,该进程打开(tty_open)tty设备/dev/pts/X (X代表数字)或者console设备,然后堵塞读(tty_read)该设备。

在shell下输入命令相当于tty设备的读也就是输入操作,当串口有输入,中断最先感知,保存缓冲字符后唤醒读进程,读进程将字符通过线路规程解析后,传给shell解析程序,shell回显命令相当于tty设备的输出(tty_write)操作,写操作之后执行shell命令并且将结果也输出到tty设备。

linux的进程文件句柄查找

https://blog..net/shipinsky/article/details/78536831

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值