Урок 7 из 8 · 20 мин · обновлено

Процессы, программы и сеть: top, apt, curl, ssh

Как посмотреть запущенные программы командами ps и top и остановить зависшую через kill, как устанавливать программы через apt, проверять сеть командами ping и curl и подключаться к серверу по SSH.

Процессы: ps, top, kill

Каждая запущенная программа — процесс. У процесса есть номер — PID — и владелец.

Терминал
ps aux | grep python

ps aux выводит все процессы системы, а grep оставляет нужные. Во втором столбце — PID.

top показывает процессы в реальном времени: кто сколько занимает процессора и памяти. Вверху — общая нагрузка. Выход — Q. Многие ставят более наглядный htop, он устанавливается командой из следующего раздела.

Если программа зависла, её останавливают по номеру:

Терминал
kill 4821
kill -9 4821

kill вежливо просит процесс завершиться: программа успеет сохранить данные. kill -9 завершает принудительно, без вопросов — это крайняя мера.

Программу можно запустить в фоне, добавив & в конце: python3 server.py &. Терминал сразу освободится для других команд.

Установка программ: apt

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

Терминал
sudo apt update
sudo apt install htop
sudo apt upgrade
sudo apt remove htop
  • apt update — скачать свежий список пакетов и версий. Сами программы при этом не меняются;
  • apt install — установить программу вместе со всем, что ей нужно;
  • apt upgrade — обновить установленные программы;
  • apt remove — удалить.

В других дистрибутивах свои менеджеры пакетов, например dnf в Fedora. На macOS популярен Homebrew: brew install htop.

Проверить, где находится программа и установлена ли она: which htop.

Сеть: ping и curl

Терминал
ping -c 3 ya.ru

ping проверяет, отвечает ли компьютер в сети и как быстро. -c 3 — три попытки. Без него ping работает бесконечно, остановить — Ctrl+C. Учтите: некоторые серверы на ping не отвечают специально.

Терминал
curl -I https://ya.ru

curl отправляет запрос к сайту или API и показывает ответ. -I — только заголовки ответа: код (200 — всё хорошо, 404 — не найдено), тип содержимого, дату. Без -I curl выведет саму страницу. Скачать файл: curl -O адрес. С curl удобно проверять API — подробно запросы и ответы разобраны в курсе «Postman и API для начинающих».

Удалённый сервер: ssh и scp

Серверы стоят в дата-центрах, и работают с ними через SSH — защищённое подключение к командной строке другого компьютера:

Терминал
ssh anna@203.0.113.10

При первом подключении SSH спросит, доверяете ли вы серверу, — ответьте yes. После входа приглашение сменится на anna@server:~$: теперь все команды выполняются на сервере. Выйти — exit.

Вместо пароля обычно используют ключи: пару файлов, которую создаёт команда ssh-keygen. Публичный ключ кладут на сервер, а личный никому не передают — права на него 600, как в прошлом уроке.

Скопировать файл на сервер и обратно — scp:

Терминал
scp report.txt anna@203.0.113.10:/home/anna/
scp anna@203.0.113.10:/var/log/app.log .

Попробуйте сами. Установите htop, запустите его и найдите процесс своего терминала. Затем проверьте командой curl -I, какой код ответа вернёт адрес несуществующей страницы, например https://ya.ru/no-such-page-123.

Решение
Терминал
sudo apt update
sudo apt install htop
htop
curl -I https://ya.ru/no-such-page-123

В htop процесс оболочки называется bash. Поиск — клавиша F3, выход — Q или F10.

curl -I для несуществующей страницы обычно вернёт строку с кодом 404 — «не найдено». Некоторые сайты вместо этого перенаправляют на главную: тогда будет код 301 или 302, а адрес перехода — в строке location.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Что такое PID?

  2. Зачем перед установкой программы выполняют sudo apt update?

  3. Как подключиться к серверу 203.0.113.10 под пользователем anna?