问题标签 [stty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1018 浏览

macos - STTY 可能已被删除?

我正在安装 ruby​​/rails/gem 和 homebrew 并感到沮丧。我想我删除了 stty 文件夹。无论如何,我能做什么?这似乎从未在互联网上发生过。

运行 stty 返回命令未找到...

0 投票
2 回答
1313 浏览

macos - mac 命令键在终端中的表示是什么?

就像控制键在终端中用'^'表示,命令键(mac)的等价物是什么?

我正在尝试使用 stty 重新映射我的 bash 快捷方式

例如

stty eof ^D

但不是控制,我想使用命令键。

编辑:

好的,所以我试图解决的问题是我想交换命令和控制键,因为我在 osx 和 linux 上工作,不同的组合键给我带来了很多痛苦。

所以我使用 osx 首选项交换了修饰键。但是现在所有 bash 快捷键(如 Ctrl+C 等)都等同于使用键序列 'cmd+c' - 这是不可接受的。

值得庆幸的是,iTerm2 也支持修改键的重新映射,所以对于 iTerm2,我再次反转了它们,这意味着 iTerm2 将命令识别为命令,将控制识别为控制。

所以问题暂时解决了。

0 投票
1 回答
3244 浏览

bash - stty 命令在 bash 点文件中的位置?.bash_profile?

我正在尝试确保在我的所有终端/shell/tmux 中关闭流控制、xon-xoff、Control-S Control-Q 功能(以便我可以可靠地将 Control-S 用于其他用途)它应该在 X、urxvt、tmux、控制台、ssh 等任何地方工作。

配置应该放在哪个点文件中?应该是什么?我最好的猜测:

我在我的机器上找到的示例使用 .bash_profile,但这似乎并没有抓住我的非登录 shell。另一方面,在 .bashrc 中放置 stty 调用假定有一个终端,我应该只测试一个终端( if [ -to ] )还是检查 $PS1?

也许有比“stty”更好的方式来配置我的终端?也许我应该让所有 bash 实例登录 shell?

stty 是我想避免的那些神秘的谜团之一。

0 投票
0 回答
222 浏览

sigint - 覆盖 "^c" 或 "ctrl-c" 是 shell 解释器的中断信号

我想覆盖 ctrl-c 作为我所有 shell 的信号中断字符,并用其他东西替换它。我查看了 stty 和 xmodmap,但还没有找到任何我理解的东西。

如果有人有一些想法,我将不胜感激。

0 投票
0 回答
1300 浏览

linux - 使用串口与 stty 不工作,minicom ok

我正在尝试写入串行端口并通过 bash scrpts(echo、printf 和 read)读取结果。就我可以锻炼而言,我已经正确设置了 stty,但我无法读回任何字符。

如果我将端口放在环回中,我可以使用 minicom 发送和接收字符。耶 :)

但是当我退出 minicom 并向设备回显一些字符时,串行端口闪烁 rx led 一次,并且读取不显示任何字符。进一步的回显命令不会导致 rx 导致闪烁,所以看来我只能发送一次。

任何想法可能发生的事情以及我如何使事情正常进行。

谢谢,布伦丹。

0 投票
1 回答
265 浏览

perl - 在 Windows 上使用 perl 读取密码

我们有一个 perl 脚本,在我们使用 stty 读取密码。由于 stty 在 Windows 上不可用,因此此脚本失败。我们做了一些搜索,发现 ReadKey 是一个替代方案。但是,我们默认情况下不提供此包裹。

有什么方法可以在不使用 stty 和 ReadKey 的情况下在 perl 中读取密码?

如果有人可以在这方面帮助我,那将是非常有帮助的。

0 投票
0 回答
229 浏览

ruby - Ruby:read_nonblock(???) 破坏“系统”命令

我有两个版本的方法,我都遇到了同样的问题。

版本 1

第 2 版

我对两者都有同样的问题。具体来说,它们修改了 Kernel#system 命令的行为。

举个例子:

很容易看到系统的行为发生了变化,并且在第二个版本中,输入输出不是从 tty 中提取的。

请注意,当您按下任何键时,这不会发生,只是一个被转换为转义序列的键,例如光标键。

那么这是如何修复的呢?

附言

有人建议我在第二个位置运行 system("strace -o logfile irb") 并检查读取语句。相反,我跟踪了两个 irbs 并进行了比较。除了最后一个之外,所有的读取语句都是相同的,而且它们都是如此。最后的阅读看起来不同:

