小编Pie*_*ean的帖子

每个伪终端 (PTY) 组件(软件、主端、从端)的职责是什么?

我试图弄清楚tty是如何工作的1(每个元素的工作流程和职责)。我已经阅读了几篇关于它的有趣文章,但仍然有一些模糊的地方。

这是我到目前为止的理解:

  • 仿真终端/dev/ptmx对伪终端的主控部分进行不同的系统调用。
  • 伪终端的master部分分配了一个文件/dev/pts/[0-N],对应过时的串口,并在其上“附加”了一个slave伪终端。
  • 从伪终端保存会话ID、前台作业、屏幕大小等信息。

以下是我的问题:

  1. ptmx除了分配从属部分之外还有什么用途吗?它是否提供某种“智能”,或者模拟终端(例如 xterm)具有像终端一样运行的所有智能?
  2. 为什么 xterm必须与 master 部分交互,因为它只转发 slave 部分的 stdout 和 stdin?为什么不能 直接读写pts文件?
  3. 会话 ID 是否总是附加到一个 pts 文件,反之亦然?我可以输入 ps 命令并找到2 个 sessionId 的相同 /dev/pts/X吗?
  4. pts商店还有什么其他信息?Xterm 是自己更新所有字段,还是在其上ptm添加一些“智能”?

1. 我的理解基于Linus Akesson 揭秘的TTY和Andries Brouwer的Linux Kernel帖子,以及这些网站上的其他几个问题

kernel terminal-emulator terminal tty pty

77
推荐指数
3
解决办法
2万
查看次数

何时以及为何应使用 apt-get update?

一般问题:

有人可以解释该命令的apt-get update作用以及我何时真正应该使用它吗?


评论

请给出详细的答复。不只是手册页的副本,除非您的版本非常详细(我在下面的手册页中放了一个定义)。

apt-get update:用于从其来源重新同步包索引文件。可用包的索引从 /etc/apt/sources.list(5) 中指定的位置获取。应该始终在升级或 dist-upgrade 之前执行更新。


子问题:

  • 包索引存储在哪里?在数据库上?在文件上?
  • 如果我apt-get install不更新缓存会发生什么?远程包是否有可能不再存在并且链接会断开?
  • 是否有一些关于 deb 存储库的商定政策?例如,存储库是否应该只包含包的最后一个版本,或者相反,它应该包含可用于特定发行版的所有版本?

语境

我问我的问题是因为我正在研究Docker 框架。它的一个功能是Dockerfile,它允许您通过从该文件执行一些指令来构建一种操作系统映像。此图像的一个属性是它应该始终相同,无论上下文是什么(构建时间等)。

恐怕如果我apt-get update在不同的时间启动命令,结果会有所不同,因此我的图像会有所不同。

apt docker

16
推荐指数
1
解决办法
8407
查看次数

递归grep仅匹配特定行号

如何找到在特定行号上包含特定模式的文件?假设我有一个目录,其中包含一堆包含 3 行的文本文件,例如:

Title A
Category X
Description Y
Run Code Online (Sandbox Code Playgroud)

如何 grep/过滤每个在线Category X文件2?如何找到包含Title Aas 行的文件1?

我查看了 grep 手册页、ripgrep 和替代方案,但不确定是否可以将模式搜索限制为特定行号。

grep find awk ripgrep

3
推荐指数
3
解决办法
1585
查看次数

标签 统计

apt ×1

awk ×1

docker ×1

find ×1

grep ×1

kernel ×1

pty ×1

ripgrep ×1

terminal ×1

terminal-emulator ×1

tty ×1