Windows device console (devcon.exe)

5.3 Управляющие терминалы /dev/tty

/dev/tty означает управляющий терминал (если есть) для текущего процесса
(процесс, который использует «/dev/tty» в команде). Чтобы выяснять, к которому
tty присоединен процесс, используют команда «ps -a» в командной строке.
Посмотрите столбец «tty». Для оболочки, в которой вы находитесь, /dev/tty —
это терминал, который вы сейчас используете.

Напечатайте «tty» в командной строке, чтобы увидеть название терминала (см.
man tty(1)). /dev/tty — нечто вроде связи с фактически именем устройства
терминала с некоторыми дополнительными возможностями для программистов на C :
см. man tty(4).

Samples

Example of SGR terminal sequences

The following code provides several examples of text formatting.

Note

In the previous example, the string » is the implementation of ESC [ <n> m with <n> being 31.

The following graphic shows the output of the previous code example.

Example of Enabling Virtual Terminal Processing

The following code provides an example of the recommended way to enable virtual terminal processing for an application. The intent of the sample is to demonstrate:

  1. The existing mode should always be retrieved via GetConsoleMode and analyzed before being set with SetConsoleMode.

  2. Checking whether SetConsoleMode returns and GetLastError returns ERROR_INVALID_PARAMETER is the current mechanism to determine when running on a down-level system. An application receiving ERROR_INVALID_PARAMETER with one of the newer console mode flags in the bit field should gracefully degrade behavior and try again.

Example of Select Anniversary Update Features

The following example is intended to be a more robust example of code using a variety of escape sequences to manipulate the buffer, with an emphasis on the features added in the Anniversary Update for Windows 10.

This example makes use of the alternate screen buffer, manipulating tab stops, setting scrolling margins, and changing the character set.

Text Modification

All commands in this section are generally equivalent to calling FillConsoleOutputCharacter, FillConsoleOutputAttribute, and ScrollConsoleScreenBuffer console APIs to modify the text buffer contents.

Sequence Code Description Behavior
ESC [ <n> @ ICH Insert Character Insert <n> spaces at the current cursor position, shifting all existing text to the right. Text exiting the screen to the right is removed.
ESC [ <n> P DCH Delete Character Delete <n> characters at the current cursor position, shifting in space characters from the right edge of the screen.
ESC [ <n> X ECH Erase Character Erase <n> characters from the current cursor position by overwriting them with a space character.
ESC [ <n> L IL Insert Line Inserts <n> lines into the buffer at the cursor position. The line the cursor is on, and lines below it, will be shifted downwards.
ESC [ <n> M DL Delete Line Deletes <n> lines from the buffer, starting with the row the cursor is on.

Note

For IL and DL, only the lines in the scrolling margins (see Scrolling Margins) are affected. If no margins are set, the default margin borders are the current viewport. If lines would be shifted below the margins, they are discarded. When lines are deleted, blank lines are inserted at the bottom of the margins, lines from outside the viewport are never affected.

For each of the sequences, the default value for <n> if it is omitted is 0.

For the following commands, the parameter <n> has 3 valid values:

  • 0 erases from the current cursor position (inclusive) to the end of the line/display
  • 1 erases from the beginning of the line/display up to and including the current cursor position
  • 2 erases the entire line/display
Sequence Code Description Behavior
ESC [ <n> J ED Erase in Display Replace all text in the current viewport/screen specified by <n> with space characters
ESC [ <n> K EL Erase in Line Replace all text on the line with the cursor specified by <n> with space characters

Доступ к TTY

Вы можете получить доступ к полноэкранному сеансу TTY, удерживая клавиши Ctrl + Alt и нажав одну из функциональных клавиш.

Ctrl + Alt + F3 вызовет приглашение входа в систему tty3.

Если вы войдете в систему и команду , вы увидите, что вы подключены к / dev / tty3.

Это не псевдотелептик (эмулируемый программным обеспечением); это виртуальный телетайп (эмулируется аппаратно). Он использует экран и клавиатуру, подключенные к вашему компьютеру, для эмуляции виртуального телетайпа, как это делал DEC VT100.

Вы можете использовать функциональные клавиши Ctrl + Alt с функциональными клавишами от F3 до F6, и при желании вы можете открыть четыре сессии TTY. Например, вы можете войти в tty3 и нажать Ctrl + Alt + F6, чтобы перейти к tty6.

Чтобы вернуться к графическому окружению рабочего стола, нажмите Ctrl + Alt + F2.

Нажатие Ctrl + Alt + F1 вернет вас к приглашению на вход в сеанс графического рабочего стола.

Однажды, Ctrl + Alt + F1 до Ctrl + Alt + F6 откроет полноэкранные консоли TTY, а Ctrl + Alt + F7 вернет вас в среду графического рабочего стола. Если вы работаете с более старым дистрибутивом Linux, возможно, именно так ведет себя ваша система.

Это было проверено на текущих версиях Manjaro, Ubuntu и Fedora, и все они вели себя так:

  1. Ctrl + Alt + F1 : возвращает вас к экрану входа графического окружения рабочего стола.
  2. Ctrl + Alt + F2 : возвращает вас в графическое окружение рабочего стола.
  3. Ctrl + Alt + F3 : открывает TTY 3.
  4. Ctrl + Alt + F4 : открывает TTY 4.
  5. Ctrl + Alt + F5 : открывает TTY 5.
  6. Ctrl + Alt + F6 : открывает TTY 6.

Доступ к этим полноэкранным консолям позволяет людям, использующим установки Linux только из командной строки — и многие серверы Linux настроены таким образом, — иметь несколько доступных консолей.

Вы когда-нибудь работали на машине с Linux с графическим окружением рабочего стола и что-то вызывало зависание вашей сессии? Теперь вы можете перейти к одному из сеансов консоли TTY, чтобы попытаться исправить ситуацию.

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

СВЯЗАННЫЕ: Как убить процессы с терминала Linux

Классификация файлов устройств

Файлы устройств можно классифицировать по меньшей мере двумя способами. Первая и наиболее широкая классификация — на основе потока данных. В устройствах TTY и других символьных устройствах, данные обрабатываются по одному символу или байту за раз. В блочных устройствах, таких как жесткие диски данные передаются блоками, как правило, с размером, кратным 256 байт.

Если вы еще этого не делали, то перейдите в папку /dev/ и посмотрите список находящихся там файлов с помощью команды ls. Вы увидите очень длинный список файлов с их правами доступа, владельцами и группами — это список устройств linux

Обратите внимание на самый первый символ в каждой строке. Он указывает тип устройства.  Символом «b» — обозначаются блочные устройства linux (block), а символом «c» — символьные (character)

Более точно можно идентифицировать устройства по их младшему и старшему номеру. Например, жесткие диски имеют старший номер 8, что обозначает их как блочные устройства SCSI

Обратите внимание, что все жесткие диски PATA и SATA находятся под управлением SCSI.  Раньше использовалась подсистема ATA, но она уже устарела, поэтому диски, которые раньше обозначались как hd теперь обозначаются sd

Window Title

The following commands allows the application to set the title of the console window to the given <string> parameter. The string must be less than 255 characters to be accepted. This is equivalent to calling SetConsoleTitle with the given string.

Note that these sequences are OSC “Operating system command” sequences, and not a CSI like many of the other sequences listed, and as such starts with “\x1b]”, not “\x1b[”. As OSC sequences, they are ended with a String Terminator represented as and transmitted with (). () may be used instead as the terminator, but the longer form is preferred.

Sequence Description Behavior
ESC ] 0 ; <string> <ST> Set Window Title Sets the console window’s title to <string>.
ESC ] 2 ; <string> <ST> Set Window Title Sets the console window’s title to <string>.

The terminating character here is the “Bell” character, ‘\x07’

Query State

All commands in this section are generally equivalent to calling Get* console APIs to retrieve status information about the current console buffer state.

Note

These queries will emit their responses into the console input stream immediately after being recognized on the output stream while ENABLE_VIRTUAL_TERMINAL_PROCESSING is set. The ENABLE_VIRTUAL_TERMINAL_INPUT flag does not apply to query commands as it is assumed that an application making the query will always want to receive the reply.

Sequence Code Description Behavior
ESC [ 6 n DECXCPR Report Cursor Position Emit the cursor position as: ESC [ <r> ; <c> R Where <r> = cursor row and <c> = cursor column
ESC [ 0 c DA Device Attributes Report the terminal identity. Will emit “\x1b[?1;0c”, indicating «VT101 with No Options».

Аппаратно-эмулированные телетайпы

Телетайпы стали стандартным средством взаимодействия с мини-компьютерами и большими мейнфреймами той эпохи.

С течением времени телетайпы были заменены на электронные устройства, которые имитировали электромеханическое строение телетайпов. Но при этом, в этих устройствах вместо рулонов бумаги использовались электронно-лучевые трубки (ЭЛТ), они не тряслись при доставке ответов с компьютера и допускали доселе невозможные функции, такие как: перемещение курсора по экрану, очистка экрана, выделение текста жирным шрифтом и так далее.

Видеотерминал DEC VT05 был ранним примером виртуального телетайпа и предком знаменитого DEC VT100. Продажи DEC VT100 исчислялись миллионами штук.

Доступ к телетайпу

Вы можете получить доступ к полноэкранному сеансу TTY, удерживая клавиши Ctrl+Alt и нажав одну из функциональных клавиш.

Ctrl+Alt+F3 вызовет приглашение входа на tty3.

Если вы войдёте в систему и введёте команду tty, вы увидите, что подключены к /dev/tty3.

Это не псевдотелетайп (эмулируемый в программном обеспечении); это виртуальный телетайп (эмулируемый аппаратно). Он использует экран и клавиатуру, подключённые к вашему компьютеру, для имитации виртуального телетайпа, как это делал DEC VT100.

Вы можете использовать функциональные клавиши Ctrl+Alt с функциональными клавишами от F3 до F6 и при желании открыть четыре сеанса телетайпа. Например, вы можете войти в tty3 и нажать Ctrl+Alt+F6, чтобы перейти на tty6.

Чтобы вернуться в графическую среду рабочего стола, нажмите Ctrl+Alt+F2.

Нажав Ctrl+Alt+F1, вы вернётесь в окно входа в систему в сеансе графического рабочего стола.

Сочетания клавиш Ctrl+Alt+F1 до Ctrl+Alt+F6 откроются полноэкранные консоли TTY, а Ctrl+Alt+F7 вернёт вас в графическую среду рабочего стола. Такое поведение может быть на более старых дистрибутивах Linux.

Это было протестировано на текущих выпусках Manjaro, Ubuntu и Fedora, и все они вели себя следующим образом:

  • Ctrl+Alt+F1: возврат к экрану входа в графическую среду рабочего стола.
  • Ctrl+Alt+F2: возврат в графическую среду рабочего стола.
  • Ctrl+Alt+F3: открывает TTY 3.
  • Ctrl+Alt+F4: открывает TTY 4.
  • Ctrl+Alt+F5: открывает TTY 5.
  • Ctrl+Alt+F6: открывает TTY 6.

У Kali Linux графический интерфейс открывается при нажатии Ctrl+Alt+F7.

Наличие доступа к этим полноэкранным консолям позволяет людям, использующим установки Linux только из командной строки — а многие серверы Linux настроены таким образом — иметь несколько доступных консолей.

Вы когда-нибудь работали на Linux-машине с графической средой рабочего стола и что-то заставляло ваш сеанс зависать? Теперь вы можете перейти к одному из сеансов консоли TTY, чтобы попытаться исправить ситуацию.

Вы можете использовать top и ps, чтобы попытаться идентифицировать отказавшее приложение, затем используйте kill, чтобы завершить его, или просто используйте shutdown, чтобы попытаться завершить работу настолько изящно, насколько позволяет состояние компьютера.

Примеры использования Hping3

Простой тест ping

Мы можем использовать этот инструмент как обычную команду ping, получая практически те же результаты. Для этого нам просто нужно набрать:

И мы увидим, как выполняется этот простой тест подключения. (Мы можем изменить домен Google на любой другой или напрямую использовать IP-адрес для проверки связи).

Путь подключения участка

Аналогично опции «tracert» в Windows или «traceroute» в Linux, с помощью этого инструмента мы также можем отслеживать все переходы между сетями пакета, начиная с момента, когда он покидает наш компьютер, до тех пор, пока он не достигнет пункта назначения, имея возможность в любой момент узнать, есть ли какие-то проблемы подключение.

Для этого нам просто нужно набрать:

Сканирование портов с использованием флага TCP SYN

Этот инструмент также позволяет нам отправлять пакеты по протоколу TCP в чистом виде. Nmap стиль. Чтобы выполнить сканирование этим методом, мы введем в терминал «hping3 –S –p », и результат будет примерно таким:

Результат этого теста вернет SA флаг, что означает, что он соответствует SYN / ACK , то есть сообщение принято или, что то же самое, порт открыт . В противном случае, если значение равно РА это соответствует RST / ACK или что то же самое, что сообщение было выполнено неправильно, потому что порт закрыт или фильтрованный.

Таким образом, мы сможем узнать, например, разрешено ли соединение с определенным портом или фильтрует ли его брандмауэр.

Подписывать пакеты с помощью настраиваемого текстового файла

Этот инструмент можно использовать для изменения отправляемых нами пакетов и вставки в них персонализированного сообщения, похожего на подпись. Для этого нам просто нужно набрать:

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

Введенные параметры означают:

  • -d: длина сообщения, которое мы собираемся ввести, в данном случае 50.
  • -E: файл, из которого мы собираемся взять подпись сообщения, которую мы хотим представить пакетам.

Мы также можем использовать другие параметры, например, -p, чтобы указать порт, на который мы хотим отправлять эти пакеты, или -2, чтобы отправлять пакеты через протокол UDP.

Сгенерируйте несколько запросов для тестирования защиты от DoS и DDoS

Этот инструмент также позволит нам проверить стабильность нашей системы против сетевых атак, таких как DoS и DDoS, генерируя реальные тесты либо в отношении localhost, либо в отношении другого сервера внутри (или вне) сети.

Мы можем сделать серию уникальных эхо-запросов, изменив исходный IP-адрес того же самого в пакетах TCP / IP, просто набрав:

Точно так же мы можем добавить параметр –flood, чтобы пакеты отправлялись в режиме реального времени большими партиями. Таким образом, мы сможем проверить, во-первых, работает ли наш брандмауэр и, во-вторых, насколько хорошо наша система реагирует на угрозу DDoS-атаки.

Для этого мы наберем:

Всего за пару секунд мы сгенерировали более 25,000 XNUMX пакетов, поэтому мы должны быть осторожны, поскольку наша сеть может быть заблокирована и непригодна для использования.

При этом начнет генерироваться большое количество пакетов с «ложным происхождением» (благодаря параметру rand-source), которые будут непрерывно отправляться на сервер назначения (в данном случае 192.168.1.1). Таким образом, мы можем проверить устойчивость нашей системы к DDoS-атакам, поскольку, если система перестает работать или выходит из строя, может произойти сбой конфигурации, и мы должны принять соответствующие меры, чтобы этого не произошло в реальной среде.

Этот инструмент очень полезен, хотя его всегда следует использовать в закрытых и контролируемых средах, поскольку, выходя за пределы, мы можем в конечном итоге провести атаку отказа в обслуживании на команду, чего мы не должны, это незаконно и может в конечном итоге подвергнуться санкциям для этого.

Мы рекомендуем вам получить доступ к официальной странице человека hping чтобы узнать все возможные варианты.

Adding new commands & variables

The developer console is a subsystem provided by the Source engine and is accessible for all other modules via a public interface ( see ). This interface allows registering new commands and finding/iterating existing commands. This interface is available via the global CVAR in-game server/client code (cv in engine code). Console commands are implemented in and console_variables in , which both derive from the base class (see ).

Adding a new command or variable is fairly simple and the same code in both server and client (even engine) modules. The constructor of these classes automatically registers the command at the console system. This short example code adds a new command my_function and a new variable my_variable initialized to 42:

#include <convar.h>
ConVar my_variable( "my_variable", "42", FCVAR_ARCHIVE, "My favorite number" );	

void MyFunction_f( void )
{
    Msg("This is my function\n");
}

ConCommand my_function( "my_function", MyFunction_f, "Shows a message.", FCVAR_CHEAT );

It is common use that the object name and the command name are the same and variables used only in a single source file are declared as static.

Cursor Visibility

The following commands control the visibility of the cursor and its blinking state. The DECTCEM sequences are generally equivalent to calling SetConsoleCursorInfo console API to toggle cursor visibility.

Sequence Code Description Behavior
ESC [ ? 12 h ATT160 Text Cursor Enable Blinking Start the cursor blinking
ESC [ ? 12 l ATT160 Text Cursor Disable Blinking Stop blinking the cursor
ESC [ ? 25 h DECTCEM Text Cursor Enable Mode Show Show the cursor
ESC [ ? 25 l DECTCEM Text Cursor Enable Mode Hide Hide the cursor

Tip

The enable sequences end in a lowercase H character () and the disable sequences end in a lowercase L character ().

/DEV /TTY

является одним из трех стандартных файлы устройств, указанные в POSIX (, являющийся одним из трех стандартных каталогов). Открытие его эквивалентно открытию управляющего терминала текущего процесса. Контрольный терминал устанавливается, когда процесс сначала открывает терминал, по крайней мере в Linux . Например, в он ссылается на .

Отключение от управляющего терминала является одним из шагов, традиционно требуемых для запуска фонового процесса, например демон протоколирования системы . Шаги, чтобы стать фоновым процессом, ужасно сложны, но, если быть конкретным, шаг, который отделяется от управляющего терминала, это setid systemd call. В более современных системах система инициализации, например, systemd запускает сервис без какого-либо управляющего терминала.

Команда tty

В Linux существует мультиплексор псевдо-телетайпов, который обрабатывает соединения со всех терминалов псевдо-телетайпов (PTS). Мультиплексор является ведущим устройством, а PTS — подчиненными. Мультиплексор общается с ядром через файл устройства, расположенный в /dev/ptmx.

Команда tty выводит имя специального файла устройства, который ваш ведомый псевдо-телетайп использует для взаимодействия с ведущим устройством. И это, по сути, номер вашего окна терминала.

Давайте посмотрим, какую информацию выведет команда для нашего окна терминала:

Как видите, мы подключены к специальному файлу устройства /dev/pts/1.

Наше окно терминала, представляющее собой программную эмуляцию телетайпа (TTY), подключено к мультиплексору псевдо-телетайпа как псевдо-телетайп (PTS) под номером 1.

Тихий режим

Опция (silent) приводит к тому, что команда перестает генерировать выходные данные:

Некоторые служебные значения, возвращаемые командой tty:

    — если стандартный ввод поступает с устройства TTY (эмулированного или физического).

    — если стандартный ввод не поступает с устройства TTY.

    — синтаксическая ошибка, использовались неправильные параметры командной строки.

    — произошла ошибка записи.

Данные значения будут наиболее полезны при написании bash-скриптов. Но даже в командной строке мы можем продемонстрировать, как выполнить команду при условии, что вы работаете в окне терминала (сеанс TTY или PTS).

Примечание: Оператор является логическим оператором И. Если в командной строке находится , то выполняется только в том случае, если статус выхода из команды равен , что говорит об успешном её завершении.

Поскольку мы работаем в сеансе TTY, наш код выхода равен (успех), и выполняется вторая команда.

What you can do with DevCon

Windows driver developers and testers can use DevCon to verify that a driver is installed and configured correctly, including the proper INF files, driver stack, driver files, and driver package. You can also use the DevCon commands (enable, disable, install, start, stop, and continue) in scripts to test the driver.

DevCon is a command-line tool that performs device management functions on local computers and remote computers.

Note

To run DevCon commands on a remote computer, the Group Policy setting must allow the Plug and Play service to run on the remote computer. On computers that run Windows Vista and Windows 7, the Group Policy disables remote access to the service by default. On computers that run Windows 8 and later operating systems, the remote access is unavailable.

Devcon features include:

  • Display driver and device info DevCon can display the following properties of drivers and devices on local computers, and remote computers (running Windows XP and earlier):

    • Hardware IDs, compatible IDs, and device instance IDs. These identifiers are described in detail in Device Identification Strings.
    • Device setup classes
    • The devices in a device setup class
    • INF files and device driver files
    • Details of driver packages
    • Hardware resources
    • Device status
    • Expected driver stack
    • Third-party driver packages in the driver store
  • Search for devices DevCon can search for devices on a local or remote computer by hardware ID, device instance ID, or device setup class.

  • Change device settings DevCon can change the status or configuration of Plug and Play (PnP) devices on the local computer in the following ways:

    • Enable a device
    • Disable a device
    • Update drivers (interactive and noninteractive)
    • Install a device (create a devnode and install software)
    • Remove a device from the device tree and delete its device stack
    • Rescan for Plug and Play devices
    • Add, delete, and reorder the hardware IDs of root-enumerated devices
    • Change the upper and lower filter drivers for a device setup class
    • Add and delete third-party driver packages from the driver store
  • Restart the device or computer DevCon can restart a local device, reboot the local system on demand, or reboot the local system if required for another DevCon operation.

5.1 Терминал на последовательном порту

Компьютер рассматривает терминал как устройство на последовательном порту.

Для каждого такого терминала имеется специальный файл в каталоге (устройств)
/dev. /dev/ttyS0 — специальный файл для последовательного порта, известный как
COM1 в мире DOS/Windows. Чтобы посылать текст терминалу, вы можете
переназначить стандартный вывод некоторой команды в командной строке
соответствующему специальному файлу. Например команда «echo test> /dev/ttyS1»
должна послать слово «test» на терминал, подключенный к COM2 (подразумевается,
что вам разрешена запись в /dev/ttyS1). Точно так же
«cat my_file > /dev/ttyS0» пошлет содержание файла my_file в COM1 (ttyS0).

В дополнение к ttyS0 (/dev/ttyS0), ttyS1, ttyS2, и т.д. («S» означает
последовательный порт) имеется также ряд устройств «cua»: cua0, cua1, cua2,
и т.д.

сua0 — тот же самый порт как ttyS0 и т.д. «Cu» cua означает CalloUt. Серия
устройств ttyS соответствуют Posix, в то время как при использование cua можно
открыть порт, про который линии управления модемом говорят, что он не готов.
Это говорит о том, что ряд cua включен только для обратной совместимости, так
что вы видимо должны использовать ряд ttyS.

Using the ConVar class

ConVars store variables that can be altered through the console and (optionally) saved in config.cfg. Let’s take a look at the most used constructor:

ConVar( char const *pName,
	char const *pDefaultValue,
	int flags,
	char const *pHelpString )

The first argument is the variable name (no spaces), followed by , which is always given as a string even for ConVars with numerical values. specify special characteristics of the variable — all flag definitions start with a prefix. More information about these flags can be found . It’s always good to provide a , so users get an idea what this variable is about. ConVars are not bound to a certain type, their value can be an integer or a float or string and you may use it however you like. As long as you have the ConVar object itself or as a pointer, you can access and modify its values directly. All these examples are valid and have the same result:

if ( my_variable.GetInt() == 42 ) DoSomething();
if ( my_variable.GetFloat() == 42.0f ) DoSomething();
if ( strcmp(my_variable.GetString(), "42")== ) DoSomething();

To set the value of a ConVar you should use the function, which also allows all types of data:

my_variable.SetValue( 42 );
my_variable.SetValue( 42.0f );
my_variable.SetValue( "42" );

At any time you can revert a ConVar back to it’s original default value by using the function.

If a ConVar is created in a different module, the interface function can be used to get a pointer to this object, if the variable name is known. This is an expensive search function and the pointer should be cached if reused often. Here is an example how to check the ConVar sv_cheats defined in the engine module:

ConVar *pCheats  = cvar->FindVar( "sv_cheats" );

	if ( pCheats && pCheats->GetInt() == 1 ) AllowCheating();

A range of valid values can be specified for numerical ConVars using a different constructor. Then a ConVar is automatically checked by the console system whenever changed manually. If the entered number is out of range, it’s rounded to the next valid value. Setting valid range from 1 to 100:

ConVar my_variable( "my_variable", "42", , "helptext", true, 1, true, 100 );

Sometimes you also want a notification when a user’s or another subsystem changes your ConVar value, therefore a callback function can be installed:

static void OnChangeMyVariable ( IConVar *var, const char *pOldValue, float flOldValue )
{
	DevMsg( "ConVar %s was changed from %s to %s\n", var->GetName(), pOldValue, (( ConVar* )var)->GetString() );
}

ConVar my_variable( "my_variable", "42", , "My favorite number", OnChangeMyVariable );

Команды Linux, связанные с процессом

Эти команды используются для обработки процессов Linux

55. ps

Команда Linux ps — это встроенный инструмент для отслеживания текущих процессов в системе. Он будет фиксировать состояние системы за один раз.

56. pmap

Команда pmap отображает карту использования памяти процесса или нескольких процессов. Pmap сообщает информацию об адресном пространстве или карте использования памяти процесса.

57. top

Команда top в Linux отображает запущенные процессы в системе. Эта команда широко используется для мониторинга нагрузки на сервер.

58. kill

Команда kill используется в Linux и других Unix-подобных операционных системах для завершения процессов без необходимости выхода из системы или перезагрузки компьютера.

59. killall

Команда killall может использоваться для отправки сигнала определенному процессу, используя его имя. Это означает, что если у вас запущено пять версий одной и той же программы, команда killall уничтожит все пять.

60. pkill

Аналогично команде killall, pkill посылает сигнал для завершения процесса с его именем. Начиная с Centos 7 рекомендуется использовать pkill.

61. fg и bg

Мы можем запускать задания в фоновом режиме без какого-либо вмешательства пользователя. Процессы, которые были остановлены каким-либо сигналом прерывания, могут быть продолжены в фоновом режиме с помощью команды bg. Команда fg похожа на команду bg, за исключением того, что вместо отправки команды в фоновом режиме она запускает их на переднем плане, занимает текущий терминал и ожидает завершения процесса.

Alternate Screen Buffer

*Nix style applications often utilize an alternate screen buffer, so that they can modify the entire contents of the buffer, without affecting the application that started them. The alternate buffer is exactly the dimensions of the window, without any scrollback region.

For an example of this behavior, consider when vim is launched from bash. Vim uses the entirety of the screen to edit the file, then returning to bash leaves the original buffer unchanged.

Sequence Description Behavior
ESC [ ? 1 0 4 9 h Use Alternate Screen Buffer Switches to a new alternate screen buffer.
ESC [ ? 1 0 4 9 l Use Main Screen Buffer Switches to the main buffer.

5.2 Псевдотерминалы

Псевдо терминалы не имеют уникального физического разъема на компьютере.

Они используются для эмуляции последовательного порта. Например, если кто-то
соединяется через telnet с вашим компьютером по сети, они могут подсоединиться
к устройству /dev/ptyp2 (порт псевдотерминала). В XWINDOWS, программа эмуляции
терминала xterm использует псевдотерминалы.

Также его используют программы любительского радио. При использовании
некоторого прикладного программного обеспечения можно иметь 2 или более
псевдотерминала, присоединенных на один и тот же физический последовательный
порт.

Псевдотерминалы образуют пары типа ttyp3 и ptyp3. pty… — это хозяин или
управляющий терминал, а tty… — подчиненный. ttyq5 — также псевдотерминал,
как — ttysc (с — шестнадцатеричная цифра).

Более точно, главные псевдотерминалы — /dev/ptyn, а соответствующие
подчиненные — /dev/ttyn, где n — шестнадцатеричная цифра.

Телепринтеры 1800-х годов

В 1830-х и 1840-х годах были разработаны машины, известные как телепринтеры . Эти машины могут отправлять печатные сообщения «по проводам» в отдаленные места. Сообщения были набраны отправителем на своего рода клавиатуре. Они были напечатаны на бумаге на приемном конце. Они были эволюционным шагом в телеграфии , которая ранее опиралась на азбуку Морзе и подобные ей коды.

Сообщения были закодированы и переданы, затем получены, декодированы и напечатаны. Было несколько методов, используемых для кодирования и декодирования сообщений. Самый известный и один из самых плодовитых был запатентован в 1874 году Эмилем Бодо , для которого названа скорость передачи данных . Его схема кодирования символов предшествует ASCII на 89 лет.

Кодирование Бодо в конечном итоге стало наиболее близким к стандарту в кодировании телепринтера, и оно было принято большинством производителей. Оригинальный аппаратный дизайн Бодо имел всего пять клавиш, похожих на клавиши пианино. Оператор должен был выучить конкретную комбинацию клавиш для каждой буквы. В итоге система кодирования Baudot была соединена с традиционной раскладкой клавиатуры.

Чтобы отметить это продвижение, машины были названы телетайпами. Это было сокращено до телетайпа и в конечном итоге до TTY. Так вот откуда мы получаем аббревиатуру TTY, но при чем тут телеграфия?

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: