Questions tagged «tty»

异步发送和接收串行数据的设备的表示形式。


1
tty的X的屏幕截图
使用Xvfb,我可以启动一个应用程序并截图。 我想知道的是如何从现有(休眠)X会话中捕获。 从tty或通过ssh说。 据我了解,窗口是未映射的,并且不存在以保留资源。是否有一些工具可以映射虚拟windowmanager中的现有窗口,工作区等并快速捕捉? 还是可以libx11使用XShmCreateImage或类似方式使用并创建快照?
15 x11  tty  screenshot 

4
通过将字符串放入tty来构建命令
我设法做到了 echo -n“ 命令 ”> / dev / tty1 出现字母,并且光标移动,但是它们是“鬼”-如果您单击Enter,则什么也不会发生(它们不在stdin中)。 编辑: 在下面的屏幕截图的中间,您会看到为什么我会看到此用法。(带有红色标题的行,位于带有黄色标题的行的正下方。)到现在为止,您实际上并不是在“编辑”注释文本。只是要求您编写一个新文本,它将替换您(不是真的)正在编辑的笔记的文本。因此,我认为可以通过简单地将旧文本粘贴到tty中来解决:如果用户按下回车键,则不会进行任何修改。(该程序在Perl / MySQL中,但是我认为寻求一个通用的解决方案比“在Perl中如何做到”更有趣。) 编辑2: 这是Perl代码,它使用下面的C代码(完全按预期工作)以及一个新的屏幕快照–希望这可以澄清一切:)再次,请看屏幕快照的中间,进行编辑便笺文本-这次是旧文本,例如,如果您只想修正输入错误,则无需重新输入整个便笺文本。 my $edit_note_text = $edit_note_data[2]; print BOLD, RED, " new text: ", RESET; system("writevt /dev/tty \"$edit_note_text\""); my $new_text = <$in>; $new_text = fix_input($new_text); my $set_text = "UPDATE notes SET note = \"$new_text\" WHERE id = …
15 tty  io  stdin 

2
X11如何与内核交互/执行登录
据我了解,与Linux内核进行基于文本的交互时,有一个名为initstarts getty(或agetty)的程序,该程序连接到下面的TTY设备之一,/dev并提示输入用户名。此后,将login运行一个名为的程序,提示输入用户密码,如果正确,则启动用户的首选外壳程序(例如bash或csh)。此时,bash通过TTY设备与内核交互。 X11的登录过程如何工作?X11是否通过TTY与内核交互?
14 x11  linux-kernel  login  tty  getty 

3
如何永久更改控制台TTY字体类型,使其在重启后保持不变?
我正在运行Ubuntu 15.04 64位桌面版(基于Debian的Linux)。 我sudo dpkg-reconfigure console-setup从命令行使用默认控制台字体类型更改为Terminus。之后,控制台字体立即变为外观更清晰的字体。 然而,在重新启动后Ctrl+ Alt+ F1带我到具有原始大块寻找风格字体的脸,不是我选择的选择一个控制台窗口。 该/etc/default/console-setup文件似乎已更改为我的选择。 # CONFIGURATION FILE FOR SETUPCON # Consult the console-setup(5) manual page. ACTIVE_CONSOLES="/dev/tty[1-6]" CHARMAP="UTF-8" CODESET="guess" FONTFACE="Terminus" FONTSIZE="8x16" VIDEOMODE= # The following is an example how to use a braille font # FONT='lat9w-08.psf.gz brl-8x8.psf' 如何永久更改控制台字体以使用首选字体?

4
因为stdin不是终端,所以不会分配伪终端
我正在尝试通过没有nc的服务器设置自动SSH跳跃。 这可以从命令行进行: ssh -A gateway ssh steve@target (我已将公共密钥添加到SSH代理中)。 但是,将其添加到〜/ .ssh / config不会: Host target User steveb ProxyCommand ssh -A gateway ssh steve@targetip $ ssh target Pseudo-terminal will not be allocated because stdin is not a terminal. ^CKilled by signal 2. 试图强行解决问题-t很有趣,但无济于事。 ProxyCommand ssh -A -t gateway ssh steve@targetip $ ssh …
14 ssh  rhel  configuration  tty 


2
可以通过音频设备(摩尔码或类似代码)配置登录TTY吗?
我日常工作中最痛苦的方面之一是需要偶尔调查分散在世界各地无法访问外部网络的远程机器上的问题。有时,本地员工可能会通过3G或类似的调制解调器捆绑以提供访问权限,但由于信号不足或现场缺乏技术能力,通常这是不可能的。在这些情况下,我必须用电话联系当地技术人员(有时是管理员),与我一起工作,输入我背诵给他们的命令,并以输出作为响应,通常是那些Linux有限甚至没有Linux甚至没有计算机的人经验。通常,要找到一个更合格的技术人员到现场,需要包机。 我可以确认,通过在vi中编辑文件来交谈的人不知道'slash'和'backslash'之间的区别,如何保持移位以生成冒号而不是分号,这是非常痛苦的。“好吧,现在显示的是一个弯曲的东西,然后是一种看起来很怪异的线条,然后是另一个弯曲的东西”。哦,它以我未读过的某种错误消息在我身上发出哔哔声。 基本上,我在现场使用的人是一个非常慢的电话->终端转换器,错误率极高。我的主意是裁掉中间人,在计算机上使用扬声器和麦克风,然后告诉技术人员将手机固定在机器上,然后将其用作老式的声学耦合“调制解调器”。在我的计算机上运行一个终端程序,该程序会将我的线路转换为可以通过电话传输到电话机上的某些音频序列,并转换回命令,然后将其输出转换为音频电话等,实际上为我提供了非常慢的终端。有几种传输数据的方法,这些数据可能在手机传输后仍然存在,例如摩尔斯电码或OliviaMode。 我希望获得有关软件包的信息,以整体上或以各种方式来完成此解决方案,或者提供其他有关如何完成此任务的想法。除了上述提到的“ OliviaMode”(可以用作传输协议)外,Google并没有任何用处。
13 audio  prompt  tty 

