2011-12-30 22 views

答えて

2

いいえ;端末はコマンドを実行しません。それらは単にデータのチャネルです。

あなたはソートのかかわらず、コマンドを実行して、このような別の端末にそれを添付することができます

ls </dev/pts/2 >/dev/pts/2 2>/dev/pts/2 

それは勝ったとして、あなたが、しかし、その端末から、それを実行したようですが正確に動作しませんその端末を制御端末として設定していない。しかし、それは合理的に近いです。

+0

はい、コマンドを実行するのは、端末ではなくシェルです。 –

+0

ありがとう!出力を端末に接続するだけではありませんでした。それは本当に役立ちます。 –

0

echo `ls` 

予告異なる引用記号をお試しください。

+0

これも機能します! –

+0

これらは引用符で囲まれていません –

0

通常、ttyからコマンドを実行するには、getty、login、およびシェルプログラムが必要です。

しかし、擬似端末から直接コマンドを実行するシェルを置くこともできます。 この簡略化されている例(取り外したすべてのエラーcheckings):

int main(int argc, char** argv) 
{ 
    int master_fd = create_my_own_psudo_terminal() ; 

    // Wait until someone open the tty 
    fd_set fd_rset; 
    FD_ZERO(&fd_rset); 
    FD_SET(master_fd, &fd_rset); 
    select(master_fd + 1, &fd_rset, NULL, NULL, NULL); 

    dup2(master_fd, STDIN_FILENO); 
    execl("/bin/sh", "sh", 0); 

    return 0; 
} 

は今、あなたは、次の操作を行うことができます

スタート最初の端末では、この単純なプログラム。

と第2の端子からあなたのコマンドを送信します。

echo "ls" > /dev/pts/5 

そして、あなたが最初の端末に一覧表示されます。

注:ログインが行われていないため、これは非常に安全です。

1

私はそれが1年遅れであることを認識していますが、私は思ったより簡単な方法があります。これは機能しませんか?

ls > /dev/pts/2 

私のシステムで動作します。

+0

これは 'ls'でも有効です。これは入力を受け付けず、通常はエラーメッセージを表示しないためです。しかし、もっと複雑なコマンドではうまくいかないでしょう。 – duskwuff