"tty"の出力が "/ dev/pts/2"の端末が1つあるとします。 別の端末から、最初の端末で実行してください。 使用方法: echo "ls"> "/ dev/pts/2"は最初の端末に "ls"だけを表示します 文字列を実行する方法はありますか?Linuxの擬似端末:ある端末から別の端末に送信された文字列を実行する
答えて
いいえ;端末はコマンドを実行しません。それらは単にデータのチャネルです。
あなたはソートのかかわらず、コマンドを実行して、このような別の端末にそれを添付することができます
ls </dev/pts/2 >/dev/pts/2 2>/dev/pts/2
それは勝ったとして、あなたが、しかし、その端末から、それを実行したようですが正確に動作しませんその端末を制御端末として設定していない。しかし、それは合理的に近いです。
はい、コマンドを実行するのは、端末ではなくシェルです。 –
ありがとう!出力を端末に接続するだけではありませんでした。それは本当に役立ちます。 –
は
echo `ls`
予告異なる引用記号をお試しください。
これも機能します! –
これらは引用符で囲まれていません –
通常、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年遅れであることを認識していますが、私は思ったより簡単な方法があります。これは機能しませんか?
ls > /dev/pts/2
私のシステムで動作します。
これは 'ls'でも有効です。これは入力を受け付けず、通常はエラーメッセージを表示しないためです。しかし、もっと複雑なコマンドではうまくいかないでしょう。 – duskwuff
- 1. Linux端末でファイルを実行する
- 2. Linux端末v.s. Eclipse
- 3. OSX端末の文字列の長さ
- 4. Linux端末でのカーソル位置と端末サイズの取得
- 5. Linux端末で非正規の端末I/Oアプリケーションに問題がある
- 6. Linux端末の出力リダイレクト
- 7. 実行PHPスクリプトは、端末
- 8. 端末のキーボードイベント
- 9. Linux端末入力:4095文字制限で端末を切り捨てる端末からユーザ入力を読み取る
- 10. PYTHONPATHエラーLinux端末vコンソール
- 11. VT100/xterm端末のEmacs(Mac OS Xの端末)に "C-("を送る?
- 12. Konsole端末へのコマンドの送信
- 13. 端末からftpにアップロード
- 14. ANSI端末
- 15. PHP端末エミュレータ
- 16. VHDLログイン端末
- 17. Android端末エミュレータコマンド
- 18. FTP GET端末の構文
- 19. Mac端末でR端末コマンドを使用できますか?
- 20. ncurses端末のサイズ
- 21. emacsのシリアル端末
- 22. Cocoapodsの端末エラー
- 23. 端末ベースのRPG
- 24. Sass:端末にプリント
- 25. ブラウザでLinux端末をシミュレートする
- 26. 端末からGoogleのジオコーディングAPIへのリクエストを送信する
- 27. スポーンされた端末が別のデスクトップに表示される
- 28. MACログイン端末エラー
- 29. 端末内蔵テキストエディタ?
- 30. GitログインZSH端末
私はそれほど大したセキュリティホールではないと思います。 –