В этом посте собраны 7 команд для анализа проблем при старте системы: от времени запуска сервисов до задержек диска и ошибок драйверов. dmesg, top, iostat, systemd-analyze, journalctl, lsblk, smartctl — всё, что нужно, чтобы быстро понять, что тормозит загрузку.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍7🤝5❤1
В этой статье:
• Автор последовательно показывает, как избавиться от традиционной загрузки с SD-карты и перейти на сетевую загрузку;
• Пошагово настраивается среда для сетевой загрузки с использованием DHCP, TFTP и NFS;
• Разбираются особенности загрузочного процесса Raspberry Pi;
• Приводится готовый Docker-образ и конфигурации.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍10🤝9❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Руководство охватывает около 60 основных Bash-команд с примерами и пояснениями, что позволяет быстро понять их назначение и применение. Каждая команда сопровождается примерами использования и краткими рекомендациями, поэтому ресурс удобно использовать как справочник при работе с терминалом или при изучении Linux с нуля.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤝7👍6❤2
Как понять, что делает процесс в Linux?
Бывает ситуация, когда процесс есть, но непонятно, что он делает. В Linux можно смотреть системные вызовы.
Подключаемся к живому процессу:
Видно, какие файлы он открывает, читает или не может найти.
Если подозрение на сеть:
Покажет сетевые
Если нужно понять поведение целиком:
Флаг
🔥 Это часто даёт ответ быстрее, чем чтение кода или логов, особенно при работе с чужими бинарями, контейнерами или нестабильными сервисами.
🚪 Linux Ready | #совет
Бывает ситуация, когда процесс есть, но непонятно, что он делает. В Linux можно смотреть системные вызовы.
Подключаемся к живому процессу:
strace -e trace=%file -p <PID>
Видно, какие файлы он открывает, читает или не может найти.
Если подозрение на сеть:
strace -e trace=%network -p <PID>
Покажет сетевые
syscalls (connect, send*, recv*).Если нужно понять поведение целиком:
strace -f -o trace.log your_command
Флаг
-f отслеживает дочерние процессы, а лог можно спокойно разобрать позже.Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Помогает быстро разобраться в работе с терминалом. Здесь собраны ключевые вещи: переменные, условия, циклы, работа с файлами, аргументы скриптов и базовые команды. Формат максимально простой, короткие примеры и конструкции, которые можно сразу использовать.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7🤝6
Перенаправляем трафик процесса через прокси — без изменения кода приложения!
Иногда нужно прогнать готовое приложение через прокси: отладка API, анализ трафика, тестирование доступа через альтернативный сетевой маршрут.
В Linux это делается через
Установка:
В большинстве дистрибутивов используется
Настройка: конфиг обычно лежит в
Добавляем прокси:
Можно указать SOCKS4/5 или HTTP CONNECT-прокси. Частый кейс — Tor или локальный прокси анализатора (Burp/ZAP).
Использование:
Подходит для многих CLI-утилит, использующих стандартные сетевые вызовы через libc (но не для всех).
Практический пример:
Можно прогнать трафик через Tor или анализатор. С браузерами возможны нюансы из-за их архитектуры и многопроцессности — иногда надёжнее использовать встроенные настройки прокси.
Ограничения и нюансы: работает только с dynamically linked бинарями (из-за
🔥 Минимальный способ управлять сетевым поведением приложений без правки кода.
🚪 Linux Ready | #практика
Иногда нужно прогнать готовое приложение через прокси: отладка API, анализ трафика, тестирование доступа через альтернативный сетевой маршрут.
В Linux это делается через
proxychains, который с помощью LD_PRELOAD перехватывает вызовы connect() и связанные DNS-функции, проксируя соединения без изменения самого приложения.Установка:
# Debian/Ubuntu
sudo apt install proxychains4 -y
# Arch
sudo pacman -S proxychains-ng
# RHEL/CentOS (обычно через EPEL или совместимые репозитории)
sudo yum install proxychains-ng
В большинстве дистрибутивов используется
proxychains-ng — поддерживаемая реализация proxychains.Настройка: конфиг обычно лежит в
/etc/proxychains4.conf или /etc/proxychains.conf.sudo nano /etc/proxychains4.conf
Добавляем прокси:
socks5 127.0.0.1 9050
Можно указать SOCKS4/5 или HTTP CONNECT-прокси. Частый кейс — Tor или локальный прокси анализатора (Burp/ZAP).
Использование:
proxychains curl https://example.com
proxychains перехватывает вызовы connect() и DNS-функции, поэтому приложение продолжает работать как обычно, но его исходящие соединения идут через прокси:proxychains git clone https://github.com/repo.git
Подходит для многих CLI-утилит, использующих стандартные сетевые вызовы через libc (но не для всех).
Практический пример:
proxychains firefox
Можно прогнать трафик через Tor или анализатор. С браузерами возможны нюансы из-за их архитектуры и многопроцессности — иногда надёжнее использовать встроенные настройки прокси.
Ограничения и нюансы: работает только с dynamically linked бинарями (из-за
LD_PRELOAD), статически скомпонованные — не поддерживаются; некоторые приложения обходят libc, поэтому трафик может не проксироваться. Возможны проблемы с DNS (иногда требуется proxy_dns).Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍8🔥5🤝2
На схеме структурированы направления: обучающие YouTube-каналы, профильные блоги, специализированная литература, популярные дистрибутивы, сертификации.
Это удобная схема — можно быстро понять, куда двигаться дальше и какие ресурсы использовать.
Сохраните, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍8🤝7
Со временем даже минималистичная Linux-система захламляется: остаются старые логи, кеши пакетов, временные файлы. Всё это съедает пространство и мешает обслуживанию.
В этом посте:
• Удаляем кеш APT и старые версии пакетов.
• Чистим временные файлы и мусор от приложений.
• Удаляем старые логи, освобождаем /var/log.
• Проверяем свободное место и очищаем остатки.
Такой подход помогает освободить несколько гигабайт и держать систему в порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤8👍8🤝2
В этой статье:
• Научитесь запускать tmux-сессии в фоне и управлять ими из bash-скрипта;
• Автоматически поднимете несколько окон и панелей с нужными командами;
• Разберётесь с new-session, new-window, split-window и send-keys для сценариев «всё готово за один запуск»;
• Соберёте удобный шаблон, который можно адаптировать под разработку, мониторинг или отладку.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍6🤝2
Например, Phishing обманывает пользователя и заставляет ввести свои данные на поддельной странице, а SQL Injection позволяет атакующему получить доступ к базе данных через уязвимость в запросах.
На картинке — самые распространённые типы атак, которые важно понимать каждому разработчику и специалисту по безопасности.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥8👍6🤝2
Ищем и убираем дубликаты строк в терминале!
Частая задача: есть файл с логами, списком ID, email-адресами или любыми строками, где встречаются повторы. Нужно быстро привести данные в порядок прямо в консоли.
Базовый инструмент —
Самый простой вариант:
Что здесь происходит:
Если нужны только строки, которые встретились ровно один раз:
Если нужно посчитать, сколько раз встречается каждая строка:
Если нужно сразу увидеть самые частые значения сверху:
Практический пример для логов — топ IP по количеству запросов:
Если нужно записать результат обратно в тот же файл:
Если важно игнорировать регистр:
Это эквивалентно связке с
Важно:
🔥 Такого набора хватает для большинства задач: быстро почистить данные, посмотреть частоты, выявить лишние записи в логах.
🚪 Linux Ready | #практика
Частая задача: есть файл с логами, списком ID, email-адресами или любыми строками, где встречаются повторы. Нужно быстро привести данные в порядок прямо в консоли.
Базовый инструмент —
uniq. Важно понимать: он удаляет только соседние одинаковые строки. Поэтому в большинстве случаев перед ним нужна сортировка.Самый простой вариант:
sort data.txt | uniq
Что здесь происходит:
sort сортирует строки, чтобы одинаковые значения оказались рядом, uniq убирает повторяющиеся соседние строки.Если нужны только строки, которые встретились ровно один раз:
sort data.txt | uniq -u
Если нужно посчитать, сколько раз встречается каждая строка:
sort data.txt | uniq -c
Если нужно сразу увидеть самые частые значения сверху:
sort data.txt | uniq -c | sort -nr
Практический пример для логов — топ IP по количеству запросов:
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
Если нужно записать результат обратно в тот же файл:
sort -u -o data.txt data.txt
Если важно игнорировать регистр:
sort -fu data.txt
Это эквивалентно связке с
uniq, но короче.Важно:
uniq не ищет все дубликаты по всему файлу — он работает только с соседними строками. Без sort он уберет только те повторы, которые уже идут подряд.Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥9👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Это ресурс, где собраны вопросы и практические сценарии по DevOps, разбитые по ключевым темам: Docker, Kubernetes, CI/CD, облака, безопасность, мониторинг и др. Формат построен как тренажёр, можно проходить вопросы по категориям. Отдельно выделяются реальные сценарии, где разбираются проблемы и их решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥9🤝6❤4
Как переиспользовать команды из history?
Набрал длинную команду, но забыл sudo и получил отказ. Вместо перепечатывания просто можно повторить её с повышенными правами:
Bash подставит предыдущую команду целиком и выполнит её с
Нужно вернуться к команде, которую выполнял пару шагов назад, не листая историю:
Bash возьмёт команду по относительному номеру из history и выполнит её сразу.
Если помнишь только начало команды, можно вызвать последнюю подходящую:
Bash найдёт последнюю команду, начинающуюся с этого слова, и выполнит её.
Команда выполняется сразу. Для проверки можно добавить
🔥 Это ускоряет работу в терминале кратно, особенно когда команды длинные и сложные.
🚪 Linux Ready | #совет
Набрал длинную команду, но забыл sudo и получил отказ. Вместо перепечатывания просто можно повторить её с повышенными правами:
$ apt install nginx
$ sudo !!
Bash подставит предыдущую команду целиком и выполнит её с
sudo.Нужно вернуться к команде, которую выполнял пару шагов назад, не листая историю:
$ !-2
Bash возьмёт команду по относительному номеру из history и выполнит её сразу.
Если помнишь только начало команды, можно вызвать последнюю подходящую:
$ !docker
$ !grep
Bash найдёт последнюю команду, начинающуюся с этого слова, и выполнит её.
Команда выполняется сразу. Для проверки можно добавить
:p (например, !grep:p).Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤7🤝7🔥5
Например, при подключении по SSH сначала устанавливается TCP-соединение, затем происходит согласование версий и алгоритмов, после чего выполняется key exchange и аутентификация по ключам.
На картинке — полный процесс: от установления соединения до выполнения команд внутри зашифрованного канала.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤7🔥6🤝4
Пробрасываем локальный порт через SSH — доступ к закрытому сервису за одну команду!
Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.
Команда:
Что происходит:
Теперь просто открываешь в браузере:
И видишь сервис с удалённой машины, даже если он не доступен извне.
Чтобы не держать терминал:
Остановить можно, например:
Практический пример: PostgreSQL на сервере слушает только localhost:
Теперь локально можно подключаться как будто база у тебя:
Если локальный порт уже занят — просто меняешь его:
Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).
🔥 Это базовый приём: быстро получить доступ к любому закрытому сервису без изменения конфигурации сервера.
🚪 Linux Ready | #практика
Частый кейс: сервис крутится на удалённой машине, но слушает только localhost (например, база, админка, dev-сервер). Напрямую к нему не подключиться — но можно аккуратно протянуть порт к себе.
Команда:
ssh -L 8080:localhost:3000 user@remote-server
Что происходит:
8080 — локальный порт на твоей машине; localhost:3000 — адрес сервиса на удалённой машине; всё, что ты открываешь на localhost:8080, идёт через SSH на localhost:3000 на удалённой машине.Теперь просто открываешь в браузере:
http://localhost:8080И видишь сервис с удалённой машины, даже если он не доступен извне.
Чтобы не держать терминал:
ssh -f -N -L 8080:localhost:3000 user@remote-server
Остановить можно, например:
pkill -f "ssh -L 8080"
Практический пример: PostgreSQL на сервере слушает только localhost:
ssh -L 5432:localhost:5432 user@remote-server
Теперь локально можно подключаться как будто база у тебя:
psql -h localhost -p 5432 -U user dbname
Если локальный порт уже занят — просто меняешь его:
ssh -L 9000:localhost:3000 user@remote-server
Важно: трафик шифруется через SSH, не нужно открывать порты на сервере; работает для любых TCP-сервисов (HTTP, DB, Redis и т.д.).
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤10👍8🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Это структурированная коллекция заметок по Linux и смежным темам: процессы, файловые системы, shell и работа с ядром. Материал ориентирован на практическое понимание того, как устроена система на низком уровне. Информация подаётся в компактном формате без избыточной теории, с акцентом на реальные сценарии использования.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤8🤝6🔥3