Linux Ready | DevOps
9.68K subscribers
886 photos
54 videos
393 links
Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/linux_ready
Download Telegram
📂 Напоминалка по Linux-командам!

Например, ls показывает содержимое директории, cd помогает перемещаться между папками, а grep позволяет быстро находить нужный текст в файлах.

На картинке — самые используемые команды: работа с файлами, процессами, сетью, правами доступа и системой. Такой набор закрывает 90% повседневных задач в терминале.

Сохрани, чтобы не потерять!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍10🤝84
Смотрим, какие библиотеки реально отображены в адресное пространство процесса!

Когда приложение падает из-за несовместимой или отсутствующей библиотеки, ldd полезен, но он показывает, как динамический загрузчик разрешает зависимости для бинаря, а не текущее состояние уже запущенного процесса.

Если нужен точный ответ, что уже замаплено в память, используем /proc.

Сначала находим PID процесса:
pgrep -a python


Допустим, это 1234. Теперь смотрим, какие shared objects отображены в его адресное пространство:
grep '\.so' /proc/1234/maps


Что здесь важно: /proc/<pid>/maps — карта памяти процесса; каждая строка — отдельный участок памяти; если в строке есть путь к .so, значит есть файловый маппинг этого объекта.

Пример:
7f2c1a000000-7f2c1a200000 r-xp ... /usr/lib/x86_64-linux-gnu/libssl.so.1.1


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

Если нужен список без дублей:
grep '\.so' /proc/1234/maps | awk '{print $6}' | sort -u


Практический кейс — конфликт версий после обновления: систему обновили, новая библиотека уже лежит на диске, а процесс всё ещё держит старую версию в памяти.

Проверить можно так:
ls -l /proc/1234/map_files/


Если у файла есть пометка (deleted), это сильный сигнал: файл на диске уже удалён или заменён, но процесс продолжает использовать старый inode через существующий маппинг.

🔥 Что важно помнить: изменения на диске не влияют на уже загруженные библиотеки в работающем процессе, после обновления библиотек сервисы обычно нужно перезапускать, доступ к /proc/<pid> и особенно map_files может быть ограничен правами.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥108
🐱 Полезную статью нашёл на Хабре: «Чёрное окошко Linux: погружение в подсистему TTY»!

В этой статье:
• Подробно разбирается, что на самом деле скрывается за терминалом в Linux;
• Объясняется разница между консолью, терминалом, shell, TTY и эмуляторами;
• Показано, как процессы взаимодействуют с системой через stdin/stdout/stderr и файловые дескрипторы, и какую роль в этом играет ядро.


🔊 Продолжайте читать на Habr!


🚪 Linux Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2110🔥8🤝1
📂 Шпаргалка по cron в Linux!

Например, 0 0 * * * выполняет задачу ежедневно в полночь, а */5 * * * * — с интервалом в 5 минут.

На изображении — структура cron-выражения, основные алиасы (@daily, @weekly, @reboot) и типовые примеры расписаний, которые удобно использовать в повседневной работе.

Сохрани, чтобы не потерять!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥219🤝8
Непонятно, откуда взялся процесс?

Большинство смотрят ps aux, но он не показывает причинно-следственную связь.

Настоящая картина — это дерево процессов:
pstree -ap


Здесь видно, какой процесс чей родитель, с аргументами и PID.
Можно быстро понять: это systemd-сервис, cron-задача или дочерний процесс скрипта.

Если есть конкретный PID, смотри цепочку до корня:
pstree -s <PID>


Это показывает путь запуска, от init/systemd до нужного процесса.

Для точечной проверки родителя:
ps -o pid,ppid,cmd -p <PID>


И дальше можно идти вверх по PPID.

Важно: PPID показывает текущего родителя. Если процесс был перезапущен, демонезирован или его родитель умер — он может быть перепривязан к systemd/init, и исходный источник уже не виден.

🔥 Дерево процессов даёт быстрый ответ в большинстве случаев.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍10🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Linux Cheat Sheet — системная шпаргалка по Linux-командам

Cтруктурированный справочник по Linux, где собраны основные команды и утилиты, разбитые по категориям: пользователи, файлы и директории, права доступа, сеть, процессы, пакеты, поиск, SSH и многое другое. Каждая команда сопровождается описанием и примерами использования, поэтому можно быстро понять, как она работает и где применяется.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍148🔥8
Пробрасываем локальный порт через SSH — доступ к закрытому сервису за одну команду!

