Обновляем файлы через подмену, а не через редактирование!
Подготавливаем новую версию файла отдельно, не трогая рабочий:
Редактируем её как угодно, ошибки здесь никому не мешают:
Заменяем файл одной атомарной операцией:
В Linux имя файла - это запись каталога, указывающая на inode.
🔥 Атомарность гарантирована только внутри одного файлового раздела.
🚪 Linux Ready | #совет
Подготавливаем новую версию файла отдельно, не трогая рабочий:
cp --preserve=mode,ownership config.conf config.conf.new
Редактируем её как угодно, ошибки здесь никому не мешают:
vim config.conf.new
Заменяем файл одной атомарной операцией:
mv config.conf.new config.conf
В Linux имя файла - это запись каталога, указывающая на inode.
mv (rename) атомарно меняет эту запись, процесс либо видит старую версию файла, либо уже новую, без промежуточного состояния.mv между разными FS - это копирование и удаление.Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤9🤝9
Сhrony - NTP-клиент, который корректно держит время на VPS, виртуальных машинах и серверах с нестабильной сетью. Он является стандартом де-факто в современных дистрибутивах.
В этом посте:
• Проверяем текущее состояние времени и синхронизации в системе;
• Устанавливаем и включаем chrony;
• Проверяем источники времени и фактическую точность;
• Убеждаемся, что время стабильно.
Точная синхронизация времени устраняет целый класс трудно отлавливаемых ошибок и делает поведение системы предсказуемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥11❤10🤝4😁1
Например,
tar czf создаёт архив с сжатием, а tar xzf позволяет быстро распаковать .tar.gz.На картинке — команды tar, которые стоит держать под рукой: создание архивов, распаковка, просмотр содержимого и работа с
gzip / bzip2 / xz.Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍12🤝8❤2
Работа с символическими и жёсткими ссылками!
Ссылки используются для повторного доступа к файлам и каталогам без дублирования данных. Применяются в пакетных менеджерах, конфигурациях, деплое и файловых структурах.
Создание жёсткой ссылки:
Жёсткая ссылка указывает на тот же inode, что и исходный файл. Удаление одного имени не удаляет данные, пока существует хотя бы одна ссылка.
Ограничения жёстких ссылок: они практически всегда применимы только к файлам; на каталоги, как правило, запрещены на уровне файловой системы.
Создание символической ссылки:
Симлинк — это отдельный файл, содержащий путь к целевому объекту (файлу или каталогу).
Просмотр ссылок и inode:
Одинаковый inode — жёсткие ссылки на один файл. Симлинк имеет собственный inode.
Проверка, куда указывает символическая ссылка:
Перезапись существующей символической ссылки:
Удаление ссылки:
Для жёсткой ссылки это удаление имени, а не данных.
🔥 Симлинки зависят от пути и могут «сломаться»; жёсткие ссылки устойчивы, но ограничены одной файловой системой и практически не применяются для каталогов
🚪 Linux Ready | #практика
Ссылки используются для повторного доступа к файлам и каталогам без дублирования данных. Применяются в пакетных менеджерах, конфигурациях, деплое и файловых структурах.
Создание жёсткой ссылки:
ln original.txt hardlink.txt
Жёсткая ссылка указывает на тот же inode, что и исходный файл. Удаление одного имени не удаляет данные, пока существует хотя бы одна ссылка.
Ограничения жёстких ссылок: они практически всегда применимы только к файлам; на каталоги, как правило, запрещены на уровне файловой системы.
Создание символической ссылки:
ln -s /path/to/original symlink
Симлинк — это отдельный файл, содержащий путь к целевому объекту (файлу или каталогу).
Просмотр ссылок и inode:
ls -li
Одинаковый inode — жёсткие ссылки на один файл. Симлинк имеет собственный inode.
Проверка, куда указывает символическая ссылка:
readlink symlink
readlink -f symlink
-f разворачивает цепочку ссылок до реального пути.Перезапись существующей символической ссылки:
ln -sfn /new/path symlink
-s — symbolic-f — удаляет существующий путь назначения перед созданием-n — не разыменовывать симлинк на каталогУдаление ссылки:
rm symlink
rm hardlink.txt
Для жёсткой ссылки это удаление имени, а не данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥10👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Этот сайт помогает анализировать структуры данных: деревья, графы, обходы и множество другого. Здесь нет решений задач или подготовкой к собеседованиям, упор именно на понимание того, как и почему всё устроено. Материал подается последовательно и концептуально, поэтому хорошо подходит даже новичкам.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍12🤝9
Со временем даже минималистичная Linux-система захламляется: остаются старые логи, кеши пакетов, временные файлы. Всё это съедает пространство и мешает обслуживанию.
В этом посте:
• Удаляем кеш APT и старые версии пакетов.
• Чистим временные файлы и мусор от приложений.
• Удаляем старые логи, освобождаем /var/log.
• Проверяем свободное место и очищаем остатки.
Такой подход помогает освободить несколько гигабайт и держать систему в порядке.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥34👍10❤8🤝7
This media is not supported in your browser
VIEW IN TELEGRAM
Этот ресурс объясняет основы и важные концепции через примеры и живые объяснения. Тут ты найдёшь темы по синтаксису, функциям, структурам данных, алгоритмам и архитектуре. Полезно как новичкам, так и тем, кто хочет укрепить фундамент, понять внутренние механизмы и перестать путаться в деталях.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤10🔥10
Параллельные команды в Bash!
Cразу получаешь PID процесса и FD для
Так отправляешь данные в stdin фоновой команды напрямую, без
Читаешь ответ синхронно, управляя порядком чтения и записи из Bash.
Ожидание завершения без busy-loop и sleep:
🔥
🚪 Linux Ready | #совет
coproc запускает команду асинхронно и создаёт для неё каналы ввода и вывода, доступные из Bash через файловые дескрипторы.Cразу получаешь PID процесса и FD для
stdin/stdout и можешь работать с ним как с обычным I/O:echo "ping" >&"${WORKER[1]}"Так отправляешь данные в stdin фоновой команды напрямую, без
cmd | cmd и без временных файлов:read -r result <&"${WORKER[0]}"Читаешь ответ синхронно, управляя порядком чтения и записи из Bash.
Ожидание завершения без busy-loop и sleep:
wait "$WORKER_PID"
coproc - встроенный механизм параллелизма Bash, который даёт управляемые фоновые процессы с явным I/O-контролем.Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤9🔥9
В этой статье:
• Показано, как превратить рутинные задачи в быстрые и удобные команды под себя;
• Разобраны реальные алиасы и скрипты для git, systemd, сети, дисков и мониторинга системы;
• На примерах видно, как со временем вырастает персональный набор инструментов, который реально экономит время работы.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍11❤9🤝3