聚苯乙烯

我在linux系统上做这个。

0 投票
1 回答
479 浏览

mmap - 如何在 EAGAIN 错误后重置标准输入?

这是我在大型 ruby​​ 脚本中遇到的错误。我设法将其归结为问题的本质。在讨论这个问题时,脚本是由某人在 OS/X 上运行而没有遇到同样的问题,所以与其说是 ruby​​ 问题,不如说是 linux 问题。

对于非 Ruby 主义者,需要提及的关于此代码的内容<<附加到数组[1]中。

反引号的行为与sh. 目前,我不知道 Ruby 是如何具体实现read_nonblock. 我正在研究它。如果问题仍未得到解答,将提及它。

稍后我会将C++源代码发布到“跟踪”函数中,但没有源代码很容易理解。读取命令行并写入预定文件。然后请求输入。从 STDIN 读取一些输入后,将其保存到同一个文件并退出。它本质上是一个调试功能,暂时替代了一些更复杂的功能。

问题

第三个系统调用行为不当,有点像从/dev/zero.

从 STDIN 读取的日志条目如下所示:

那么为什么第三条trace读内存映射IO呢?

分配内存的命令的条目是:

为什么mmap命令以fd-1 作为参数?[2]

附加评论。根据我到目前为止所描述的内容,我几乎必须得出结论,当 EAGAIN 错误发生时,某些东西没有正确清理,或者标准输入状态以某种方式混乱,现在标准输入被阻塞。然后这会被系统命令继承。因此标题问题:您如何重置标准输入,以便它的行为与最初的行为一样。

[1]是的,作为一名 C++ 程序员,我知道这很烦人。

[2]我对 Unix 内存映射 IO 不是很熟悉,我自己从来没有用它写过任何东西。我很久以前使用过的 Windows 内存映射 IO。

0 投票
2 回答
425 浏览

bash - 当从 bash 的绑定调用时,为什么脚本不接受标准输入上的输入?

我已经编写了许多 bash/bind 工具来简化我的命令行存在,并且最近想让其中一个工具具有交互性。如果我尝试在这些脚本之一中从标准输入读取,执行会在读取时锁定。我的示例是在 python 中,但是当调用的脚本是用 ruby​​ 编写时,我看到了完全相同的行为:

所以脚本有效。当我调用它时,我可以给它输入并打印我输入的内容。

bind按预期工作。绑定的击键调用命令。我一直在使用这些东西,但直到现在,我只调用了不需要读取标准输入的脚本。

让我们将 [Alt-H] 绑定到脚本:

现在我们配置为让脚本在被绑定击键调用时从标准输入读取。点击 [Alt-H] 启动脚本,但没有回显任何键入的内容。即使按下 [Crl-D] 也不会结束它。退出的唯一方法是点击 [Crl-C],杀死 readline 中的进程。(sys.stdin.read() 遭受同样的命运。)

正如我在顶部提到的,我看到了与 ruby​​ 相同的问题,所以我知道这与我使用的语言无关。(我省略了脚本。)

我已经查看了 Bash 参考手册关于 bind 的条目,它没有说明输入限制。有什么想法吗?

编辑:

如果我在进程卡住时 cat /proc/[PID]/fd/0 ,我会看到正在显示脚本的输入。(奇怪的是,相当数量的字符 - 似乎是随机的 - 没有出现在这里。这个症状只有在我输入了几百字节后才会出现。)

找到了这个,描述了终端如何以及何时在熟模式和生模式之间切换。呼叫stty cookedstty echo在提示开始时,然后stty sanestty raw之后触发一系列新的问题;主要与如何处理绑定字符有关,但只要说它破坏了大多数 alt 绑定(以及更多)就足够了,直到 return 被击中几次。

0 投票
2 回答
613 浏览

bash - 如何不将此处的文档回显到终端?

我有一个脚本提示用户输入他们的 sudo 密码,然后遍历主机列表并在远程主机上执行命令。我可以“读取 -s”以静默获取他们的密码,但是每次在远程主机上使用他们的密码时,它都会回显到终端。在本地主机上更改 stty 没有帮助。例子:

输出仍然包含密码:

在远程主机上使用 stty 也无济于事:

FWIW,我主要关心 OSX bash/sh