2
/ dev / console是做什么用的?
从这个答案到Linux:/ dev / console,/ dev / tty和/ dev / tty0之间的区别 从 文档中: /dev/tty Current TTY device /dev/console System console /dev/tty0 Current virtual console 在过去/dev/console,系统管理员控制台是过去的。TTY是用户连接到服务器的串行设备。现在 /dev/console和/dev/tty0代表当前显示,通常是相同的。您可以通过添加覆盖它,例如 console=ttyS0到grub.conf。在那之后你/dev/tty0是一个显示器,/dev/console是/dev/ttyS0。 通过“ 系统控制台 ”,/dev/console看起来像是文本物理终端的设备文件,就像/dev/tty{1..63}虚拟控制台的设备文件一样。 在我看来,“ /dev/console和/dev/tty0表示当前显示的内容通常是相同的” /dev/console也可以是虚拟控制台的设备文件。/dev/console似乎/dev/tty0比like /dev/tty{1..63}(/dev/tty0是当前处于活动状态的虚拟控制台,可以是任何一个/dev/tty{1..63})。 什么/dev/console啊 这有什么用途? 不/dev/console玩了Linux内核相同作用/dev/tty的过程?(/dev/tty是进程的进程会话的控制终端,可以是pts,/dev/ttyn其中n1到63,或者更大?) 另一个答复提到: 内核文档/dev/console将字符设备指定为5:1。打开此字符设备将打开“主”控制台,该控制台是控制台列表中的最后一个tty。 难道“控制台列表”是指所有console=的在启动选项? “ /dev/console作为5:1的字符设备”,是否表示/dev/console物理文本终端(即系统控制台)的设备文件?(但同样,我在上面引用的第一条回答/dev/console可能与/dev/tty0不是物理文本终端,而是虚拟控制台的相同) 谢谢。
13 linux  ubuntu  tty  console  pts 

2
如何使pinentry-curses从正确的tty开始?
我gpg-agent用于管理两个PGP e SSH身份。代理以这样的脚本启动 gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env" export GPG_TTY="$(tty)" if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)" else source "$gpg_agent_env" 2> /dev/null fi 每当我运行交互式外壳程序时,该源代码便会提供。使用此设置,一切都可以正常工作,但是存在问题。假设我: 打开终端(在后台启动代理)并开始工作 过一会儿再打开第二个终端 进行需要在第二个终端输入密码的操作 此时gpg-agent将开始pinentry-curses提示密码,但是它将在第一个终端中执行此操作,这将导致其输出与正在运行的内容(通常是文本编辑器)混合在一起,而无法继续执行程序或停止pinentry(它开始使用100%cpu我必须杀死它)。 我一定在这里做错了。有人经历过吗? 更新: 我发现这种情况仅发生在解锁SSH密钥的提示(看起来像这样)中,而PGP密钥的提示总是在正确的(即当前)tty上打开。
13 tty  gpg  pinentry 

2
如何获得控制终端的真实名称?
如何获得控制终端的真实名称(如果存在,否则为错误)作为路径名? 所谓“实名”,是指not /dev/tty,其他任意进程都不能使用它来指代同一终端。如果可能,我更倾向于将答案作为简单的shell代码(如下面的示例),否则作为C函数。 请注意,即使重定向了标准输入,此操作也必须起作用,以使该tty实用程序无法使用:not a tty在这种情况下,可能会出现错误,因为tty仅打印连接到标准输入的终端的文件名。 在Linux下,可以使用: echo "/dev/`ps -p $$ -o tty | tail -n 1`" 但这不是可移植的,因为根据POSIX,终端名称的格式未指定。 关于C函数,ctermid (NULL)return /dev/tty,在这里没有用。 注意:根据zsh文档,一个应该可以 zsh -c 'echo $TTY' 但是当同时重定向标准输入和标准输出时,当前(版本5.0.7)失败: $ zsh -c 'echo $TTY > /dev/tty' < /dev/null /dev/pts/9 $ zsh -c 'echo $TTY > /dev/tty' < /dev/null > /dev/null /dev/tty

2
为什么这个grep -v无法正常工作?
我有一个与grep -v查询有关的奇怪问题。请允许我解释一下: 要显示连接,我使用who: $ who harry pts/0 2016-12-08 20:41 (192.168.0.1) james pts/1 2016-12-08 19:28 (192.168.0.1) timothy pts/2 2016-12-08 02:44 (192.168.0.1) tty我的终端的电流是pts/0 $ tty /dev/pts/0 $ tty | cut -f3-4 -d'/' pts/0 我尝试使用排除自己的连接grep -v $(tty | cut -f3-4 -d'/')。该命令的预期输出应为who,而无需我的连接。但是,输出是最意外的: $ who | grep -v $(tty | cut -f3-4 -d'/') grep: a: …
12 command-line  grep  tty 



2
有没有办法镜像USB输出?
我目前正在为一个项目编写程序。 它是用于盲文阅读系统的,其中我有一个通过USB连接的盲文显示器,该显示器由称为brltty的程序控制。 该项目的要求之一是具有连接多个盲文显示器的能力,尽管只允许主显示器控制系统。 我认为最简单的方法是,不必将命令发送到程序中每个错误的实例,而是可以将输出到主USB的内容镜像到每个USB端口。 这可能吗?
12 usb  c  tty  output  mirror 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.