Перейти к основному контенту

Консольные мультиплексоры и управление процессами

Цель:

Приобрести навыки работы для работы с терминальными мультиплесорами

Задачи:

  1. Подключится к виртуальной машине на облачной платформе СПбГУТ
  2. Установить Tmux
  3. Научиться работать с Tmux.
  4. Установить Screen
  5. Научиться работать с Screen.

Установка Tmux

Подключиться к виртуальной машине и установить пакет Tmux

sudo yum install tmux

Работа с tmux

Создание сессии в tmux
tmux
Создание сессии с названием Test
tmux new -s Test
Управление внутри сессии:

Префикс(клавиши с которых начинаются команды) по умолчанию CTRL + B В дальнейшем будет сокращено до CB Сначала нажимается префикс в дальнейшем команда

  • CB + С (сначала прожать префикс, затем c) - Создание нового окна
  • CB + , - Переименовать текущее окно
  • CB + Shift + % - разделение экрана по вертикали
  • CB + Shift + " - разделение экрана по горизонтали
  • CB + T - Показать в панели текущее время
  • CB + Стрелки - переместиться на панель в которую указывает стрелка
  • CB + Зажатая стрелка - Изменить размер панели в зависимости от направлении стрелки
  • CB + D - Отключится от сессии Tmux, окна запущенные внутри останутся рабочими(свернутыми)
  • CB + X - закрыть панель
  • CB + w - посмотреть список открытых окон
  • CB + l - Подключится к прошлому(открытое до этого) окну
  • CB + n - Переключится к следующему окну
  • CB + p - переключится к прошлому окну
  • CB + {номер окна} - переключится к окну с необходимым окном
  • CB + Page Up - проскролить по терминалу выше
  • CB + Page Down - проскролить по терминалу ниже
  • CB + w - посмотреть список всех открытых сессий и открытых в ней окон
  • CB + f - поиск панели по названию
Подключится к сессии
tmux a

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

Подключение к сессии с названием Test
tmux a -t Test
Посмотреть список открытых сессий в tmux
tmux ls
Закрыть сессию в Test в Tmux
tmux kill-session -t Test
Закрыть все сессии в tmux
tmux kill-server
Задание Tmux

Cоздать 2 сессии

  • 1 сессия - название lab
    • first-window
    • second-window-
    • main
      • создать 3 окна согласно скриношоту
  • 2 сессия - название lab_2
    • session

Проверьте все ли правильно создано, сравнив с скриншотом

Работа с Screen

Установка Screen
sudo yum install -y screen
Создание сессии в screen

Создать сессию в screen можно с помощью команды

screen
Проверить, что вы зашли в screen можно выполним команду
echo $TERM

В ответе на эту команду у вас появится строка с названием вашего окружения с приставкой screen.

Создать новую сессию screen с названием newscreen
screen -S newscreen
Посмотреть список запущенных сессий
screen -ls
Подключится к работающей сессии screen c id 23771
screen -r 23771
Управление внутри сессии:

Префикс(клавиши с которых начинаются команды) по умолчанию CTRL + A В дальнейшем будет сокращено до CB Сначала нажимается префикс в дальнейшем команда

  • CB + С (сначала прожать префикс, затем c) - Создание нового окна
  • CB + A - Переименовать текущее окно
  • CB + | - разделение экрана по вертикали
  • CB + S - разделение экрана по горизонтали
  • CB + Tab - переместиться в следующую область
  • CB + Зажатая стрелка - Изменить размер панели в зависимости от направлении стрелки
  • CB + D - Отключится от сессии
  • CB + X - Удалить область
  • CB + Q - Закрыть все кроме текущей области
  • CB + x - заблокировать до введения пароля
  • CB + n - Переключится к следующему окну
  • CB + p - переключится к прошлому окну
  • CB + {номер окна} - переключится к окну с необходимым номером
  • CB + ? - шпаргалка по командам

Управления процессами в Linux

