Linux что такое pts

Linux что такое pts

Когда процесс открывает /dev/ptmx , то он получает описатель файла для основного псевдотерминала (PTM, pseudo-terminal master), а в каталоге /dev/pts создается устройство подчиненного псевдотерминала (PTS, pseudo-terminal slave).

Каждый описатель файла, полученный открытием /dev/ptmx , является независимым PTM со своим отдельным ассоциированным PTS, путь к нему можно определить, передав описатель на ptsname (3).

Перед открытием подчиненного псевдотерминала вы должен передать описатель файла основного терминала на grantpt (3) и unlockpt (3).

Когда и основной и подчиненный псевдотерминалы будут открыты, подчиненный начинает обеспечивать процессы интерфейсом, идентичным обычному терминалу.

Данные, записываемые на подчиненный терминал, появляются на основном терминале, как поток ввода. Данные, записываемые на основной терминал, появляются на подчиненном терминале, как поток ввода.

На практике псевдотерминалы используются для реализации эмуляторов терминала, таких как xterm (1), где данные, считываемые с основного псевдотерминала, интерпретируются приложениями в том же виде, как и данные с обычного терминала; а также в программах, реализующих удаленный доступ, таких как sshd (8), где данные, считываемые с основного псевдотерминала, отправляются по сети в программу-клиент, подключенной к терминула или эмулятору терминала.

Псевдотерминалы также могут использоваться для отправления данных вводв в программы, не желающие принимать обычный ввод через перенаправление, например su (8), или passwd (8)).

ФАЙЛЫ


ЗАМЕЧАНИЯ

До этой схемы Unix98, основные псевдотерминалы назывались /dev/ptyp0 , . а подчиенные псевдотерминалы /dev/ttyp0 , . и для этого требовалось очень много предварительно размещенных записей для устройств.

Источник

что такое pts / 0 и (: 0.0) в linux при наборе кто я

Когда я набираю команду:

Что такое pts / 0 и что означает (: 0.0)?

Он pts/0 сообщает вам, на каком «псевдо-терминале» вошел пользователь. В данном случае это терминал № 0. «(: 0.0)» говорит вам, какое имя хоста и дисплей вы используете.

who am i это псевдоним команды who -m . Смотрите man-страницу для кого . Вы также можете прочитать о who команде здесь .

Вывод может определенно запутать новичка в Unix.

Читайте также:  Создание загрузочной флешки виндовс 10 linux

Примеры

шоу -m такое же как am i

подключен к некоторой удаленной системе

локально на моем ноутбуке

Последний бит, который все еще может сбить вас с толку, это :0.0 . Вот как X Windows представляет «дисплей», на котором находится пользователь. Первое «0» указывает, на каком мониторе / устройстве вы находитесь, второе «0» указывает, на каком виртуальном дисплее вы находитесь.

Это восходит к тем дням, когда компьютеры были дорогими, и поэтому несколько человек могли работать на одном компьютере одновременно. Я бы не беспокоился об этом, просто помните, что это будет либо «: 0.0», либо, возможно, «: 0». Переменная окружения «DISPLAY» и команда xhost используют значение «: 0.0».

Подробнее об удаленном отображении в Unix вы можете прочитать здесь .

whoami против who am i

Разве они не одна и та же команда? Нет, они разные

Также их вывод совершенно другой; whoami просто показывает ваш эффективный идентификатор пользователя, а who am i показывает информацию о соединении вашего терминала:

Смотрите whoami страницу руководства здесь .

pts обозначает псевдотерминал раб. Терминал (или консоль) традиционно представляет собой комбинацию клавиатуры и экрана, на которой вы сидите и печатаете. В старых коробках UNIX десятки из них висели сзади, и все они были связаны с милями кабеля. Псевдотерминал предоставляет точно такое же средство только без аппаратного обеспечения. Другими словами, это окно xterm или окно консоли, или любая другая утилита, которую вы используете. Они всплывают в жизни, когда вы их просите и получаете последовательные числа: pts / 0 , затем pts / 1 и так далее. Физическая консоль — это аппаратное обеспечение, которое фактически подключено к вашему устройству — у вас, вероятно, есть только одно. Это помечено » : 0 » и называется фактической «консолью».

вы найдете pts / 0 в списке, who если есть удаленное соединение с ssh :

Я один и единственный на моей машине:

Я подключен с другого компьютера к серверу ssh, поэтому я открыл удаленный терминал:

Источник

Что такое pts/2 и tty* при использовании команды ps

При использовании команд ps и ps -ax выводится колонка с названием TTY. В ней находятся значения pts/2, tty4 и прочие. Что они обозначают и как они могут пригодится администратору? Не связаны ли эти значения как то с файлами /dev/tty* и файлами внутри /dev/pts/ ? Встречал в литературе термин «виртуальный терминал», но так и не понял, что это. Ещё название «tty» встречается, когда открываешь виртуальную консоль. Но я так и не понял взаимосвязь всего этого.

Ты угадал, именно так и связаны.

Читайте также:  Arch linux обзор 2021

Это консоль, к которой привязано приложение. Если оно без привязки к консоли (демоны, например), будет ‘?’. tty — это виртуальная консоль линукса (та самая, что по Ctrl-Alt-F1 и далее). pts — это псевдотерминал, как правило — графическая консоль типа gnome-terminal, xterm и т.п.

