I have this setup where I have computer with ssh and a display where I have a user logged in to terminal. What I want to do is send commands like I was using that local session with keyboard. I tried to echo to /dev/tty1 but it just shows what I typed instead executing it. Which makes sense. The system only has bash so no GUI or anything like that.
Asked
Active
Viewed 2,324 times
1 Answers
5
The TIOCSTI ioctl can inject characters into a terminal, or see instead uinput on Linux to generate keyboard (or mouse!) input.
ttywrite.c
- sample C implementationTerm::TtyWrite
- Perl implementation$ sudo perl -MTerm::TtyWrite \ -e 'Term::TtyWrite->new("/dev/pts/2")->write("echo hi\n")'
-
This Q&A is Linux-specific, fortunately. Note that other operating systems started to drop TIOCSTI a year after this answer was written. https://unix.stackexchange.com/q/406690/5132 – JdeBP Feb 24 '20 at 09:19
ssh remotehost "some command; another command; yet another command"
) be sufficient? – Chris Davies Aug 30 '16 at 23:39