相关疑难解决方法(0)

“终端”、“外壳”、“tty”和“控制台”之间的确切区别是什么?

我认为这些术语在松散使用时几乎指的是同一件事:

  • 终端
  • 贝壳
  • 打字机
  • 安慰

这些术语中的每一个究竟指的是什么?

shell terminal tty terminology console

1433
推荐指数
10
解决办法
42万
查看次数

为什么终端要逐行输入?

如果我使用:

strace echo 'a
b
c' > file
Run Code Online (Sandbox Code Playgroud)

底线是:

write(1, "a\nb\nc\nd\n", 8)             = 8
Run Code Online (Sandbox Code Playgroud)

但在

strace echo 'a
b
c
d' > /dev/pts/0
Run Code Online (Sandbox Code Playgroud)

这些线路是:

write(1, "a\n", 2)                      = 2
write(1, "b\n", 2)                      = 2
write(1, "c\n", 2)                      = 2
write(1, "d\n", 2)                      = 2
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,为什么它是逐行写的,而在第一种情况下它是一起写的。可能是因为终端是字符设备,但我得到了字符设备的定义:

字符 (char) 设备是一种可以作为字节流(如文件)访问的设备。 char 设备和常规文件之间唯一相关的区别是您始终可以在常规文件中来回移动,而大多数字符设备只是数据通道,只能按顺序访问。

编辑:Shell 是 bash。

shell devices write

2
推荐指数
1
解决办法
126
查看次数

标签 统计

shell ×2

console ×1

devices ×1

terminal ×1

terminology ×1

tty ×1

write ×1