заглянуть

для понимания этой разницы нужно сделать следующие действия:
1) Переключись в консоль:
chvt 2
или нажав ctrl+alt+f2
2) Залогинься root (для простоты - можно и обычным пользователем)
3) Запусти X-сервер:
X :9 &
4) Вернись обратно в консоль:
нажав ctrl+alt+f2
5) Выполни
export DISPLAY=:9
и какою-нить графическую утилиту, например
xclock &
export DISPLAY=:9 && xclock &
6) Переключись обратно в X(:9)
нажав alt+f8 - это подойдет для многих дистрибутивов.
Точнее можно глянуть:
ps -fC X | grep ":9"
и нажать
Переключившись увидишь работу графической утилиты без всяких WM и DE.
7) Запусти WM:
перейдя в консоль alt+f2
kwin или metacity или twm или mwm или ... и тд
вернись в X (:9) - как в пункте 6 - и пойми что изменилось с появлением WM
8) Запусти DE:
перейдя в консоль alt+f2
startkde или gnome-session или ... и тд
вернись в X (:9) - как в пункте 6 - и пойми что изменилось с появлением DE

Красоту можно навести командами:
xsetbg /путь/к/красивой/картинке
Консоль запустить:
xterm -g -0-0
часики:
xclock -update 1 200x200-0+0
Приложения закрывать:
xkill

Запуск игр и программ в отдельных иксах:
startx xterm -- :1

запуск сессии
xinit -- :1
startx -- :1
xinit `which xterm` -- :1

сообщение в соседнюю консоль
echo "Привет" > /dev/tty2

usermod -aG audio,video,tty,input пользователь

https://wiki.archlinux.org/title/Xorg_(Русский)
чтобы запустить X через xinit
vi /etc/X11/Xwrapper.config
allowed_users=anybody
needs_root_rights=yes

Отдельная X-сессия на ubuntu 18.04
разрешить пользователю запускать иксы
sudo apt install xserver-xorg-legacy
sudo dpkg-reconfigure xserver-xorg-legacy (выбираем “кто угодно”)
echo "needs_root_rights = yes" | sudo tee --append /etc/X11/Xwrapper.config
sudo gpasswd -a $USER video (добавляем пользователя в группу Video)
sudo gpasswd -a $USER audio (добавляем пользователя в группу Audio)
sudo reboot (компьютер будет перезагружен)
startx "ваша_программа_или_игра" -- :1
https://portwine-linux.ru/category/portwine-linux/

chvt переход в tty без ctrl+alt+F.. блокировка tty
How to change between TTY (virtual terminal) on Linux guest VMs when using a console launched from Prism Element
В Linux соединения с операционной системой могут быть выполнены:
сеанс физического терминала / сеанс консоли
сеанс псевдо-терминала, такой как SSH, xterm (для X-Windows)
сеанс виртуального аппаратного терминала

Чтобы показать идентификацию этих разных соединений, используйте команду «w»:
Обратитесь к столбцу TTY:
tty2 и tty3 относятся к сеансам виртуального терминала
:0 относится к физическому терминалу, или в этом случае консоль, запущенная из Prism Element
pts/0 и pts/2 относятся к сеансам псевдотерминала, который является видимым сеансом терминала (см. столбец FROM: 0), и к удаленному сеансу SSH

выполните в эмуляторе терминала (напр. xterm) sudo chvt 2 чтобы перейти к TTY2, это аналог ctrl+alt+F2 для перехода в /dev/tty2
затем в TTY2 ввести chvt 7 для перехода обратно в графическую консоль

Завершить процесс (kill) tty в Unix/Linux
w
who -la
skill -KILL -v pts/4
pkill -9 -t pts/0
ps -ft pts/0
kill -9 9721
killall -u username
pkill -U username
loginctl kill-user username

https://wiki.archlinux.org/index.php/Xorg#Block_TTY_access
Чтобы заблокировать доступ tty в X, добавьте следующее в xorg.conf
Section "ServerFlags"
    Option "DontVTSwitch" "True"
EndSection

Запретить пользователю убивать X
добавьте в xorg.conf следующее:
Section "ServerFlags"
    Option "DontZap"      "True"
EndSection


