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

Автор: @energy_it

Реклама на бирже: https://telega.in/c/linux_ready
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Infosec Cheatsheets — огромная база шпаргалок по кибербезопасности!

Этот репозиторий собирает шпаргалки по ключевым направлениям информационной безопасности: пентестинг, сетевые атаки, эксплуатация уязвимостей, анализ трафика, веб-безопасность и многое другое. Всё разложено по темам и оформлено так, чтобы можно было быстро найти нужные команды, техники и инструменты.

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


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥97🤝2
Как не выполнять одну и ту же команду несколько раз?

В работе часто возникает ситуация: команда тяжёлая, медленная или ходит в сеть. Например, kubectl, docker, curl, запросы к API или работа с логами.

Чтобы не гонять её снова и снова для разных проверок:
kubectl get pods
kubectl get pods | grep api
kubectl get pods | wc -l


Каждый раз это новый запрос, новая нагрузка и потеря времени.

Гораздо быстрее выполнить её один раз и сохранить результат:
out=$(kubectl get pods)


Теперь можно сколько угодно анализировать данные без повторных вызовов:
echo "$out" | grep api
echo "$out" | wc -l


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

🔥 Если команда дорогая — не запускай её повторно. Сохрани результат и работай с ним локально.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍98🤝2
📂 Напоминалка по расширению параметров в Bash!

Например, ${var%.*} убирает расширение файла, а ${var##*/} позволяет быстро получить имя файла из полного пути.

На картинке — основные приёмы работы с переменными в bash: удаление префиксов и суффиксов, замена строк, работа с подстроками и значения по умолчанию.

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

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍187🔥7🤝3
sponge: утилита, которая спасает, когда нужно перезаписать файл через pipe!

Есть старый неприятный момент в shell: если читаешь файл и тут же пишешь результат обратно в него же через >, можно случайно получить пустой файл.

Например:
grep -v DEBUG app.log > app.log


На первый взгляд выглядит нормально. На практике — нет.
Shell откроет app.log на запись сразу, ещё до того, как grep дочитает его до конца. В итоге файл можно просто обнулить.

В таких случаях выручает sponge из moreutils.

Он работает просто: сначала полностью читает входной поток, и только потом записывает результат в файл.

То же самое, но безопасно:
grep -v DEBUG app.log | sponge app.log


Несколько примеров, где это реально удобно.

Заменить текст в конфиге:
sed 's/localhost/db.internal/' config.yml | sponge config.yml


Убрать пустые строки:
grep -v '^$' file.txt | sponge file.txt


Отсортировать файл:
sort file.txt | sponge file.txt


Отформатировать JSON:
jq '.' data.json | sponge data.json


Из нюансов: sponge сначала забирает весь поток целиком, а уже потом пишет в файл. Для обычных задач это вообще не проблема, но на очень больших файлах про это лучше помнить.

🔥 Если коротко: когда нужно безопасно перезаписать файл результатом команды, sponge делает именно то, что ожидаешь.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝15👍11🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
✍️ DevOps Linux Guide — структурированное руководство по основам Linux!

Здесь системно раскрываются ключевые принципы работы операционной системы Linux. Рассматриваются базовые компоненты системы, включая ядро, оболочку, процессы, файловую систему и архитектуру ОС в целом. Отдельное внимание уделяется практическому применению.

📌 Оставляю ссылочку: devops.pradumnasaraf.dev

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍8🔥8
👩‍💻 Многие об этом не знают или почти не используют!

В Linux можно сделать файл или директорию неудаляемыми, установив флаг неизменяемости (immutable) с помощью команды chattr:

$ sudo chattr +i -V /home/traw/keys.txt


Опция -V — подробный вывод (verbose).

Чтобы сделать директорию неудаляемой, добавьте рекурсивную опцию -R:
$ sudo chattr +i -VR /home/traw/backups


Чтобы снова разрешить удаление файла, используйте флаг -i. Для директорий — -i с опцией -R.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍127
This media is not supported in your browser
VIEW IN TELEGRAM
❤️ Linux Commands Cheat Sheet — шпаргалка по 400+ командам Linux!

В репозитории собран справочник по Linux-командам — более 400 утилит с описаниями и примерами использования. Каждая команда сопровождается кратким объяснением и примерами, поэтому можно быстро понять, как она работает и где применяется. Удобно использовать как справочник в работе и подготовке к собеседованиям.

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


🚪 Linux Ready | #репозиторий
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥8🤝8
👩‍💻 Настраиваем swap-файл — защита от OOM и падений сервера!

Всплеск нагрузки, утечка памяти или неудачный деплой и ядро включает OOM Killer. Swap — это страховка, система получает запас по памяти и время на реакцию (пусть и с деградацией по скорости).

В этом посте:
Проверим, есть ли swap и используется ли он;

Создадим swap-файл без перезагрузки сервера;

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

Оптимизируем поведение системы через swappiness.


Практическая настройка, которая снижает риск внезапных падений под нагрузкой.

🚪 Linux Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥10🤝82
📂 Напоминалка по сетевым портам!

Например, порт 22 используется для SSH-подключений, а 443 — для защищённого HTTPS-трафика. Порты — основа любого взаимодействия между клиентом и сервером.

На картинке — 18 основных портов.

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

🚪 Linux Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🤝13🔥9
Монтируем ISO-образ без записи на диск — мгновенный доступ к содержимому!

Иногда нужно посмотреть, что внутри .iso-файла: проверить структуру, вытащить отдельные файлы, запустить установщик или просто поанализировать. Но зачем сжигать его на флешку или распаковывать, если можно примонтировать прямо в систему?

Для этого понадобится всего одна команда и пустая директория:
sudo mount -o loop ~/Downloads/disk.iso /mnt/iso


Здесь -o loop создаёт виртуальное устройство, ~/Downloads/disk.iso — путь до образа, а /mnt/iso — куда монтировать (создай папку заранее).

Теперь ты можешь просто зайти в /mnt/iso и посмотреть всё содержимое, как если бы это был обычный диск или флешка.

Когда всё закончишь — не забудь отмонтировать:
sudo umount /mnt/iso


🔥 Работает со всеми ISO: Linux-дистрибутивы, Windows-инсталляторы, образы с драйверами, тулкиты пентестера и даже старые архивы.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍118
This media is not supported in your browser
VIEW IN TELEGRAM
😎 Docker Curriculum — структурированное обучение с нуля!

Сайт шаг за шагом объясняет, как работать с Docker: контейнеры, образы, сети. Все примеры можно сразу повторить у себя в терминале, без сложной теории. Полезно для разработчиков, которые хотят разобраться в контейнеризации и понять, как Docker используется в реальных проектах.

📌 Оставляю ссылочку: docker-curriculum.com

🚪 Linux Ready | #сайт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥98🤝1
Почему диск полный, хотя файлы уже удалены?

Удалили огромный лог, но место на диске не освободилось, df показывает, что диск всё ещё заполнен.

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

Найти такие файлы можно так:
lsof | grep deleted


Там будет PID процесса и номер дескриптора.

Теперь можно освободить место без перезапуска сервиса:
: > /proc/<PID>/fd/<FD>


Это обнуляет файл через файловый дескриптор, и место возвращается системе.

🔥 Если диск заполнен невидимыми файлами, часто нужно найти открытые дескрипторы и очистить их через /proc.

🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍11🔥8
📂 Напоминалка по 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
15👍10🔥8