Частый кейс: сервис крутится на удалённой машине, но слушает только 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 и т.д.).

🔥 Это базовый приём: быстро получить доступ к любому закрытому сервису без изменения конфигурации сервера.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥159🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ freeCodeCamp — ключевые команды, которые используются в повседневной работе!

Руководство охватывает около 60 основных Bash-команд с примерами и пояснениями, что позволяет быстро понять их назначение и применение. Каждая команда сопровождается примерами использования и краткими рекомендациями, поэтому ресурс удобно использовать как справочник при работе с терминалом или при изучении Linux с нуля.

📌 Оставляю ссылочку: freecodecamp.org

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1911🔥9
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Bash Cheatsheet — шпаргалка по Bash и Linux-командам!

Помогает быстро разобраться в работе с терминалом. Здесь собраны ключевые вещи: переменные, условия, циклы, работа с файлами, аргументы скриптов и базовые команды. Формат максимально простой, короткие примеры и конструкции, которые можно сразу использовать.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍168🔥7
Перенаправляем трафик процесса через прокси — без изменения кода приложения!

Иногда нужно прогнать готовое приложение через прокси: отладка 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).

🔥 Минимальный способ управлять сетевым поведением приложений без правки кода.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥10👍9
📂 Карта ресурсов для изучения Linux!

На схеме структурированы направления: обучающие YouTube-каналы, профильные блоги, специализированная литература, популярные дистрибутивы, сертификации.

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

Сохраните, чтобы не потерять!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2011🤝8👎1
Как понять, что делает процесс в Linux?

Бывает ситуация, когда процесс есть, но непонятно, что он делает. В 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 отслеживает дочерние процессы, а лог можно спокойно разобрать позже.

🔥 Это часто даёт ответ быстрее, чем чтение кода или логов, особенно при работе с чужими бинарями, контейнерами или нестабильными сервисами.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍189🔥9
📂 Напоминалка по популярным кибератакам!

Например, Phishing обманывает пользователя и заставляет ввести свои данные на поддельной странице, а SQL Injection позволяет атакующему получить доступ к базе данных через уязвимость в запросах.

На картинке — самые распространённые типы атак, которые важно понимать каждому разработчику и специалисту по безопасности.

Сохрани, чтобы не забыть!

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍10🤝9
Знали, что можно просканировать поведение процесса без его исходников и перезапуска?

Когда процесс ведёт себя странно, но трогать его нельзя, strace даёт доступ к системным вызовам в реальном времени.

Подключаешься к уже запущенному процессу и смотришь, что он делает на уровне ядра:
$ strace -p 1234 -e trace=%network
$ strace -p 1234 -e trace=%file


Видно, куда он ходит по сети, какие файлы читает или пытается открыть. Это быстрый способ понять, где он залип.

Если нужен общий профиль без тонны вывода, можно использовать агрегированную статистику:
$ strace -p 1234 -c
$ strace -p 1234 -c -f


strace -p использует ptrace, требует прав и при подключении может прервать текущий syscall (редко, но бывает).

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

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1711👍8🤝2
☕️ Нашел вам отличную статью на Habr, которая подойдёт всем, кто хочет создать свой минимальный загрузочный образ Linux.

В этой статье:
• Пошаговая сборка загрузочного диска на базе Debian;
• Минимизация размера системы — всего ~25 МБ;
• Удаление ненужного и настройка initramfs под себя.


🔊 Продолжай читать на Habr!


🚪 Linux Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥19👍10🤝81😁1
👩‍💻 Разбираем 7 ключевых команд для управления доступом!

Права доступа — одна из основ безопасности в Linux. Через chmod, chown и umask можно управлять доступом к файлам, а команды вроде ls -l и stat помогут быстро проанализировать текущие разрешения и владельцев.

🚪 Linux Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🤝14🔥116
This media is not supported in your browser
VIEW IN TELEGRAM
😎 krxnotes — информативные шпаргалки по Linux и системам!

Это структурированная коллекция заметок по Linux и смежным темам: процессы, файловые системы, shell и работа с ядром. Материал ориентирован на практическое понимание того, как устроена система на низком уровне. Информация подаётся в компактном формате без избыточной теории, с акцентом на реальные сценарии использования.

Оставляю ссылочку: GitHub 📱


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍12🤝8