Как заблокировать сеансы виртуальной консоли в Linux
sudo apt-get install vlock
a — Блокировать все сеансы виртуальной консоли,
c — заблокировать текущий сеанс виртуальной консоли,
n — Переключиться на новую пустую консоль, прежде чем блокировать все сеансы,
s — Отключить механизм ключа SysRq,
t — указать тайм-аут для плагинов заставки,
h — Показать раздел справки,
v — Показать версию.


для подключения к pty следует использовать клиент ttysnoop
ttysnoop /dev/pts/0
tty -s && echo "Внутри tty"

openvt — запустить программу на новом виртуальном терминале
openvt [-c номер_vt] [-s] [-u] [-l] [-v] [--] команда параметры_команды
openvt -f -c 9 -- eсho "12345"

https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session
Как повторно подключиться к отключенному сеансу SSH
tty
apt install reptyr
ps -aux |grep 'pts/3'
reptyr -T 6447
_______________________________________________________________________

1) X-ов можно хоть сотню запустить - главное что у них разный ":цифра" - номер дисплея.
9) Для kwin, metacity и тд - тоже нужно чтобы задана была переменная DISPLAY - раз уж пошел в другую консоль, задай там эту переменную тоже.

_________________________________________________________________________

клиент-серверная архитектура X11 позволяет сделать это
ssh -X remotehost xterm

https://wiki.archlinux.org/index.php/Xorg
https://xneur.ru/settings
Чтобы запустить вложенный сеанс другой среды рабочего стола:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
$ Xephyr :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
Это запустит сеанс Window Maker в окне 1024 на 768 в текущем сеансе X.
опция -ac позволяет удалённым клиентам подключаться к вашему X-серверу
$ Xephyr -query localhost -screen 800x600 :1 Если localhost – это XDMCP сервер, 800x600 – требуемое разрешение, а :1 – номер дисплея (можно использовать любой свободный номер)
в одном окне консоли вбить Xephyr :2
в другом xterm -display :2
Xephyr :2 -screen 1024x768+0+0 -resizeable & fluxbox -display :2
Xephyr :2 -geometry 1280x1024+0+0 -resizeable & fluxbox -display :2
DISPLAY=:2 fvwm1 &

узнать № дисплея сеанса:
echo $DISPLAY
cat /proc/$$/environ | tr '\0' '\n' | grep '^DISPLAY='

запуск хрома из snap (сходный механизм и у других приложений)
xhost +si:localuser:root
xhost +si:localuser:пользователь

export PATH="/snap/bin/:$PATH"
echo $DISPLAY
xhost +si:localuser:пользователь
export DISPLAY=:10 && chromium &

nano $HOME/bin/chromium.sh



chmod +x $HOME/bin/chromium.sh

https://linux-notes.org/utilita-xhost-v-unix-linux/
vi ~/.xinitrc
#!/bin/bash
xhost +si:localuser:root &
xhost +si:localuser:пользователь &

ошибка при запуске с sudo или su
"Не удалось подключиться к: В соединении отказано Ошибка инициализации GTK."
export XAUTHORITY=$HOME/.Xauthority
sudo программа

раскладка
setxkbmap -layout "us,ru" -option "alt_shift_toggle,grp_led:scroll"

setxkbmap -model pc105 -layout "us,ru" -variant ",winkeys" -option "grp:alt_shift_toggle"

Параметры "XkbOptions"
Параметры "XkbOptions"
Варианты переключателей между языками в файле /etc/X11/xorg.conf
grp:toggle - переключение правым Alt;
grp:shift_toggle - двумя клавишами shift;
grp:ctrl_shift_toggle - ctrl+shift;
grp:alt_shift_toggle - alt+shift;
grp:ctrl_alt_toggle - ctrl+alt;
grp:caps_toggle - переключение по CapsLock;
grp:lwin_toggle - переключение по левой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:rwin_toggle - переключение по правой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:menu_toggle - переключение по клавише "Контекстное меню" на Windows клавиатуре (для X Window старше 4.2);
grp:lctrl_toggle переключение по левой клавише Control
grp:rctrl_toggle переключение по правой клавише Control
grp:switch - переключение по правому Alt только на момент нажатия
grp:lwin_switch - переключение по левой клавише Windows только на момент нажатия
grp:rwin_switch - переключение по правой клавише Windows только на момент нажатия
grp:win_switch - переключение по любой клавише Windows только на момент нажатия
Возможные значения grp_led:
grp_led - использовать индикаторы на клавиатуре для показания изменения группы
grp_led:num - индикатор Num_Lock показывает изменения группы
grp_led:caps - индикатор Caps_Lock показывает изменение группы
grp_led:scroll - индикатор Scroll_Lock показывает изменение группы


