Как я могу в реальном времени изменить строки и столбцы TTY?

Простой путь: использовать uuencode (часть sharutils пакет). Любое форматирование или основной текст недоступны. Просто электронное письмо с attachement и пользовательским предметом.

uuencode /path/to/file file_name.ext | mail -s subject my@email.com

Сложный путь: использовать sendmail и форматирование HTML:

v_mailpart="$(uuidgen)/$(hostname)"
echo "To: my@email.com
Subject: subject
Content-Type: multipart/mixed; boundary=\"$v_mailpart\"
MIME-Version: 1.0

This is a multi-part message in MIME format.
--$v_mailpart
Content-Type: text/html
Content-Disposition: inline

<html><body>Message text itself.</body></html>

--$v_mailpart
Content-Transfer-Encoding: base64
Content-Type: application/octet-stream; name=file_name.ext
Content-Disposition: attachment; filename=file_name.ext

`base64 /path/to/file`
 --$v_mailpart--" | /usr/sbin/sendmail -t

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

3
04.09.2016, 00:56
1 ответ

Неясно, какой именно размер текстового буфера слишком велик для ConSpy ( stty --all или около того не предоставляется), поэтому следуют рекомендации как по количеству текстовых строк, так и по cpl.

У консоли TUI есть разные параметры:

  • режим видео (т.е. сколько строк развертки × ширина экрана (в точках));
  • сколько символьных полей (т.е. текстовые строки × cpl).

Обычно:
строки текста = строки развертки / высота символа
cpl = ширина экрана (в точках) / ширина символа
Высота символа и ширина указаны в точках. Деление целое, остаток отбрасывается.

Чтобы уменьшить количество строк текста, загрузите шрифт с большей высотой символа. Чтобы уменьшить cpl (количество символов в строке), загрузите шрифт с шириной символа 12 или более. Например:

 setfont /usr/share/consolefonts/Uni3-TerminusBold24x12.psf.gz

(хотя ИМХО Terminus уродлив во многих отношениях).

В Ubuntu можно создать собственный сценарий /etc/init/console-setup.conf , который будет запускаться при загрузке. А именно, вместо

exec loadkeys /etc/console-setup/cached.kmap.gz

можно написать

script
    setfont /usr/share/consolefonts/Uni3-TerminusBold24x12.psf.gz
    loadkeys /etc/console-setup/cached.kmap.gz
end script

. Обратите внимание, что cached.kmap.gz - это (раскладка клавиатуры) и не мешает работе со шрифтами. Необязательно выполнять setfont именно из «console-setup.conf». Из-за значения термина «консоль» такой выбор кажется логичным.
Обновление: В Ubuntu есть задача /etc/init/console-font.conf .

Или прочтите этот материал на AskUbuntu , может быть, найдете что-нибудь полезное.

Большинство приведенных выше рекомендаций предполагают, что драйвер фреймбуфера ( fbdev ) включен. Кроме того, в этом случае команда fbset без аргументов (или sudo fbset из пользовательской оболочки) сообщает геометрию текущего видеорежима, как:
geometry screen_width scan_lines

В аппаратном VGA-подобном режиме , устаревшем в современных Linux, максимальная ширина символа равна 9. Таким образом, можно уменьшить cpl (символы на строку) только за счет включения нестандартной (уменьшенной) ширины экрана, следовательно, нестандартного режима с уменьшенной тактовой частотой пикселей. Это не всегда возможно и безопасно.


Еще одно замечание о текстовых строках × cpl на виртуальных консолях Linux. Эти значения могут быть получены с помощью
sudo od -t u1 -N 2 / dev / vcsa number
Первое десятичное число - это текстовые строки, а второе - iscpl. См. Vcs (4) и od (1) для объяснения того, как это работает.

3
27.01.2020, 21:22

Теги

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