【发布时间】:2018-08-31 06:41:09
【问题描述】:
我在我的 Gnome 桌面管理器 Ubuntu 中打开了两个 pts 终端。
我要做的是使用终端 /dev/pts/1 使用重定向向终端 /dev/pts/0 写入一些内容,例如:
##in pts/1
echo date > /dev/pts/0
但在 pts/0 中,仅打印日期,按 Enter 不会执行它。所以我猜comamnd不会进入 pts/0 的标准输入。所以我尝试将echo date 的输出通过管道传输到 /dev/pts/0 这给了我权限被拒绝的错误,我成为 root 并更改了它的权限我仍然无法让 date 命令在 pts/0 中运行。
我正在尝试这些东西以用于学习目的。所以我真的很困惑它是如何在这里工作的,我应该怎么做才能完成它。
【问题讨论】:
-
如果“管道连接到/dev/pts/0”是指
echo date | /dev/pts/0,那将失败,因为/dev/pts/0不是您可以执行的程序。 -
澄清:您是否尝试将文本注入终端,就好像用户输入了它一样?因此,如果 shell 在 pts 0 中运行,
date会被放在命令行上,就像用户输入了date? -
“按回车不执行” - 终端不执行任何操作,你是说 shell 吗? “不去 pts/0 的标准输入”——终端没有标准输入,进程有。再说一遍,你的意思是使用终端的 shell 进程吗?
-
该命令只打印在终端
/dev/pts/0,见mesg。文本不会到达那里运行的 shell,也不会“执行”。进行类似操作的最简单方法可能是使用screen或tmux。 -
@melpomeme,是的,我正在尝试向其中注入文本并且它有效,但文本不会作为命令或程序执行。它只是打印,仅此而已。