Как не выполнять одну и ту же команду несколько раз?
В работе часто возникает ситуация: команда тяжёлая, медленная или ходит в сеть. Например, kubectl, docker, curl, запросы к API или работа с логами.
Чтобы не гонять её снова и снова для разных проверок:
Каждый раз это новый запрос, новая нагрузка и потеря времени.
Гораздо быстрее выполнить её один раз и сохранить результат:
Теперь можно сколько угодно анализировать данные без повторных вызовов:
Это особенно чувствуется при работе с удалёнными сервисами, базами и логами, где каждая команда может занимать секунды.
🔥 Если команда дорогая — не запускай её повторно. Сохрани результат и работай с ним локально.
🚪 Linux Ready | #совет
В работе часто возникает ситуация: команда тяжёлая, медленная или ходит в сеть. Например, 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
Это особенно чувствуется при работе с удалёнными сервисами, базами и логами, где каждая команда может занимать секунды.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍9❤8🤝2
Например,
${var%.*} убирает расширение файла, а ${var##*/} позволяет быстро получить имя файла из полного пути.На картинке — основные приёмы работы с переменными в bash: удаление префиксов и суффиксов, замена строк, работа с подстроками и значения по умолчанию.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤7🔥7🤝3
sponge: утилита, которая спасает, когда нужно перезаписать файл через pipe!
Есть старый неприятный момент в shell: если читаешь файл и тут же пишешь результат обратно в него же через
Например:
На первый взгляд выглядит нормально. На практике — нет.
Shell откроет app.log на запись сразу, ещё до того, как
В таких случаях выручает
Он работает просто: сначала полностью читает входной поток, и только потом записывает результат в файл.
То же самое, но безопасно:
Несколько примеров, где это реально удобно.
Заменить текст в конфиге:
Убрать пустые строки:
Отсортировать файл:
Отформатировать JSON:
Из нюансов:
🔥 Если коротко: когда нужно безопасно перезаписать файл результатом команды,
🚪 Linux Ready | #практика
Есть старый неприятный момент в 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 делает именно то, что ожидаешь.Please open Telegram to view this post
VIEW IN TELEGRAM
🤝14👍11🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь системно раскрываются ключевые принципы работы операционной системы Linux. Рассматриваются базовые компоненты системы, включая ядро, оболочку, процессы, файловую систему и архитектуру ОС в целом. Отдельное внимание уделяется практическому применению.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍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.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍10❤7
This media is not supported in your browser
VIEW IN TELEGRAM
В репозитории собран справочник по Linux-командам — более 400 утилит с описаниями и примерами использования. Каждая команда сопровождается кратким объяснением и примерами, поэтому можно быстро понять, как она работает и где применяется. Удобно использовать как справочник в работе и подготовке к собеседованиям.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8🤝8
Всплеск нагрузки, утечка памяти или неудачный деплой и ядро включает OOM Killer. Swap — это страховка, система получает запас по памяти и время на реакцию (пусть и с деградацией по скорости).
В этом посте:
• Проверим, есть ли swap и используется ли он;
• Создадим swap-файл без перезагрузки сервера;
• Подключим его и настроим автозапуск;
• Оптимизируем поведение системы через swappiness.
Практическая настройка, которая снижает риск внезапных падений под нагрузкой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥9🤝8❤1
Например, порт 22 используется для SSH-подключений, а 443 — для защищённого HTTPS-трафика. Порты — основа любого взаимодействия между клиентом и сервером.
На картинке — 18 основных портов.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🤝13🔥9
Монтируем ISO-образ без записи на диск — мгновенный доступ к содержимому!
Иногда нужно посмотреть, что внутри .iso-файла: проверить структуру, вытащить отдельные файлы, запустить установщик или просто поанализировать. Но зачем сжигать его на флешку или распаковывать, если можно примонтировать прямо в систему?
Для этого понадобится всего одна команда и пустая директория:
Здесь
Теперь ты можешь просто зайти в /mnt/iso и посмотреть всё содержимое, как если бы это был обычный диск или флешка.
Когда всё закончишь — не забудь отмонтировать:
🔥 Работает со всеми ISO: Linux-дистрибутивы, Windows-инсталляторы, образы с драйверами, тулкиты пентестера и даже старые архивы.
🚪 Linux Ready | #практика
Иногда нужно посмотреть, что внутри .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-инсталляторы, образы с драйверами, тулкиты пентестера и даже старые архивы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍9❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт шаг за шагом объясняет, как работать с Docker: контейнеры, образы, сети. Все примеры можно сразу повторить у себя в терминале, без сложной теории. Полезно для разработчиков, которые хотят разобраться в контейнеризации и понять, как Docker используется в реальных проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥9❤7🤝1
Каналы с Junior IT вакансиями
и стажировками
Подписывайся и забирай свой оффер
1. Стажировки и вакансии по России и миру
2. IT вакансии по СНГ
3. IT стажировки по СНГ
4. ИИ-ассистент для автооткликов
5. IT стажировки и волонтерства
6. IT стажировки в топовых компаниях мира
7. Удалённые IT вакансии и стажировки
8. Python вакансии и стажировки
9. БИГТЕХ вакансии и стажировки
10. Design вакансии и стажировки
11. QA вакансии и стажировки
12. Junior вакансии и стажировки
13. Frontend вакансии и вопросы собесов
14. Вакансии и стажировки для аналитиков
15. Вакансии в русских стартапах за границей
16. Вакансии и стажировки для DevOps
17. Вакансии, которых нет на ХХ.РУ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Почему диск полный, хотя файлы уже удалены?
Удалили огромный лог, но место на диске не освободилось,
Причина в том, что процесс держит открытый файловый дескриптор.
Файл удалён из файловой системы, но продолжает существовать, пока процесс его не закроет.
Найти такие файлы можно так:
Там будет
Теперь можно освободить место без перезапуска сервиса:
Это обнуляет файл через файловый дескриптор, и место возвращается системе.
🔥 Если диск заполнен невидимыми файлами, часто нужно найти открытые дескрипторы и очистить их через
🚪 Linux Ready | #совет
Удалили огромный лог, но место на диске не освободилось,
df показывает, что диск всё ещё заполнен.Причина в том, что процесс держит открытый файловый дескриптор.
Файл удалён из файловой системы, но продолжает существовать, пока процесс его не закроет.
Найти такие файлы можно так:
lsof | grep deleted
Там будет
PID процесса и номер дескриптора.Теперь можно освободить место без перезапуска сервиса:
: > /proc/<PID>/fd/<FD>
Это обнуляет файл через файловый дескриптор, и место возвращается системе.
/proc.Please open Telegram to view this post
VIEW IN TELEGRAM
❤15👍11🔥8
Например,
ls показывает содержимое директории, cd помогает перемещаться между папками, а grep позволяет быстро находить нужный текст в файлах.На картинке — самые используемые команды: работа с файлами, процессами, сетью, правами доступа и системой. Такой набор закрывает 90% повседневных задач в терминале.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍10🤝8❤3