I need to write commands from one terminal to another terminal.
I tried these:
echo -e "ls\n" > /proc/pid/fd/0
echo -e "ls\n" > /dev/pts/4
Which just prints the ls
as output and doesn't execute.
I tried these:
chmod 777 /dev/tty4 ;echo "ls" > /dev/tty4
chmod 777 /dev/tty40 ;echo "ls" > /dev/tty40
Which don't seem to do anything
Any ideas?
[note that I don't want to touch the second terminal to accomplish this. only the first one]
open 2 terminals then type ttd on the terminal which you want to write on ttd will show you the address of the terminal move to the another terminal and type cat > (address of the 2nd terminal) and hit enter
Python code:
look at:
for example:
Is posible to show the output of a command on multiple terminals simultaneously with the following script., and it works with all console programs, including the editors. For example doing:
Open an editor and both the output and the text that we introduce will be redirected to the virtual terminal number 5. You can see your terminals:
Each virtual terminal has an associated number.
Is work with the normal terminal, konsole and xterm, just create the file execmon.bash and put this:
Example:
command > dev/pts/# where # is the other terminal's name
This is hairy. The stdin file in proc you're trying to use is a symlink to the terminal device (probably /dev/pts/something). There are two processes that have that device open: the shell (your target) and the terminal emulator (e.g. gnome-terminal), and they use it like a socket to pass data in both directions. Presumably the latter is stealing the output and displaying it, so the shell never sees it. I don't think this technique will work.
What are you trying to accomplish? You can't run the process as a child using conventional tools like popen()? If it's a GUI terminal emulator, you could try to forge keyboard input via X events or the kernel's uinput API.