小编Inc*_*rsi的帖子

每个伪终端 (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 揭秘TTYAndries BrouwerLinux Kernel帖子,以及这些网站上的其他几个问题

kernel terminal-emulator terminal tty pty

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

使用虚拟控制台时如何更改屏幕字体大小?

使用LDXE和Ubuntu,我可以通过登录到虚拟控制台Ctrl+ Alt+ F1

文字太小了。如何更改屏幕分辨率以获得更大的字体?

linux fonts console resolution

23
推荐指数
2
解决办法
5万
查看次数

这是 bash 中的错误吗?如果从管道调用,`return` 不会退出函数

我最近在使用 bash 时遇到了一些奇怪的问题。在尝试简化我的脚本时,我想出了一小段代码:

$ o(){ echo | while read -r; do return 0; done; echo $?;}; o
0
$ o(){ echo | while read -r; do return 1; done; echo $?;}; o
1
Run Code Online (Sandbox Code Playgroud)

return应该退出函数而不打印$?,不是吗?好吧,然后我检查了我是否可以单独从管道返回:

$ echo | while read -r; do return 1; done
bash: return: can only `return' from a function or sourced script
Run Code Online (Sandbox Code Playgroud)

没有while循环也会发生同样的情况:

$ foo(){ : | return 1; echo "This should not be printed.";}
$ foo
This should not be printed. …
Run Code Online (Sandbox Code Playgroud)

bash pipe shell-script subshell

17
推荐指数
3
解决办法
1万
查看次数

将带有八进制转义符的 UTF-8 代码的 ASCII 文件转换为 UTF-8

  1. 我有一个文本文件,它本身就是一个 ASCII 文件,但包含表示 utf-8 代码的八进制转义序列:

    \350\207\252\345\212\250\346\216
    
    Run Code Online (Sandbox Code Playgroud)

    是否有一些程序或命令可以将此类 ASCII 文件转换为实际以 utf-8 编码的文本文件?

  2. 顺便说一下,本站是“在线 ASCII(Unicode Escaped) 到 Unicode(UTF-8) 转换工具”,本站是“在线 Unicode(UTF-8) 到 ASCII(Unicode Escaped) 转换工具”。他们是否在我的问题中进行了转换?如果不是,他们进行了哪些类型的转换?

character-encoding text-processing

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

以不同于文件系统中使用的编码的字符编码解压文件名

我偶尔会得到 tarball,其中文件名以 ISO-8859-1 或其他一些 pre-Unicode 方案编码。我的系统使用 UTF-8,所以当我使用常用​​选项 ( tar xvf foo.tar)解压这些档案时,我最终会得到一个充满 mojibake 文件名的目录。

到目前为止,我一直在使用在提取convmv文件名后将文件名转换为 UTF-8 。这有点不方便,因为我要么需要convmv在每个受影响的文件上调用,要么将文件解压缩到一个新目录中,convmv在整个目录上运行,然后将文件移动到我最初想要它们的位置。如果没有将此功能编码到 shell 脚本中,是否有某种方法可以将存档文件名即时转换为 UTF-8,因为它们正在解压缩?

tar character-encoding filenames unicode

8
推荐指数
1
解决办法
4723
查看次数

我可以在 Linux 控制台中重新映射 SHIFT+CAPS LOCK 吗?

我最近买了一台没有反斜杠/管道键的旧上网本。我已经成功地使用loadkeys.
我想以类似的方式将SHIFT+映射CAPS LOCK到管道键,特别是不使用任何类似的东西,xkb因为我希望所有这些都适用于我的 VT。

是否可以使用loadkeys或其他工具来做到这一点?

linux keyboard-shortcuts console keyboard-layout netbook

7
推荐指数
1
解决办法
2193
查看次数

复制某些文件时文本文件繁忙

当我想复制一些文件时出现此错误

我的命令:

cp -rf  /sasech/xgedff/pur/liv/v15h30050-DLIV0177521/dmesa/bin/* /applis/rgedff/pur/bin
Run Code Online (Sandbox Code Playgroud)

结果:

cp: /applis/rgedff/pur/bin/../bin/lib/libtiny.a: Text file busy
...
Run Code Online (Sandbox Code Playgroud)

如何复制我的文件?

linux cp shared-library

7
推荐指数
1
解决办法
3万
查看次数

在 Linux 控制台中使用 Curses

我正在尝试在 Fedora 12 上使用 Curses 将状态信息输出到 VT(按Ctrl+ Alt+可以访问的终端之一Fx)。

当我的VT(一开始我的应用程序$TERM=linux)的箱线出来的人物,如jqk和一些其他字符。然而,当我在终端窗口 ( $TERM=xterm) 中启动它时,一切都按原样显示。

有人可以向我解释我需要做什么才能使 VT 输出显示为 xterm?是否有我可以从我的程序中设置的终端设置以使输出正确?

ncurses console text-user-interface

6
推荐指数
1
解决办法
4406
查看次数

Linux 控制台中的 256 色

我在我的 .bashrc

export TERM=xterm-256color
Run Code Online (Sandbox Code Playgroud)

但这项事业闪烁所有彩色文本(LS --color,在vim等)在Linux控制台(Ctrl+ Alt+ F1)。

那么有没有可能识别出我在哪个终端(Linux 控制台或伪 tty),以便我可以导出具有有效值的 TERM 变量?

[编辑]

我只找到了替代解决方案:

对于 vim 用户(在 .vimrc 中)

set t_Co=256
Run Code Online (Sandbox Code Playgroud)

或用于 .Xdefaults 中的 xterm(在 xrdb -load .Xdefaults 之后)

XTerm*termName:         xterm-256color
Run Code Online (Sandbox Code Playgroud)

或用于屏幕 (.screenrc)

term screen-256color
Run Code Online (Sandbox Code Playgroud)

linux colors tty console

5
推荐指数
2
解决办法
6093
查看次数

如何在乱码文件中用Unicode单字符搜索替换双字符?

我有一个很长的法语文本文件需要清理。非 ASCII 字符已被奇数字符组合取代。例如,以下内容:

passer de très bonnes fêtes de fin d'année。

应该变成:(作为 Unicode 文本)

passer de très bonnes fêtes de fin d'année。

我试过 sed,但没有成功。一位朋友推荐尝试 Perl。我可以很容易地用奇怪的字符序列和正确的替换字符构建一个表格。理想情况下,我希望这张表是一个独立的文件,以备将来使用。此类转换的推荐方法是什么?

character-encoding text-processing unicode

5
推荐指数
1
解决办法
1541
查看次数

如何将包含一个“0”字符的所有行更改为其他字符?

我有一个类似于以下行的文件:

0
0.1
0.0002
0
0.30
Run Code Online (Sandbox Code Playgroud)

我想用单行替换0其他类似的行0.0001。对于后面有小数和数字的行,我不想改变它们。

我已经尝试了 的以下变体sed,但它要么什么也不做,要么改变了所有的零,甚至是小数点后的零:

sed 's/0/x/g' file
sed 's/^0/x/g' file
sed 's/0^/x/g' file
sed 's/^0^/x/g' file
sed 's/"0"/x/g' file
sed 's/[0]/x/g' file
Run Code Online (Sandbox Code Playgroud)

似乎sed无法处理单个0字符。另外,replace我的系统上没有该命令。我还可以做些什么?

sed

4
推荐指数
1
解决办法
1617
查看次数

你如何设置“T”位?

我的 TeX Live 安装有一个名为的文件.texlive2015,最初设置为drwx------T. 我改变了它,我想把它改回来,但我无法找回“T”。我如何取回它?

shell permissions

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