:: /etc/X11/xorg.conf ::
...
Section "InputDevice"
...
Option "XkbOptions" "grp:switch,grp:caps_toggle,grp_led:scroll"
...
EndSection
...



локаль

echo 'export LANG=en_US.utf8' >> ~/.profile
source ~/.profile

Локаль Системы По Умолчанию
https://www.shellhacks.com/ru/linux-define-locale-language-settings/
Ubuntu-18.04 и CentOS-7
localectl set-locale LANG=en_US.utf8

Ubuntu-14.04
/etc/default/locale
LANG="en_US.utf8"

CentOS-6
/etc/sysconfig/i18n
LANG="en_US.utf8"


export LANG = "ru_RU.UTF-8"
export LC_ALL = "ru_RU.UTF-8"
export LC_COLLATE = "ru_RU.UTF-8 "


разрешение экрана в tty

grep vga /proc/cmdline
grep -ir vga /etc/modprobe.d/
Вывод обеих команд должен быть пустым
sudo apt-get install v86d

hwinfo --framebuffer

nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="vga=795"
GRUB_GFXMODE=1280x1024x32
GRUB_GFXPAYLOAD_LINUX=keep

sudo update-grub

lsmod | grep drm

sudo apt install fbset
vi /etc/fb.modes
fbset --test
fbset --help
fbset -xres 1280 -yres 1024 -depth 32
mplayer video.avi -vo fbdev2 -bpp 32


xrandr
Настройка основного монитора в Ubuntu без xrandr
xrandr --query # Возвращает список моих мониторов
xrandr --output <monitor identifier> --primary # установить основной

пример команды, для hdmi
xrandr --output eDP-1 --auto --output HDMI-1 --auto --same-as eDP-1


ssh
установка XRDP, VNC и SSH на Ubuntu и Debian
$ sudo apt install openssh-server
$ sudo systemctl enable sshd

$ ssh user@192.168.88.10
$ export DISPLAY=:0
$ nohup chromium "ya.ru"
$ ssh 192.168.0.100 'DISPLAY=:0 nohup vlc $HOME/Музыка/04\ Kadavergehorsam.mp3
$ ssh 192.168.0.100 'DISPLAY=:0 nohup notify-send "Hello" "World"'
$ ssh пользователь@комп 'команда1; команда2; команда3'
$ ssh root@192.168.88.10 'bash -s' < script.sh
$ ssh root@192.168.88.10 'uptime; df -h; free -m | cat /proc/loadavg'
$ ssh root@192.168.88.10 'reboot'
$ ssh user@192.168.88.10 "bash -s -- $args" < "$script"

Запуск графических приложений через SSH (X11Forwarding)
Настройка сервера
/etc/ssh/sshd_config
...
X11Forwarding yes
...
Перезагрузка
/etc/init.d/sshd restart

Настройка клиента
/etc/ssh/ssh_config
...
ForwardX11 yes

Запуск
Заходим на удаленный хост и потом запускаем приложение kopete

ssh -XC user1@remotehost
xterm
Сразу запустить приложение xterm

ssh -XC user1@remotehost "xterm"
Опции:
X : перенаправлять графический вывод
С : компрессия передаваемых данных

Подключение к рабочему столу Linux Ubuntu с использованием XDMCP.
nano /etc/lightdm/lightdm.conf 
Для разрешения TCP-подключений к графическому серверу X11, нужно в файл конфигурации lightdm.conf добавить строку :
xserver-allow-tcp=true

Для разрешения удаленных подключений к менеджеру дисплея нужно добавить секцию 
[XDMCPServer]
enabled=true

service lightdm restart 

netstat –na | more 

XDMCP и принимает входящие подключения на UDP порт 177 (по умолчанию) , а графический сервер (сервер X11 ) – принимает входящие подключения на порт 6000/TCP



