我在Gnome桌面管理器Ubuntu中打开了两个pts终端。
我想做的是使用/ dev / pts / 1终端通过重定向将一些内容写入终端/ dev / pts / 0:
##in pts/1
echo date > /dev/pts/0
但是在pts / 0中,仅打印日期,而按Enter则不执行。因此,我猜想该命令不会进入pts / 0的标准输入。因此,我尝试将echo date
的输出传递到/ dev / pts / 0,这给了我拒绝权限的错误,我成为root并更改了权限它,但仍然无法让date
命令在pts / 0中运行。
出于学习目的,我正在尝试这些东西。所以我真的很困惑它在这里如何工作以及我应该怎么做才能完成它。
答案 0 :(得分:3)
写入终端设备只会在终端上打印输出。如果将文本塞回到输入缓冲区,那么您打印到dependency_overrides:
quiver: ^2.0.0+1
的所有内容都会循环回到stdout
,因为它们都连接到同一终端设备。
为了将数据放入伪tty的输入缓冲区,必须写入其主设备。不幸的是,它们在Linux上的文件系统中没有不同的名称。这里只有一个stdin
设备,主进程使用/dev/ptmx
创建一个链接到它的从属设备,然后生成一个将其用作控制终端的子设备。因此,文件系统中没有可写入的内容,不会馈入pty的输入缓冲区。
答案 1 :(得分:2)
exec 1> / dev / pts / 0
exec 1> / dev / pts / 1#或您实际的原始tty地址。
基本上,您正在取代tty stdin。
在这种情况下,“ exec”启动一个新的bash,您可以使用一组通常无法即时更改的环境变量来提供新的bash。有关更多详细信息,请执行“ man exec”。
“ 1> / dev / pts / 0”在这里我们说,“无论我在这个新bash上键入什么,将其写到另一个bash上,的确可以做到,但是所有的stdout都将显示在原始的tty。
祝您学习Linux顺利,希望您喜欢它。