Есть отличная утилита Boot-Repair на основе графического интерфейса. Попробуйте.
1.Загрузитесь с Ubuntu Live USB / DVD
2. Установите средство восстановления загрузки, используя:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair
Для получения дополнительной информации https://help.ubuntu.com/community/Boot-Repair
Каждый процесс имеет 3 "файловых дескриптора" по умолчанию
0 is stdin (standart input)
1 is stdout (standart output)
2 is stderr (standart error output)
Вам нужно найти PID процесса оболочки, а затем вы можете сделать следующее:
echo "test" > /proc/{your_shell_pid}/fd/1
Это приведет к печати теста в стандартном выводе процесса оболочки
TIOCSTI работает, как сказано в комментарии thrig выше:https://stackoverflow.com/a/29615101/2995591
Возможно, это не совсем то, что вы ищете, но подобные проблемы я обычно решаю, запуская экранные сеансы в своих терминалах.
Я делаю так:
screen -S term1
xterm -e screen -S term1 & ; disown
& ; disown
. Это потому, что я хочу вернуть оболочку после запуска xterm, и я не хочу xterm
умереть, если оболочка, в которой я ее запустил, умретscreen -S term2
(или создаю новый терминал, запустивxterm -e screen -S term2 & ; disown
)screen -S term1 -X stuff 'echo "foo"\n'
echo "foo"
на 1-м терминале и нажатии Enter some words
, но , а не , после которого следует Введите на клемму 2, которую вы можете использоватьscreen -S term2 -X stuff 'some words'
Примечания:
term1
и/или term2
, используйте другие имена screen -S somename
в уже существующем терминале, обратите внимание, что после запуска exit
завершается только сеанс экрана. screen -S somename ; exit
.