Как "освободить" клавиши Ctrl+C, Ctrl+V, Ctrl+X в терминале
Вот какие действия обычно поддерживает любой Linux-терминал:

  • intr - Послать сигнал прерывания текущего процесса

  • quit - Послать сигнал выхода

  • erase - Удалить последний введенный символ

  • kill - Удалить текущую строку

  • eof - Послать конец файла (завершить ввод)

  • eol - Конец строки

  • eol2 - Альтернативный символ конца строки (Не-POSIX)

  • swtch - Переключиться на другой уровень оболочки (Не-POSIX)

  • start - Запустить вывод далее, если он был приостановлен

  • stop - Приостановить вывод

  • susp - Послать сигнал остановки терминала

  • dsusp - Послать сигнал остановки терминала после сброса ввода (Не-POSIX)

  • rprnt - Перерисовать текущую строку (Не-POSIX)

  • werase - Удалить последнее введенное слово (Не-POSIX)

  • lnext - Протолкнуть в ввод следующий символ, даже если это специальный символ


Чтобы узнать, к каким комбинациям клавиш привязаны действия, можно дать команду:
# stty -a
Сия команда выведет на консоль примерно такой текст:
speed 38400 baud; rows 35; columns 110; line = 0;
intr = ^C; quit = ^; erase = ^?; kill = ^U; ....

из него видно, что заняты комбинации клавиш Ctrl+C (^C) и Ctrl+V (^V) (а Ctrl+X, кстати, свободна).

Если писать точнее, то мы видим, что:
При нажатии комбинации Ctrl+C происходит действие intr. Действие intr означает отправку сигнала SIGINT, который сигнализирует консольной программе что нужно завершить работу.
При нажатии комбинации Ctrl+V происходит действие lnext. Это действие означает, что следующий вводимый символ надо воспринимать как символ, а не как команду (Последовательное нажатие Ctrl+V и Ctrl+A протолкнет в терминал символ ^A, имеющий код 01h).
Что мы должны сделать в такой ситуации, чтобы освободить Ctrl+C и Ctrl+V? Вначале подумать, а нужны ли нам действия intr и lnext. Действие intr вроде как нужно. А возникала ли у вас хоть раз необходимость в действии lnext? Нет? Значит, ненужно.
Почитав невнятную документацию по программе stty, кое-как можно понять, что для освобождения комбинации Ctrl+V нужно просто удалить привязанное к комбинации действие lnext. Для этого нужно воспользоваться командой:
# stty lnext undef

stty может перенастраиваться только на 26 букв латинского алфавита (и, возможно на некоторые знаки препинания), которые можно задавать десятичными кодами 1-26. Например, команда "stty intr 10" задаст для действия intr комбинацию Ctrl+J, т.к. буква J - десятая буква в латинском алфавите.
настроим действие intr на комбинацию Ctrl+Q (ибо Q - это "quit", "выход").
Обратите внимание, что команда "stty -a" показывает, что Ctrl+Q сопоставлено с действием start. Это действие вызывает команду "продолжать вывод на теринал после приостановки вывода" (приостановка вывода делается с помощью действия stop клавишами Ctrl+S).

Сначала нужно освободить комбинацию клавиш Ctrl+Q от действия start
# stty start undef

Затем выполняем команду:
# stty intr ^Q

и после нее, сразу, прерывание программы будет работать по Ctrl+Q (вместо традиционного для консоли Ctrl+C). Работу комбинации Ctrl+Q можно проверить на любой подходящей программе cat, top, и т.д.
Теперь вышеуказанные команды мы можем поместить в файл .bashrc в домашней директории, и терминал с этого момента будет запускаться со свободными комбинациями Ctrl+C и Ctrl+V.

Вперед в будущее: Wayland против X11
Виртуальные твари и места их обитания: прошлое и настоящее TTY в Linux
Оболочка и терминал Unix — это одно и то же?
Hello, World! Глубокое погружение в Терминалы
Linux: Difference between /dev/console , /dev/tty and /dev/tty0
Глава 18, TTY драйверы
Команды управления терминалом
Text-Terminal-HOWTO
Хрестоматия по программированию на Си в Unix 6.4. Сигналы.
Сетевые соединения X11

установка XRDP, VNC и SSH на Ubuntu и Debian.
скриншоты в иксах и консоли, разрешение экрана в tty
рабочий стол в консоли

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2025 09:26 am
Powered by Dreamwidth Studios