Почему (и как) сделал кошку использование на двоичных файлах, портят терминал?

Если я понимаю Вас правильный: Вы хотите совместно использовать гнома или другую среду удаленно, как это, затем самый легкий способ достигнуть, это должно использовать x11vnc. Это совместно использует реальный сервер X11, как это после того, как пользователь вошел в систему:

x11vnc -display :0

Или если Вы хотите vnc сервер, бежит за входом в систему, можно автоматизировать с этим сценарием:

#!/bin/bash
/usr/bin/x11vnc -nap -wait 50 -noxdamage -passwd PASSWORD -display :0 -forever -o /var/log/x11vnc.log -bg

Можно поместить этот сценарий в программы запуска в гноме, так, чтобы он мог быть выполнен автоматически, когда пользователь входит в систему. Обратите внимание на то, что этот сценарий не безопасен, поскольку переменная ПАРОЛЯ сессии ясно замечена любому, кто мог считать файл и любого знающего, что пароль может соединиться с vnc сессией (пароль в этом случае является 8 словами символов, которые спрашивают, когда Вы соединяетесь удаленно). Если Вы хотите больше поиска безопасного соединения, как сделать vnc ssh туннелирование.

8
29.05.2019, 05:35
2 ответа

cat[117509] объединяет файлы, переданные в качестве аргументов в командной строке в стандартный вывод, он читает байты за раз, а по умолчанию не выполняет никакой интерпретации прочитанных им байтов.

curl -JLO http://www.vim.org/scripts/download_script.php?src_id=9750

В первом примере вы перенаправляете stdout в файл, поэтому получаете новый файл.

Во втором примере байты записываются на терминал, и именно терминал интерпретирует последовательности символов как управляющие последовательности для терминала, поэтому вы получаете необычное поведение на вашем терминале. Это никак не связано с [117510]cat[117511] как таковым, [117512]cat[117513] не знает, что вы собираетесь делать с его выводом. Возможно, вы посылаете его через трубу в другую программу для интерпретации/процессирования/печати или воспроизведения "Пения под дождём".

Так что следуя философии уникс,


делайте одно, делайте только одно, но делайте это хорошо

cat[117517] не должен пытаться угадать, что вы пытаетесь сделать.

отредактируйте 1 ответ на 1-й комментарий @kiwy ниже.


Да и нет, позвольте мне объяснить,

Нет, если вы [117518]cat[117519] на терминал, потому что он (терминальное программное обеспечение) посылает выход на ваш экран или интерпретирует управляющие последовательности (он эмулирует старое оборудование, т.е. [117520]устройство телетайпа [117521]).

но,

Да, если вы кошка в трубе и получающая программу может интерпретировать символы как команды.


посмотрите на это как на пример, [117522]кошка anyOldShellScript | bash[117523] bash будет интерпретировать то, что он получает как команды.[117240]

8
27.01.2020, 20:11
[117213]Полагаю, это происходит в основном из-за непечатаемых символов с кодами ниже 0x20. Это специальные управляющие/эскейп-коды, которые используются для таких клавиш, как Backspace, Delete и т.д.[117214].
2
27.01.2020, 20:11

Теги

Похожие вопросы