扫码阅读
手机扫码阅读

当你打开终端并输入命令时会发生什么?(下)

115 2024-07-19

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:当你打开终端并输入命令时会发生什么?(下)
文章来源:
咸鱼运维杂谈
扫码关注公众号

终端命令执行过程概述

本文回顾了文章《当你打开终端并输入命令时会发生什么?(上)》中关于终端命令执行的过程。终端设备的起源、演变以及现代计算机中终端模拟器的使用被简要介绍。

终端的起源和演变

终端设备起源于二战时期的电传打字机,并随着显示技术的发展,演变为带有显示屏的设备。现代个人电脑普及后,图形用户界面(GUI)取代了传统终端,终端模拟器如Linux中的Xterm和Windows中的控制台成为与操作系统交互的主要方式。

终端中的命令执行

在Linux中,打开终端通常会启动shell进程,用户输入的命令被传递给shell进行解析和执行。命令执行的过程涉及将用户输入解析为系统能理解的指令,执行这些指令,并将结果返回给终端显示。

字符输入与处理

用户在终端中输入的字符,如backspace键,被转换成字符编码并通过终端写入PTY leader。TTY driver从PTY leader读取字符并存储到line discipline,后者负责解释字符并执行相应的编辑操作。例如,backspace键会被解释为ERASE字符,从而删除最后一个字符。

特殊字符与命令输入的处理

特殊字符,如CTRL+C,由line discipline解释并可发送信号如SIGINT以中断进程。普通字符输入如ls命令会被line discipline处理并返回到PTY leader,之后终端程序读取并显示它们。

命令解析与执行

当用户完成命令输入并按下回车键后,line discipline将其解释为换行字符并将命令传递给PTY follower。Shell进程接收并开始解析命令,包括语法分析、查找可执行文件或内置命令。解析过程中,会递归查找命令别名、函数、环境变量、内嵌命令和可执行文件。

命令执行结果的返回

命令执行完毕后,shell将结果写入PTY follower,然后传到line discipline,最终由终端读取并显示到屏幕上。

参考文章:What happens when you open a terminal and type `ls`?

想要了解更多内容?

查看原文:当你打开终端并输入命令时会发生什么?(下)
文章来源:
咸鱼运维杂谈
扫码关注公众号