Каждый открываемый вами терминал получает файл с уникальным номером (например, псевдотерминальное подчиненное устройство (PTS)) в /dev/pts/, с которым его можно распознать и устранить. Чтобы получить соответствующее имя файла в терминальном окне, вы можете использовать, например. tty (см. этот ответ для альтернатив, прочитайте man pts для более):
$ tty
/dev/pts/4
Вы можете использовать это имя файла, например, для перенаправления вывода в другое окно терминала следующим образом:
$ echo test >/dev/pts/4 # run anywhere
test # printed in terminal window 4
Вы не можете запустить команду в другом терминале просто потому, что это не терминал, который запускает команду, а скорее оболочку, которая обычно работает в терминале. Однако вы можете эмулировать поведение запуска команды в окне терминала с перенаправлением следующим образом (взято из этого ответа ):
echo test /dev/pts/4
Если вы хотите отобразить команду, Я также рекомендовал написать функцию (как использовать $ * при отсутствии определенных входных переменных, таких как $ 1 и $ 2 в bash-скрипте?), например:
run_in(){
t=/dev/pts/$1 &&
echo "${*:2}" >$t &&
eval "${@:2}" <$t &>$t
}
В одной строке:
run_in(){ t=/dev/pts/$1&&echo "${*:2}" >$t&&eval "${@:2}" <$t &>$t;}
Используйте его так:
$ run_in 4 echo test # run anywhere
$ echo test # printed in terminal window 4 (if prompt was already there)
test # printed in terminal window 4
В этом случае единственными неизвестными являются номера /dev/pts/?, которые должна использовать ваша программа Python. Одним из возможных способов получить эти числа является запуск ваших собственных окон терминала, которые выводят их «числа» в файл, после чего вы сможете прочитать его [ref]. Предположим, вы используете gnome-terminal, соответствующая часть кода Python может быть чем-то вроде [ref]:
#!/usr/bin/python
import os
import subprocess
os.system("gnome-terminal -x bash -c 'tty > /tmp/my-app-tty-1; exec bash'")
my_terminal_1 = subprocess.Popen(["cat", "/tmp/my-app-tty-1"], stdout=subprocess.PIPE).communicate()[0]
command = "echo Test on: $(date) >" + my_terminal_1
print my_terminal_1
print command
os.system(command)
Если это скрипт Perl [ref] [!d10 ]
#!/usr/bin/perl
os.system("gnome-terminal -x bash -c 'tty > /tmp/my-app-tty-1; exec bash'");
my $my_terminal_1 = `cat /tmp/my-app-tty-1`;
my $command = "echo Test on: \$\(date\) > $my_terminal_1";
print ("$my_terminal_1");
print ("$command");
os.system("$command");
TL; DR Перейдите в http: // localhost: 631 / admin / login, чтобы разрешить вводить ваше имя пользователя и пароль для доступа к настройкам CUPS.
Чтобы добавить свой принтер через Chrome выполните следующие шаги:
Сначала перейдите на страницу администрирования CUPS, щелкнув вкладку в своем браузере с http: // localhost: 631http : // localhost: 631 / admin / login
Сначала перейдите на страницу администрирования CUPS, щелкнув вкладку в своем браузере с http: // localhost: 631 6]Добавьте login в конец адреса в адресной строке, а затем нажмите enter:
[ ! d18] Добавьте login в конец адреса в адресной строке, а затем нажмите enter:
Вернитесь к «Добавить принтер» и выберите свой принтер и продолжите установку: Вернитесь к «Добавить принтер» и выберите свой принтер и продолжите установку здесь: [!d 27]
Надеюсь, это поможет!
EDIT: закончено заполнение отчета об ошибке на этом, поскольку все еще есть области, которые не работают, используя метод ниже. Он просто не сохраняет информацию входа с вкладки на вкладку во время настройки или конфигурации. https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1769893
EDIT: Перейти к https : //bugs.launchpad.net/ubuntu/+source/cups/+bug/1769893 , чтобы разрешить вводить ваше имя пользователя и пароль для доступа к настройкам CUPS.
Чтобы добавить принтер через Chrome, выполните следующие действия:
Сначала перейдите на страницу администрирования CUPS, щелкнув вкладку в своем браузере с http: // localhost: 631 Нажмите кнопку «Добавить принтер» , Вы должны получить Unauthorized: Добавить login в конец адреса в адресной строке, а затем нажать enter: Введите свое имя пользователя и пароль: вернитесь к «Добавить принтер» и выберите свой принтер и продолжите установку здесь: ваш принтер должен Добавлено:Надеюсь, это поможет!
EDIT: закончено заполнение отчета об ошибке на этом, поскольку все еще есть области, которые не работают, используя метод ниже. Он просто не сохраняет информацию входа с вкладки на вкладку во время настройки или конфигурации. https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1769893
EDIT: Перейти к https : //bugs.launchpad.net/ubuntu/+source/cups/+bug/1769893 , чтобы разрешить вводить ваше имя пользователя и пароль для доступа к настройкам CUPS.
Чтобы добавить принтер через Chrome, выполните следующие действия:
Сначала перейдите на страницу администрирования CUPS, щелкнув вкладку в своем браузере с http: // localhost: 631 Нажмите кнопку «Добавить принтер» , Вы должны получить Unauthorized: Добавить login в конец адреса в адресной строке, а затем нажать enter: Введите свое имя пользователя и пароль: вернитесь к «Добавить принтер» и выберите свой принтер и продолжите установку здесь: ваш принтер должен Добавлено:Надеюсь, это поможет!
EDIT: закончено заполнение отчета об ошибке на этом, поскольку все еще есть области, которые не работают, используя метод ниже. Он просто не сохраняет информацию входа с вкладки на вкладку во время настройки или конфигурации. https://bugs.launchpad.net/ubuntu/+source/cups/+bug/1769893
EDIT: Перейти к https : //bugs.launchpad.net/ubuntu/+source/cups/+bug/1769893 , чтобы разрешить вводить ваше имя пользователя и пароль для доступа к настройкам CUPS.
Чтобы добавить принтер через Chrome, выполните следующие действия:
Сначала перейдите на страницу администрирования CUPS, щелкнув вкладку в своем браузере с http: // localhost: 631 Нажмите кнопку «Добавить принтер» , Вы должны получить Unauthorized: Добавить login в конец адреса в адресной строке, а затем нажать enter: Введите свое имя пользователя и пароль: вернитесь к «Добавить принтер» и выберите свой принтер и продолжите установку здесь: ваш принтер должен Добавлено:Надеюсь, это поможет!