Консольные мультиплексоры и управление процессами
Цель:
Получить базовые навыки работы для работы с терминальным мультиплесором tmux
Задачи:
- Подключится к виртуальной машине на облачной платформе СПбГУТ
- Установить Tmux
- Научиться работать с Tmux.
- Установить Screen
- Научиться работать с 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
- 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} & | запуск процесса в фоновом режиме |
Задание управление процессами
-
Запустите в фоне 5 задач:
- htop
- watch ss -tulpan
- ping 8.8.8.8
- ping 192.168.0.1
- ping yandex.ru
-
Посмотрите список всех задач
jobs
-
По очереди переместите все задачи на передний план и верните их обратно в фон и снова проверьте список всех задач
-
Убейте все запущенные ранее процессы
Работа с анализатором пакетов 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