Не связаны ли эти значения как то с файлами /dev/tty* и файлами внутри /dev/pts/

Анонимус вещает истину. Это они и есть.

Администратору эта колонка скажет, где искать вывод приложения (и ввод тоже, соответственно).

Это управляющий терминал. Думаю, что вам лучше почитать что-нибудь по самой концепции терминала.

tty* это виртуальные консоли, ttyS — последовательные порты. /dev/pts/* это псевдотерминалы. В обычных терминалах есть ядро и есть процесс, работающий с этим терминалом. Процесс читает/пишет данные в /dev/tty*, а ядро помещает туда ввод с клавиатуры и выводит данные на экран. В случае с псевдотерминалом всё, что читает/пишет процесс в /dev/pts/* обрабатывается другим процессом, например sshd или xterm. Ядро просто передаёт данные от одного процесса другому.

Источник

что pts /0 и (: 0.0) в linux при наборе тех, кто есть

Когда я набираю команду:

Что такое pts /0 и что означает (: 0.0)?

3 ответа

pts/0 сообщает вам, какой «псевдотерминал» пользователь вошел в систему. В этом случае это терминал № 0. «(: 0.0)» сообщает вам имя хоста и отображаемый вами экран.

who am i — это псевдоним команды who -m . См. справочную страницу для тех, кто . Вы также можете прочитать о команде who здесь .

Выход может определенно запутать новичку Unix.

примеры

показывает -m совпадает с am i

, подключенный к некоторой удаленной системе

локально на моем ноутбуке

Последний бит, который все еще может вас смутить, — это :0.0 . Вот как X Windows представляет собой «дисплей», на котором пользователь включен. Первый «0» говорит, какой монитор /устройство вы находитесь, второе «0» говорит, на каком виртуальном дисплее вы находитесь.

Это относится к тем временам, когда компьютеры были дорогими, и поэтому несколько человек могут работать на одном и том же компьютере одновременно. Я бы не стал беспокоиться об этом, просто помните, что это будет либо «: 0.0», либо, возможно, «: 0». Переменная среды «DISPLAY» и команда xhost используют значение «: 0.0».

Подробнее о удаленном отображении в Unix здесь .

whoami vs. who am i

Разве это не одна и та же команда? Нет, они разные:

Также их вывод совершенно другой; whoami просто показывает ваш эффективный идентификатор пользователя, а who am i показывает вам информацию о подключении вашего терминала:

Читайте также:  Windows 10 ltcs оригинальный образ

Источник

Что хранится в файлах / dev / pts и можем ли мы их открыть?

Насколько мне известно, /dev/pts файлы создаются для сеансов SSH или Telnet.

Ничего не хранится в /dev/pts . Эта файловая система живет исключительно в памяти.

Записи в /dev/pts являются псевдо-терминалами (pty для краткости). Ядра Unix имеют общее понятие терминалов . Терминал предоставляет приложениям способ отображать вывод и получать ввод через оконечное устройство . Процесс может иметь управляющий терминал — для приложения в текстовом режиме он взаимодействует с пользователем.

Терминалы могут быть аппаратными терминалами («tty», сокращенно от «teletype») или псевдо-терминалами («pty»). Аппаратные терминалы подключаются через некоторый интерфейс, такой как последовательный порт ( ttyS0 ,…) или USB ( ttyUSB0 ,…) или через экран компьютера и клавиатуру ( tty1 ,…). Псевдо-терминалы предоставляются эмулятором терминала, который является приложением. Некоторые типы псевдо-терминалов:

  • Приложения с графическим интерфейсом, такие как xterm, gnome-terminal, konsole,… преобразуют события клавиатуры и мыши в ввод текста и отображают вывод графически с использованием некоторого шрифта.
  • Приложения мультиплексора, такие как экран и релейный ввод и вывод tmux от и к другому терминалу, для отделения приложений текстового режима от реального терминала.
  • Приложения удаленной оболочки, такие как sshd, telnetd, rlogind,… ретранслируют вход и выход между удаленным терминалом на клиенте и pty на сервере.

Если программа открывает терминал для записи, вывод этой программы появляется на терминале. Обычно несколько программ выводят на терминал одновременно, хотя иногда это может сбивать с толку, поскольку невозможно определить, какая часть вывода получена от какой программы. Фоновые процессы, которые пытаются записать на свой управляющий терминал, могут автоматически приостанавливаться сигналом SIGTTOU .

Если программа открывает терминал для чтения, ввод от пользователя передается этой программе. Если несколько программ читают с одного терминала, каждый символ направляется независимо к одной из программ; это не рекомендуется. Обычно в данный момент времени с терминала активно читает только одна программа; программы, которые пытаются читать со своего управляющего терминала, пока они не находятся на переднем плане , автоматически приостанавливаются сигналом SIGTTIN .

Чтобы поэкспериментировать, запустите tty терминал, чтобы узнать, что это за терминальное устройство. Скажем так /dev/pts/42 . В оболочке другого терминала запустите echo hello >/dev/pts/42 : строка hello будет отображаться на другом терминале. Теперь запустите cat /dev/pts/42 и введите другой терминал. Чтобы убить эту cat команду (что затруднит использование другого терминала), нажмите Ctrl + C .

Запись в другой терминал иногда полезна для отображения уведомления; например, write команда делает это. Чтение с другого терминала обычно не выполняется.

Источник

Оцените статью