Команды для работы с задачами
Команда Описание
jobs Список всех задач
bg n Помещает текущее или указанное задание в фоновый режим, где n - ID задачи
fg n Выводит на передний план текущее или указанное задание, где n - ID задачи
CTRL + Z Останавливает задание на переднем плане и помещает его в фоновый режим
CTRL + C Отправить сигнал о прерывание(завершение) процесса в на переднем плане
{command} & запуск процесса в фоновом режиме
Задание управление процессами
  1. Запустите в фоне 5 задач:

    1. htop
    2. watch ss -tulpan
    3. ping 8.8.8.8
    4. ping 192.168.0.1
    5. ping yandex.ru
  2. Посмотрите список всех задач

    jobs
    
  3. По очереди переместите все задачи на передний план и верните их обратно в фон и снова проверьте список всех задач

  4. Убейте все запущенные ранее процессы

Работа с анализатором пакетов tcpdump

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

Синтаксис tcpdump
tcpdump {опции} -i {название интерфейса} {Фильтры}
опции tcpdump
Ключ опции Что делает
-A Вывод пакетов в кодировке ASCI
-c n перехватить n пакетов
-C n создание дампа трафика определенного размере, при генерации больше заданого создать новый файл для дампа, где n размер пакета по умолчанию указывается 1000000 байт

Добавив к значению суффикс k/K, m/M или g/G, единицу измерения можно изменить на 1,024 (КиБ), 1,048,576 (МиБ) или 1,073,741,824 (ГиБ) соответственно.
-D вывести список сетевых интерфейсов
-e выводить информацию уровня соединения для каждого пакета, это может быть полезно, например, для отображения MAC адреса
-n не отображать домены
-K не проверять контрольные суммы пакетов
-w {название дампа}.pcap запись вывода в файл
-r {название дампа}.pcap чтение дампа созданного с помощью ключа -w
-v -vv -vvv Более подробный вывод, желательно устанавливать -vvv, для дальнейшей работы
-q выводить минимум информации
Примеры работы с tcpdump

Просмотр всех интерфейсов

tcpdump -D 

Просмотр всего трафика на интерфейсе eth0 с адресом назначения 192.168.0.1

sudo tcpdump -i eth0 ip dst 192.168.0.1

Просмотр всего трафика на интерфейсе eth0 с адресом отправки 192.168.0.1

sudo tcpdump -i eth0 ip src 192.168.0.1

Просмотр всего трафика на интерфейсе eth0 с доменным именем назначения resds.ru

sudo tcpdump -i eth0 host dst resds.ru

Просмотр всего трафика на интерфейсе eth0 с доменном отправки resds.ru

sudo tcpdump -i eth0 host src resds.ru

Просмотр трафика на интерфейсу eth0 с использованием 80 порта

sudo tcpdump -i eth0 port 80

Просмотр трафика на интерфейсе eth0 использующих диапозон портов 80-443

sudo tcpdump -i eth0 portrange 80-443

Также для некоторых протоколов существуют готовые фильтры к примеру можно отфильтровать все arp пакеты интерфейса eth0

sudo tcpdump -i eth0 arp

Возможно филтрация по размеру пакета, так мы можем отфильтровать все пакеты меньше 64 байт

sudo tcpdump -i eth0 less 64

Фильтрация пакетов больше 64

sudo tcpdump -i eth0 greater 64

Сохранить весь udp трафик проходящий интерфейс eth0 в файл dump.pcap

sudo tcpdump -i eth0 udp -w dump.pcap

прочитать дамп dump.pcap

tcpdump -r dump.pcap

Использование SCP

SCP (secure copy) — это утилита командной строки, которая позволяет безопасно копировать файлы и каталоги между двумя локациями. Базовая технология для работы scp - это SSH(Secure Shell)

С помощью scp можно скопировать файл или каталог:

  • От локальной машины к удаленной.
  • От удаленной системы к вашей локальной машине.
  • Между двумя удаленными системами.
Синтаксис SCP
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
Опции SCP
ключ Что делает
-p порт ssh на удаленной системе
-r рекурсивное копирование
Сжатие при передаче на удаленное устройство
-i n использование ключа авторизации, где n путь к файлу ключа
-1 использовать SSH 1
-2 использовать SSH 2
-4 использовать IPv4
-6 использовать IPv6
-o ssh_option Возможность использовать дополнительные опции реализованные в протоколе SSH, на месте ssh_option используется ключи используемые ssh клиентом
-q Тихий режим
ничего не выводится во время передачи
Примеры использования

Перемещение файла foobar.txt с узла resds.ru под пользователем test в локальную домашнию директорию

scp test@resds.ru:foobar.txt ~/